私と私のスタートアップ アプリ会社は、ターン ベースのマルチプレイヤー iPhone アプリケーションに取り組んでいます。私たちのどちらも、データベースやサーバーの知識をまったく持っていないと言いましょう。しかし、私たちは喜んで学びます。
ゲームの流れは、WordFeud、WordsWithFriends、Rumble などのゲームと似ています。
まず、ウェブでの多くの検索結果から始めましょう。
ユーザー、ゲーム セッション、その他の情報を格納するためのツールとしてCouchDBを使用することにしました。CouchDB は、オープン ソースの noSQL データベース システムです。その理由は、多くの同時ユーザーをサポートする必要があると教えられてきたからです。その上、それはスケールします-もちろん、私たちは大きくなることを望んでいます.
私たちの CouchDB はIrisCouchでホストされています。IrisCouch は、CouchDb を実行するために設計された「クラウド内」ホスティング サービスです。
これで、CouchDB サーバーが稼働し、サーバーからデータをクエリする方法の基本がわかりました。
現在、私たちの最大の混乱は、ベスト プラクティスに従って動作するようにシステムをセットアップする方法です。現在、データを受信してサーバーに送信できるようになっています。
私たちのゲームは、ユーザーがアプリまたは Facebook を介して登録できるように、Facebook と統合する必要があります。その後、ランダムにマッチした相手と遊んだり、友達と遊んだりできます。試合が開始された後、1 人のプレイヤーが一連の質問を受け取り、彼が答えた後、プッシュ通知を介して他のプレイヤーに自分の番であることを通知する必要があります。数ラウンド後、ゲームは終了します。
現時点では、これがアプリケーションのフローに最適なソリューションである可能性があると考えています。
- ユーザーが別のユーザーに接続します -> ゲーム セッションは、"games" と呼ばれるデータベース内のドキュメントとして開かれます。
- 新しく作成されたドキュメントには、プレイヤー名、質問、回答などの両方が含まれています
- 「whos_turn」という名前のフィールドは、2 人のプレイヤーのどちらの番になるかを決定します。
- ゲームが終了すると、セッションは消去されます。
繰り返しになりますが、ご覧のとおり、実際にどのように行うかについてはまだわかっていませんが、これが一般的な考え方です。
したがって、私の質問は次のようになります。
データを iPhone アプリケーションから直接クエリするのと、Web サービスを介してクエリするのとではどちらが最適ですか?
アプリケーションのフローを最適に管理するために、データベースをセットアップする最適な方法は何ですか?
私たちを近づける可能性のある情報は、喜んでいただければ幸いです:)
よろしくお願いします!
オラフ・ガンダーセン
EDIT#1 : 私たちの Objective-C プログラマーは、CouchDb を使用して 2 つの iPhone デバイスを接続することに成功しました。iPhone アプリケーションは、データベースとの同時接続を持つテーブル ビューで構成されているため、誰かがデータベースに POST すると、接続されている他のすべての電話のテーブル ビューに表示されます。見よ: 非常に効果のないチャット システム。