( ´∀`)ネットゲー作る技術持っている人? 2
■ このスレッドは過去ログ倉庫に格納されています
0001喫煙者は臭い
02/06/01 12:05ID:If0C3IRYhttp://www.hayariki.com/
http://game.2ch.net/test/read.cgi/gamedev/1016812752/l50
0477名前は開発中のものです。
02/10/08 07:10ID:???折れ漏れも。ポリゴンの各頂点が縦横無尽に乱れ飛んでた。
0478477
02/10/08 07:47ID:???カメラの位置が変更できて(・∀・)イイ!!
自キャラも正面から見れて(゚д゚)ウマー
0479名前は開発中のものです。
02/10/08 12:18ID:???0480名前は開発中のものです。
02/10/08 22:13ID:???0481名前は開発中のものです。
02/10/10 15:32ID:DCXnm4Qd0482名前は開発中のものです。
02/10/11 04:15ID:???/ ヽ
/ __A___|〆
ヽ(____>
ノ从ハ)从〉 シュ シュ
クノ ´∀`§へつ シュウリョウ〜♪
√ ヽ@_X .|
/│ ヽ丿 ))
/ \ |つ
/ ヽ__ノ
く │
ヾ=====┘
し し
〜完〜
0483名前は開発中のものです。
02/10/11 20:08ID:???0484名前は開発中のものです。
02/10/14 18:57ID:zpniLE5e0485名前は開発中のものです。
02/10/14 21:38ID:???なんでだしょ?
DirectXの問題じゃろか?
0486名前は開発中のものです。
02/10/15 00:13ID:???0487名前は開発中のものです。
02/10/15 02:58ID:???ラグハイムは普通に出来るんだよねぇ......。
ロースキルだもんで、どこをどうすればいいのかようわからないぽ(´・ω・`)
0488名前は開発中のものです。
02/10/15 07:51ID:???書かないってことはだいたい目に見えているが。
0489名前は開発中のものです。
02/10/15 09:56ID:???メーカー製PCで、ボード名も解からないに、1ウォン
>>487どこをどうすればいいのか
ビデオボードを買ってきて、交換する
0490115
02/10/16 13:42ID:???あたりに書いてあると思います(@Win2K)。多分。
画面の色数/解像度を変えたり
ログインダイアログ→設定でイロイロ設定を変えると動作するかもしんないです。
815チプセトだと16bppでないと動作しないっぽいです。
画面が真っ白の場合には「フォグ無効」にするとイイと思います。
次バージョンでは職業・スキルあたりをいくつか導入しよーと思ってるんですが、
結構タイヘンなんす。キアイ入れて作ってるんでチョッピリ待ってちょ。
0491名前は開発中のものです。
02/10/16 14:17ID:???でも職業より萌えキャラつくらせて下さい。おながいします。
0492名前は開発中のものです。
02/10/16 19:14ID:???0493名前は開発中のものです。
02/10/17 02:05ID:???0494名前は開発中のものです。
02/10/17 03:58ID:???猫耳とか耳につける謎のキカイとかを追加しろゴルァということではないかと...
0495名前は開発中のものです。
02/10/17 14:15ID:???0496 ◆HsptrkZmYk
02/10/17 16:53ID:i9wu2e8A0497名前は開発中のものです。
02/10/17 17:11ID:???外基地キタ━━━━(゚∀゚)━━━━!!!
0498名前は開発中のものです。
02/10/17 17:15ID:???プロバイダ無しでインターネットをするにはどうやったらいいんですか?
0499名前は開発中のものです。
02/10/17 17:23ID:???もしくはLANゲー
0500名前は開発中のものです。
02/10/17 18:15ID:???・全員が全員にゲームのデータを送る
・ブロードキャストを使う
・マルチキャストを使う
・まじめにP2Pネットワークを構築し、その中でブロードキャストでデータ交換する
ただ、サーバがない=データは個人管理=チートし放題なので、
そのための対処が必要。
0501名前は開発中のものです。
02/10/18 03:28ID:???マップデーターの構造ってどんな感じになってるのか気になる。
格子状にすると表現力に欠けるし。マップは出来るだけ広くしたいのだけど、
BSPだと木がでかくなりすぎるような気がする。
どうしたらいいんでそ?
0502名前は開発中のものです。
02/10/18 08:00ID:???0503名前は開発中のものです。
02/10/18 08:01ID:???0504115
02/10/18 08:35ID:???私は格子状のハイトマップデータを基本にして、
そこにオブジェクトぽつぽつを乗せる形で管理していますが、
これはマップエディタ作成/マップ作成に時間をかけたくなかったからです。
マップ作成に時間がかけられるならば格子にとらわれない
自由なポリゴンで表現すればよいのではないでしょうか。
自由なポリゴンで表現するからといって
BSPツリーが必要というわけではないと思うのですが、
何を目的にしてBSPツリーが必要なのか教えていただけると
アドバイスできるかもです。
なんにせよ同士ができるのはウレシイです。
切磋琢磨してお互い良いモノができるとイイですね。
0505501
02/10/19 06:13ID:???かといってBSPで空間をぶった切るような感じだと複雑になってしまう気がします。
箱庭って感じにはしたくないのです。
とりあえずアイデアが浮かんだので試してみる事にします。
0506名前は開発中のものです。
02/10/20 00:12ID:???0507名前は開発中のものです。
02/10/22 11:17ID:8jsmzOaO0508名前は開発中のものです。
02/10/22 14:59ID:???クソスレは終わらせてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
∧_∧ ∧_∧ END
(・∀・∩)(∩・∀・) ENDE
(つ 丿 ( ⊂) FIN
( ヽノ ヽ/ ) 了
し(_) (_)J 完
0509名前は開発中のものです。
02/10/22 15:21ID:q1BkHky6書き込んでたら終らないだろ。
0510名前は開発中のものです。
02/10/22 15:24ID:???ここは過疎板なので書き込んでも書き込まなくても終わらない。
だから半年前に書き込みが途絶えたスレもage荒らしの餌食となる。
0511名前は開発中のものです。
02/10/22 16:26ID:???0512名前は開発中のものです。
02/10/22 16:42ID:???File: F:\user\code\mmorpg08\main.cpp
line: 1987
Error Code: D3DXERR_INVALIDDATA(0x88760b59)
Calling: InitGeometry()
えーと・・・・・・
つながりません。がっくり。
0513名前は開発中のものです。
02/10/22 18:08ID:???0514名前は開発中のものです。
02/10/22 22:47ID:77UdK/7g画面の色数を16bitにして、設定で影を丸影に変える
あとDirectXの最新版をいれて無理だったらあきらめろ
0515名前は開発中のものです。
02/10/23 00:58ID:???/  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
/ このスレは無事に /
/ 終了いたしました /
/ ありがとうございました /
/ /
/ モララーより /
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
∧_∧ / /∧_∧
( ・∀・) / /(・∀・ )
( )つ ⊂( )
| | | | | |
(__)_) (_(__)
0516名前は開発中のものです。
02/10/23 22:25ID:???(゚∀゚)アヒャ〜
0517名前は開発中のものです。
02/10/23 23:41ID:???0518名前は開発中のものです。
02/10/26 14:36ID:RXKLOGg/0519東郷妖八郎
02/10/26 19:34ID:???0520115
02/10/28 07:26ID:???順調にいけば数日後に次バージョンを公開できそうなかんじです。
職業・スキル等が追加され、キャラクターデータの変更がかなりあるので、
申し訳ありませんが今までのキャラクターはワイプされる予定です。
0521名前は開発中のものです。
02/10/29 00:13ID:???最近知りますた。
ケツがフリフリなのがイイ!!
0522名前は開発中のものです。
02/10/30 22:36ID:TB1ZDHwp開発日記みますた。
魔法使い(* ´∀`)ハァハァ
0523115
02/10/31 22:53ID:nAt/+U96職業・スキルなんかが追加されて、ゲームっぽくなってきたYO!
http://robrob.tripod.co.jp/mmo/
0524名前は開発中のものです。
02/11/01 00:39ID:???0525名前は開発中のものです。
02/11/02 09:29ID:???0526名前は開発中のものです。
02/11/05 08:13ID:ireVsZXj0527115
02/11/05 21:25ID:???ゲーム性の部分を作成できる段階になりつつあるので
そろそろ今後追加したいシステムとか機能とかについての構想(妄想)をまとめて、
公開しよーかなー。と思っております。
そーしたらみなさんから、「こーゆー機能が欲しい」とかの意見を聞きたいなー
って思ってます。
0528名前は開発中のものです。
02/11/07 07:03ID:???がんがれ
0529☆タクリン☆
02/11/10 14:20ID:kp4I3dsW0530名前は開発中のものです。
02/11/10 14:40ID:???0531名前は開発中のものです。
02/11/10 16:55ID:???0532名前は開発中のものです。
02/11/10 18:47ID:???なんで居るんだ?
0533名前は開発中のものです。
02/11/10 19:11ID:???↓この人????面白いコトやった人なの?おしえてけろ
ttp://www.vector.jp/vpack/browse/person/an029015.html
0534名前は開発中のものです。
02/11/12 20:19ID:???他のネトゲーみたいにエミュ鯖が出てくるのだろうか?と思ってみるテスト
0535名前は開発中のものです。
02/11/12 20:42ID:???今はまだまだまだまだその時期じゃないけどね。
0536名前は開発中のものです。
02/11/13 22:46ID:???0537名前は開発中のものです。
02/11/15 00:17ID:I9WZR5U10538あぼーん
NGNG0539New Thread
02/11/15 12:52ID:+k9zS7j4http://hayari.tripod.co.jp/
http://www.geocities.co.jp/Technopolis-Mars/7486/
0540名前は開発中のものです。
02/11/15 16:32ID:???,、____| |____,、
〈 _________ ヽ,
| | | |
ヽ' 〈^ー―――^ 〉 |/
,、二二二二二_、
〈__ _ __〉
| | | |
/ / | | |\
___/ / | |___| ヽ
\__/ ヽ_____)
0541名前は開発中のものです。
02/11/15 17:35ID:???が
た
の
し
み
>>115
0542名前は開発中のものです。
02/11/16 16:23ID:???ワラタ
0543名前は開発中のものです。
02/11/17 18:02ID:i8UzChI80544名前は開発中のものです。
02/11/17 18:45ID:???( ,,)┌─┴┴─┐
/ つ. 終 了 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
0545名前は開発中のものです。
02/11/18 15:52ID:???( ,,)┌─┴┴─┐
/ つ. 再 開 │
〜′ /´ └─┬┬─┘
∪ ∪ ││ _ε3
゛゛'゛'゛
0546名前は開発中のものです。
02/11/19 05:09ID:???115さんがよければ。
0547546
02/11/19 08:23ID:???何でも作れると思います。UVテクスチャ込みで。
0548115
02/11/19 20:16ID:???わーーーい
モデル作成に協力してくださるなら、とってもうれしいです。
ただ、私はLightWaveしか持ってないので、
データの受け渡しとかできないと困ってしまうのですが、
ソフトは何をお使いでしょうか??
(3DSMaxもホシイんだけど高いから悩み中...)
あと、今のトコロお礼とかなんもできないですけど...
それでも協力してくれるならとてもうれしいです。
0549546
02/11/20 04:50ID:???マジですか!自分の修行も兼ねてですから、やらせて頂けるだけでもうれしいです。
私はLWとMAX持ってますんで、データ形式は色々対応できます。
早速なんか作りたいと思うんですが、今の所仕様はどんな感じなんでしょう。
1キャラに使えるポリゴン数の制限とか、三角ポリか四角ポリか(もしくは混在OKとか)、
それからテクスチャの色数、大きさ、枚数制限等、、、です。
0550546
02/11/20 05:27ID:???0551アホ
02/11/20 12:40ID:4gIO4yYK0552115
02/11/20 16:20ID:???PSOとかFF11では体格を変えられるようになってますね。
原理的にはボーンの大きさや太さを変えればそういったことはできるハズなのですが
各部の干渉とかあるんで実装できそうかどうかは実験してみないとわからないです。
できれば実装したいとも思ってるのですが手がまわってないです。
色は既に変えられるYO!
>>546さん
えーと、どんなカンジのモデリングを普段していて得意とかありますか?
「今までこんなの作った」とかあったら見てみたいです。
2ちゃんに晒すのはヤとかならメールしてください。
モデル作成の指針としてはとりあえず思いつくのは
・頂点/ポリゴン数/テクスチャサイズ/マテリアル数/ボーン数は小さい方がイイ。
・三角四角混在可ですが、X-fileにする時に三角にコンバートする場合アリ
・テクスチャサイズは最終的に2^n*2^n pixelの正方形になります
・テクスチャは1つのオブジェクトでなるべく1つ以下
・複数のオブジェクトで1つのテクスチャを使うのはOK
・テクスチャのブレンドタイプは「カラーそのまま」「乗算」「乗算して2倍」を
使ってますが、必要なら「加算」「減算」もOKです。
・1つのオブジェクトでは1つのテクスチャブレンドタイプ
・半透明はなるべく使わない方向で...
・ボーンを組み込むオブジェクトにはそれなりの処理を
・モンスターはマテリアルの色1個変えると色違いになるようにしてホシイ
・マップ上の障害物は2m間隔のグリッド単位で衝突判定しています。
ってなカンジですかね...
頂点数・ポリゴン数はモンスターだと500〜600くらいかなぁと思うのですが、
自作のモデルでは無駄に使ってしまってるのが多いのでえらそうなコト言えないデス...
長文失礼しました。
0553アホ
02/11/20 18:46ID:4gIO4yYKとても実施してほしいことで、
各ユーザがクエストや任務みたいなのをゲーム上のある場所で作れたり、任務に契約みたいなのができれば面白いと思います。
あらかじめ、その任務(クエスト)の賞金や、賞品は任務を作った人が出す。
私もオンラインゲームを作ってみたいと思ってて、こんなすごいゲームを一人で作ってしまったのには驚きました。
これからも応援してます!後、自分で言うのはなんですが、絵を描くのが得意です(洋ゲー風のなら)もし手伝ってほしいことがあれば言ってください、
できる範囲なら手伝いたいと思います。
色変えられましたね!失礼しました!!
0554あぼーん
NGNG0555546
02/11/20 20:32ID:5VJ3cwMV遅くなってすいません。大体分かりました。
細かい事はメール送っておきましたので読んでください。
なんか送信ミスしたみたいだったんで再送しました。
(最初送ったファイルを確認したらやたらでかかったんで、
再送では圧縮しました。でかいのも届いちゃってたらすいません。)
0556あぼーん
NGNG0557115
02/11/20 22:01ID:rXzu388jメール届きますた。546さんスゲーっす。スゴスギ
オイラはグラフィックヘナチョコなんで
「少なくともオイラよりはイケテルだろう」なんて失礼なコト考えてたんですが、
スゴスギてびっくりした。写真かと思ったっす。オイラの100倍はスゲー
なんかワクワクしてきますた。
とりあえずこの興奮を2ちゃんにぶつけてしまいますたが、
細かいコトはメールしますです。
0558名前は開発中のものです。
02/11/20 22:47ID:8uxivbBP0559546
02/11/20 23:23ID:5VJ3cwMVいやぁどうもどうも、こんなに誉めてもらえるとは。
ところでもうメール送ってもらえました?
あのアドレス新しく取ったんで、
試しで他のプロバから自分でメール送ってみたんですけど、
もうずいぶん経つのにまだ届かないんですよ。
そちらに送信したときもなんか調子悪かったし。
なので、大変お手数で悪いんですが、良かったら
さっき送ったメアドの最初の7文字目以降を、
このカキコのメアド欄のように書き換えて
そっちに送ってもらえませんでしょうか。
すいませんけど、おねがいします。
0560名前は開発中のものです。
02/11/21 14:37ID:A7cfb1i7通信のrecvとsendはマルチスレッド化するのは当然として、
プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
マルチでやるとメモリ同時書き込みとか怖いのですが…
0561名前は開発中のものです。
02/11/21 15:50ID:d9rcKvhC当然なの?
>プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
オブジェクト毎にスレッド立ち上げる気?
0562名前は開発中のものです。
02/11/21 16:21ID:A7cfb1i7舌足らずだったようで
>>通信のrecvとsendはマルチスレッド化するのは当然として
>当然なの?
一人通信障害がでただけで全体をとめるわけにはいきませんし……。
WinのAASyncなどを使う方法もありますが、私の足りない知識での判断では現実的ではないかなと
マルチスレッド化が当然とは思われていないようですが、何か良策をお持ちでしょうか。
教えていただければ幸いです。
>>プレイヤー同士のあたり判定や敵の動作は、全てひとつのスレッドでやるべきでしょうか?
>オブジェクト毎にスレッド立ち上げる気?
そうではなく、広大なマップを管理する時、ある程度の大きさのエリアにわけてスレッド処理させるべきかなと
とりあえずPC1台を想定しているので。
ただエリア同士の接点部分で、どうしても同アドレス同時書き込み(読み込み)が起きそうなので相談を。
ひとつの解決策として、RagnarokOnlineのようにエリアの移動をワープにし
「絶対違う部屋同士干渉しない」とする手もありますね
115さんは広大なマップをお持ちですが、どうやっているのか興味のあるところです
0563あぼーん
NGNG0564名前は開発中のものです。
02/11/21 17:11ID:CLrMF1mg>>562
>何か良策をお持ちでしょうか
上のほうにこれに関する議論があったよ。
select()を使うとか、ポーリング+小さいsleep()とか。
>ただエリア同士の接点部分で、どうしても同アドレス同時書き込み(読み込み)が起きそうなので相談を。
基本的にスレッド間で共有するデータの読み書きをちゃんと排他制御すれば大丈夫だと思うが。
ロックする粒度を考えないとパフォーマンスががた落ちになると思うけどね。
0565名前は開発中のものです。
02/11/21 19:33ID:REn4AStS0566名前は開発中のものです。
02/11/21 19:47ID:G9GGkiQ6使っている言語はC。
上のほうの関する議論というのをこれから読んでみます。
>基本的にスレッド間で共有するデータの読み書きをちゃんと排他制御すれば大丈夫だと思うが。
>ロックする粒度を考えないとパフォーマンスががた落ちになると思うけどね。
やっぱりここが問題となります。
今の私の方法だと、プレイヤー分recvスレッドをとり、受け取ったデータを蓄えなければいけません。
蓄え場所への、読み込み書き込み場所が、同時に同じ場所にならないようにするためには、
それぞれの場所を表すポインタ。計2個を見る必要があります。
(無限にメモリーを確保できるならまだしも、
(確保したメモリーを使いまわす必要がありますので
(書き込み終了フラグだけというわけにはいきません
最低限このポインタ2つは排他制御しなければなりません
特に読み込み時はその部屋にいる全てのプレイヤーの行動を、蓄えから読み込む必要があります。
途中でrecvスレッドが蓄えに書き込んでる度に、つっかえつっかえするわけにはいかないのですが……
(〜ません。など断定していますが、あくまで私の知識内での断定です)
0567あぼーん
NGNG0568名前は開発中のものです。
02/11/21 20:17ID:AM1yliobで、メモリブロックへの書き込み用ポインタと読み出しようポインタがあると?
だとすると、そういう蓄えに直接データを書くというモデルが悪そうだな。
とりあえず
蓄え=「通信データブロック」のリスト(キュー)
として、
recvスレッドは、データブロックを(蓄えとは関係なく)まず作り完成したら
蓄えリストに追加するというように作れば、排他処理するのは「追加する」
という小さい処理だけになる。
同様にたくわえから読むほうも、リストからはずす処理だけ排他処理するようにする。
排他処理内にループが入ってなければ、ロックによるブロックはそんなに
気にならないと思うが、俺もマルチスレッドは初心者だったり。
まぁ、上みたいな粒度が大きいロックでも1CPUでの実行なら効率変わらないんだけどね。
0569名前は開発中のものです。
02/11/21 20:22ID:CLrMF1mg境界線上にいるキャラクタが2つのエリアから同時に参照されるときに
どうするのか?ってことを問題にしてるのかと思った。
戦闘時にプレイヤーと敵キャラが別々のエリアにいるときとか、難しそう。
UOとかでもなんか問題起こってたよね(アレはスレッドじゃなくてサーバだが)。
0570名前は開発中のものです。
02/11/21 20:49ID:G9GGkiQ6あ、どうも私の文章はわかりづらいようですね。
それでも読んで答えてくださるとは嬉しい限りです。
recvスレッドで、プレイヤーの1動作分蓄えてます
例えば:
[CM_MOVE, 80, 90] クライアントメッセージ、キャラ移動80の90に
[CM_ATTACK, 105] 105のオブジェクトに攻撃
などです。
一度のrecvで取得できるとは限りませんから、1動作分recvするまでは蓄え(「通信データブロック」のリスト)には書きません
568さんのおっしゃる通りの方法だと思います
ただ、「リストに追加する」「リストから排除する」を、
メインスレッドはプレイヤーの数だけするわけです。
1命令の間のクリティカルセクション入りが小石とはいえ、
1000人だとしたら最大2000回小石につまづく可能性を考えると、大丈夫なのかなぁと
ひとつの部屋に1000人いること自体問題かもしれませんが…
>>569
はい、それに関しても私が質問しました。
今はこのレスの上記のように「小石」について考えていますが、
RagnarokOnline式を用いない場合「エリア境界線でのデータ受け渡し」という「大石」な問題がでてきますね…。
とりあえず部屋移動はワープという、ragnarok式で作っています。
(´・ω・`)115さんすごいなぁ…
0571名前は開発中のものです。
02/11/21 21:01ID:G9GGkiQ6今こんな方法でやっております
・recvスレッド
while(1){
・1動作分のデータをローカル変数に保存
・1動作分「プレイヤー行動リスト」にコピー
}
・メインスレッド
while(1){
for(int i = 0; i < player_num; i++){
・プレイヤーiさんの「プレイヤー行動リスト」から、一つローカル変数にコピー
・その行動について検討
・結果を「プレイヤー行動結果リスト」に書き込み(このプレイヤーを視認できる人全員に送る必要あり)
}
}
・sendスレッド
while(1){
・「プレイヤー行動結果リスト」から、一つローカル変数にコピー
・送る
}
・プレイヤー行動リスト
・プレイヤー行動結果リスト
の部分を排他しなければいけないので結構大変かもしれません
特にsendスレッドは、送らなければならないデータが溜まっているかを常に監視する必要があります。
クリティカルセクションに入ったり出たりと忙しそう…
0572115
02/11/21 22:31ID:PIqR+xfjサーバ側のゲーム処理は30fps単位でメッセージループから呼び出しているので
同期問題を気にする部分がほとんどなくて楽です。
#最初はプラットフォーム依存を少なくしようと思ってスレッドで作ってたのですが
#楽なもんでもう戻れないです...
sendについては、データをメモリに貯めて、
各フレームの最後にまとめて送信、全部送れなかった場合には
バッファが空いたメッセージがきた時点で残りを送信。という感じです。
マップをエリアで分ける、というのは多分
当たり判定を全ての組み合わせでやるのは負荷が高い、
遠くにいる敵キャラ等のメッセージまで送信すると帯域が足りなくなる。
という理由を考えてのことだと思います。
私の場合には距離が近いかどうかを保持してしていて
当たり判定、送受信は近い距離の場合のみ行っています。
距離が近いか遠いかの判定はキャラ数によって負荷が高くなる可能性がありますが、
必ずしもフレーム単位で行う必要があるわけではなので便利です。
このデータはマトリックスと線形リスト両方で持っていて、
処理に便利な方を使う、というようになっています。
一般的なやり方/適切な方法かどうかはわからないのですが...。
0573名前は開発中のものです。
02/11/21 22:35ID:7YHJYPa6>ただ、「リストに追加する」「リストから排除する」を、
>メインスレッドはプレイヤーの数だけするわけです。
プレイヤーごとに排他処理をすれば良い。
つまりリストをプレイヤー分よういして、それぞれに対応するmutexを作って
それぞれの追加/取り出ししょりで対応するmutexを使ってロックする。
送信も同じ。
>特にsendスレッドは、送らなければならないデータが溜まっているかを常に監視する必要があります。
ポーリングしようとしてる?
シグナル等とメインからsendに伝える方法はいくらでもありそうだけど。
>「エリア境界線でのデータ受け渡し」という「大石」な問題がでてきますね…。
スレッドならデータは共有されてるわけだから、こういう問題は起きないかと。
>>571
というか、どこをクリティカルセクションに仕様としているか示してくれると議論しやすそう。
0574560から色々質問してる人
02/11/21 23:07ID:G9GGkiQ6115さんのやりかたおもしろいですね。
なるほど近いかどうかを「何フレームかに一度」判定して保持しておくわけですか。
たしかにMMOなら毎フレームシビアにする必要ありませんね。ナイスアイデアです。
そして環境依存の話ですが…。>>573さんの話と絡めてします。
>>573さん
もちろんプレイヤー数分クリティカルセクションを持っています
「余談」
WindowsではMutexよりダントツにクリティカルセクションのほうが速いようです
ttp://www-6.ibm.com/jp/developerworks/linux/020118/j_l-rt5.html
>エリア境界線でのデータ受け渡しによる「大石」
ご指摘の通りです。色々考えているうちに混乱したようです。
1つのマシンな限り、問題ないですね
0575560から色々質問してる人
02/11/21 23:08ID:G9GGkiQ6・プレイヤー行動リスト
・プレイヤー行動結果リスト
この二つに読み込み、書き込みするのですが、
それが重ならないようには作ってあります。
具体的には
・256行動分プレイヤーコマンドを保存する変数を配列で確保する
・読み込み場所ポインタ、書き込み場所ポインタを用意する
・読み込むたび、書き込むたびにポインタを一つ加算する
・限界まできたらポインタを配列の最初に
・書き込みしてポインタを加算したとき、読み込みポインタと書き込みポインタが一緒だったら1周して追い越した。エラーとして通信遮断
・↑以外の時、読み込みポインタと書き込みポインタの位置が一緒なら、リストにデータは溜まっていないと判断
こうつくってあるので、
「ポインタをローカル変数にコピーする時だけ排他すればOKです」
つまり、
・プレイヤー行動リスト
・プレイヤー行動結果リスト
を読み書きする寸前にちょびっとということになります
>ポーリングしようとしてる?
>シグナル等とメインからsendに伝える方法はいくらでもありそうだけど。
シグナルを調べてみたのですが、これは便利ですね。
ただ私が調べた限りlinuxにおいて同等の機能がありません。(´・ω・`)
115さんもAASync使っていらっしゃるようですが、なるべくならサーバーはLinuxとしたいところ。
(Linuxの勉強をかねているので)
自分自身にソケットでコネクション張って、recvで待たせ、メインからsendで1バイトのデータを送れば信号代わりにできそうですね!
……(´・ω・`)
0576560から色々質問してる人
02/11/21 23:14ID:G9GGkiQ6>115さんAASyncについて
つまり115さんはスレッドを使ってない。
ちょっとsockについて詳しく調べたわけではないので恐縮ですが、
回線細い人にsendしたり、回線が実は切れてる人にsendすることによって、全体のパフォーマンスが落ちたりはしないのでしょうか
*「↑この疑問が出た理由」
*以前AASyncを使ってファイル送受信ツールを作ったことがあります
*そのさいためしにsendで大きなデータを送ろうとしたら、そのsendで処理がしばらく止まりました(もちろん送れはしました)
*非同期設定なのにこのsend。送信し終わるまで待つのかな?? と疑問に思ったのです
関連して、
・sendで時間をとられると、人数が多くなった時にゲームが一定間隔(FPS20とか)で進まなくなるかなぁ
・AASyncの受信メッセージって、ちゃんと偏らず全員からまんべんなくいただけるのかなぁ
という疑問が生じました
質問ばかりですいません。
なるべく実装結果の報告などで情報提供に努めますのでご容赦ください
■ このスレッドは過去ログ倉庫に格納されています