私の50%が最終版にマルチプレイヤーをサポートしている必要があります物理エンジンとしてBOX2Dでの2D横スクロールゲームを終えました。しかし、現在のコードは単なるゲームです。
- ここで何をすればよいですか?
- さらに重要なのは、マルチプレイヤーを実装してシングルプレイヤーと組み合わせるべきですか?
- マルチプレーヤモードから分離したシングルプレイヤーモードをコード化することは悪い考えですか(、NotchはMinecraftと同じです)?
I:
シングルプレイヤーでパフォーマンスが
のフルバックグラウンド/質問(そこに問題になるのsingleplayerモードを実装するために、ループバック・サーバを使用して物理学をシミュレート)できるだけ良いことがありますC++の比較的大きな2Dゲームプロジェクトに取り組んでいます。物理を核としています。 (私はそのためにBox2Dを使用しています)
完成したゲームは完全なマルチプレイヤーをサポートしているはずですが、私はネットワーキングの部分を正しく計画しておらず、基本的にはシングルプレイヤーゲームで作業していました。
私は、マルチプレイヤーのサポートがほぼ完成したシングルプレイヤーのゲームに比較的簡単で明確な方法で追加できると思っていましたが、私がこれを読んだことは明らかに間違っています。
マルチプレイヤーゲームは最初からプログラムされていなければならず、シングルプレーヤーモードは実際には目に見えないローカルサーバーをホストし、ループバック経由で接続するだけです。 (私は、ほとんどのFPSゲームエンジンがそのようにしていると分かりました。例はSourceです)
ここで私の半分は2Dのサイドチェロゲームで完成しました。
シングルプレイヤー/クライアントで作業を続けるだけで、今すぐ私には役に立たないように思えます。私は、後でコードを書き換え、リファクタリングする必要があります。
まず、おそらくこのような状況で自分自身を発見誰にも一般的な質問:
- どのように進めるべき? その後
、より具体的な1 - 私は私が私のゲームのためのネットワーキングの一部に近づくことができる方法を見つけるためにしようとしている:
- のsingleplayer
このため目に見えない/ループバック・サーバ基本的にシングルプレイヤーモードとマルチプレイヤーモードの違いはないという利点があります。あまり追加のコードは必要ありません。
大きな欠点:パフォーマンスとシングルプレイヤーでのその他の制限。 2つの物理シミュレーションが実行されます。 1つはクライアント用で、もう1つはループバックサーバー用です。
ループバックサーバーからのデータのダイレクトパスを提供して回避する場合でも、スレッドによる直接通信を通じて、シングルプレイヤーが制限されます。
これは、人々が一度に大量のオブジェクトで遊ぶことを許可されるべきであるため、これは問題です。
- 分離のsingleplayer /マルチプレイモード
はのsingleplayerモードに関わる一切のサーバはないだろう。
これはどのように動作するのかわかりません。しかし、少なくとも、私は、シングルプレイヤーの機能のすべてがマルチプレイヤーモードに再実装または接着されなければならないため、多くの追加作業が必要になると考えています。 singleplayer
ためのモジュールとして
- マルチプレイモードこれは単に私が持っていた速いと考えられています。マルチプレイヤーは、追加のネットワーキングモジュールをロードしてサーバーに接続し、データを送受信し、シングルプレイヤーの世界を更新するシングルプレイヤーゲームで構成できます。
回顧展では、以前にマルチプレーヤーモードを計画していなかったことを後悔します。私は本当にこの時点で立ち往生しています、そして、私は誰かが私を助けることができることを願っています!
gamedev.SE http://gamedev.stackexchange.com/は面白いアイデアだ – CodesInChaos