ページ 11

DxLibを使用して作成したネット対戦ゲームがズレてしまう

Posted: 2010年7月01日(木) 15:10
by けんたろうちゃん
DXライブラリ公開ページにあるチャットプログラムを参考に、ネット対戦ゲームを作ろうと思いました。
しかし、何度やっても対戦中に微妙なズレが生じてしまいます。

ネット対戦の流れとしては
・お互いに自分の入力状態を相手に送信
・相手の入力を自分のPC上で再生
というような感じです。

どなたかズレが発生しないような、修正方法を知っている方は教えてください。
できることなら、汎用性の高い方法にしたいです。
(他のゲームに応用できるように、入力情報の受け取りにしています)

以下にソースコードとコンパイル済みのプログラムを置きました。

http://www1.axfc.net/uploader/Sc/so/129442
Pass:1111

ゲームの操作方法は以下の通りです。
・↑、↓:移動
・Z:弾を発射

よろしくおねがいします。 画像

Re:DxLibを使用して作成したネット対戦ゲームがズレてしまう

Posted: 2010年7月01日(木) 16:27
by toyo
test.cpp:int ConnectRun()関数で
// データを受信
NetWorkRecv( NetHandle , o_buf , sizeof(char) ) ;
ですが受信バッファが空の場合は失敗して-1が返ってくるようです
ここを0が返るまでループすればズレはなくなると思いますがゲームのスムーズさが無くなるかもしれません

Re:DxLibを使用して作成したネット対戦ゲームがズレてしまう

Posted: 2010年7月01日(木) 22:18
by けんたろうちゃん
>>toyoさん
返信ありがとうございます。
同期ズレはなくなりましたが、やはり遅すぎてゲームとして成り立たなくなってしまいました。
対戦ゲームでは非同期通信がベストなのでしょうか?
でも非同期だとズレてしまうし・・・
なかなかうまくいきません・・・

とりあえずこの質問(ズレについて)は解決とします。