- ベストアンサー
ゲームプログラミングでのネットワーク対戦の実装方法
- ゲームプログラミングでネットワーク対戦を実装する方法について教えてください。
- ネットワーク対戦を導入するためのライブラリや仕組みについて教えてください。
- ゲームの通信特性やデータ送信の方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
WinSockで良いと思います。 (DirectPlayを使うメリットってほとんどないと思います。 自分で作スレッドをったりしなくてよかったり ロビーのシステム等が使えるのですが後で応用がききにくいです。 DirectPlayの部分に関しては更新もされていないようですし。) >・1vs1の通信対戦 >・一回のデータ量は少ないが、ほぼリアルタイムに送信 >という感じです。 TCPは1回のパケットのオーバーヘッドがでかいため UDPも使った方がいいのですが最初はTCPのみで組むことをすすめます。 UDPはルーター越えの事を考慮する必要もありますしデフォルトでUDPがふさがれている場合や パケットがロストすることもあり混乱すると思います。 もちろん最終的には環境によってUDPとTCPを自動切換するのがよいです。 TCPとUDPの違いについてはネットで調べてみてください。 (もしパケットの詳細を知りたいのなら「マスタリングTCP/IP」という本がおすすめです。) >出来ましたら簡単に仕組みを解説していただければ幸いです WndProcで非同期モードにする場合と通信部分を別スレッドで実行する方法があるのですが どちらかの方法をとります。 (前者はパケットを受信するとウインドウメッセージが送られる仕組みで 後者は別スレッドでパケットがくるまで待機するという仕組みです。) 最初は「猫でもわかるネットワークプログラミング」という本がお勧めです。 チャットのサンプルコードもあるので参考になるでしょう。 あと余裕があるなら「WinSock2プログラミング-Windows Socket APIによるネットワークプログラミングのすべて」 もあわせて買うとよいと思います。こちらはWinSockの各APIの詳細な説明が書かれています。
お礼
お礼が送れて申し訳ありません。 なるほど、詳しく教えてくださり、助かりました。 WinSockを使用して通信部分を組むことにします。 頑張ってみます。ありがとうございました。