BlueWing(通信Extension)を使ったネットワークゲームの作り方
細かい部分の解説については他のサイトに任せ サンプルをベースにした実践的な組み方の解説&個人研究になります。 組み方はサンプルを、解説は概念をメインとする予定… ※概念で理解すれば言語やツールが変わっても作れます 基礎編 ・接続とデータのやりとり ・通信するデータに意味を持たせる 応用編 ・通信ラグを理解する TCPパケットやUDPパケットにもデータサイズがあり 言うなればこれは荷物(データ)を送る為の入れ物、封筒や段ボール自体の重さであるというイメージです ※20200802エクステンションバージョンを最新版へ変更(内容的な変更はしていません) ※20200705更新 作ってみたゲームsoregasi ------------------------------------- エクステンションの公開元 http://dark-wire.com/relay/ ------------------------------------- 各解説は、まだ制作中で未完ですが一応参考にあるぶんを公開しておきます。 ご参考にどうぞ。 bluewing_sample ------------ 回線が物理接続等で安定していればTCPの動作はおおよそ保障されるが MTU値が不適切であったり、単純に無線回線であったりする場合にはTCPであってもパケットロスする可能性が高い。 その際、重要な通信(ゲームシーンの切り替え等)をTCPによる高保証通信を利用していたとしても パケットロスによるデータ未着により、ゲームの状態遷移が途切れてしまいバグの原因となり得る為 重要な通信に関してはさらに自前でデータの到着管理を組み込む必要がある。 また、データのロス率を計測し、ロス率高い回線のユーザーは 任意的に切断を行った方がゲーム全体のパフォーマンスも上がると考えられる。 (リアルタイムゲームではやむを得ないと言える…) ------------ https://blogs.itmedia.co.jp/komata/2011/04/udp-8fa9.html IPv4でUDPを送出するには、IPv4ヘッダ(20バイト以上)とUDPヘッダ(8バイト) https://note.cman.jp/network/bpsbs/ https://note.cman.jp/network/speed.cgi 最低限のヘッダ28 BYTE +ゲームデータ(5BYTE) = 33BYTE = 264bit 10Mbit / 60(フレーム) = 0.166666 1フレあたり 0.16Mbit = 166KBit 166 / 4(おおよその割合) = 41.5Kbit での通信量を目安