1

iPhone 向けのオンライン マルチプレイヤー ゲームを開発したいと考えています。

私は 2 つの iPhone アプリケーションを開発しましたが、それらはゲームではありませんでした。

これは私の最初のゲームです。

基本的に、オンラインマルチプレイヤーゲームがiPhoneでどのように機能するかについては何も知りません。

iPhone でマルチプレイヤー ゲームを理解するのに役立つ戦略、初心者向けの注意事項、およびその他の設計要素を知りたいだけです。

例: オンライン カジノ ゲーム (Bluetooth ではない) がある場合、すべてのプレーヤー間で接続とセッションがどのように機能するか。

編集 Brad Larson と ChrisF によって提案されたように、これらの質問を個別に入れました。

ゲームは他のオンライン ユーザーをどのように検索し、すべてのユーザーのリストを表示しますか?

誰かにゲームへの参加をリクエストして、他のユーザーに表示するにはどうすればよいですか?

テーブルのプレイヤー間の接続とセッションはどのように機能しますか? (ソケット?)

サーバーとクライアントの一部として、どのようなネットワーク プログラミングが必要ですか?

これらすべてがどのように機能するか教えてください。(ただの概念)

ありがとう 。

4

2 に答える 2

3

ゲームは他のオンライン ユーザーをどのように検索し、すべてのユーザーのリストを表示しますか?

オンライン プレーヤーのリストを iPhone クライアントに返すサーバーが必要です。これは、XML や JSON などのデータ形式の一種です。

誰かにゲームへの参加をリクエストして、他のユーザーに表示するにはどうすればよいですか?

最も簡単な方法は、ゲームに参加したい人がそのコマンドをサーバーに送信し、サーバーが他の人に参加したいことを伝えることです。応答を待ちます。プレーヤー 2 が「はい」と言った場合、サーバーに戻り、最初のプレーヤーに転送されます。

これは基本的に、サーバーとの間で送受信される一連のコマンドです。これは、すべてのマルチプレイヤー ゲームの仕組みです。たとえば、Quake エンジンは、「サーバー上のすべてのプレイヤーを取得する」などのコマンドを 4 バイトという非常にコンパクトなコマンドで送信します。Quake ネットワーク コードは 56k モデム用に設計されているため、iPhone 接続の不安定さを考えると、これはコピーするのに適したモデルです。

テーブルのプレイヤー間の接続とセッションはどのように機能しますか? (ソケット?)

接続は、連続ストリーム (UDP が最適) またはクライアントからのポーリングのいずれかです。100 人がプレイするとサーバーが機能しなくなる可能性があるため、両方のスケーリングを検討する必要があります。

1 人のプレーヤーが接続を失った場合、セッションはドロップされます。また、ターン制であるため、各プレイヤーがオンラインのときにコマンドを送信し、他のクライアントがオンラインのときにコマンドを受け取ることができます。このモデルではセッションは必要なく、コマンドはサーバーのデータストアに保存されます。

サーバーとクライアントの一部として、どのようなネットワーク プログラミングが必要ですか?

私はこれを広げます:

  • ビットシフトを含むバイトおよびビット操作に関する深い知識
  • UDP パケットの作成と読み取りに関する知識
  • C でのネットワーク プログラミング (Objective-C は、この多くを簡素化する可能性があります)
  • サーバー: Linux でデーモンを作成するか、Windows でコマンドをリッスンするサービスを作成する
  • 帯域幅や接続の切断に関心がない場合は、SOAP、XML、または JSON の知識
于 2010-06-29T08:03:14.277 に答える
1

両方 (全員?) のプレイヤーが同時にオンラインになることを保証できないため、ゲームの状態を保存するためのサーバーが必要になる場合があります。これが保存するものの1つは、誰の番だったかです。

次に、プレーヤーが自分の電話の電源を入れるか、ゲームを開始すると、自分の番だというメッセージが表示されます。

このサーバーを使用して、ハイスコアとテーブルも保存できます.

于 2010-06-28T11:07:23.350 に答える