この記事では、アプリの開発を始めるにあたって に書かれている基本を越えて、ゲームアプリを開発する際に考慮すべきいくつかの事柄を説明します。特に興味深いのは、ゲームを (警告と制限付きで) オフラインでもプレイできるようにする方法、プレーヤー情報の保存、プレーヤーが友人と交流できるようにする方法です。
オフラインでもゲームをプレイできるようにする
アプリのオフラインでの使用 で、アプリやブラウザがインターネットへ接続していないときもゲームをプレイできるようにするために応用できる一連の技術について説明しています。少なくとも、アプリケーションキャッシュを使えば、ゲーム自体の基本構造を常時利用可能にすることができます。これには、一度それらの要素がユーザのキャッシュに読み込まれれば、それ以降のゲームの読み込みが非常に素早くなるというメリットもあります。
あなたのゲームがサーバサイドロジックを多用している場合、完全にオフラインでプレイ可能にすることは現実的でないかもしれませんが、それでも IndexedDB や DOM Storage に十分なデータを保存しておけることは好都合でしょう。そうすれば、プレーヤーの接続が失われた場合でも (例えば彼らのパソコンの WiFi 接続が切れても)、ゲームが急停止したり予期せぬ動作をすることなく、一部の機能だけでもローカルでプレイできます。
プレイヤーの特定
特に様々な状態を保存することが理にかなっているとき (セーブした途中経過、獲得した体験など)、ゲームの各プレーヤーとリアルタイムで関係を持つことで楽しめることはよくあります。現在ゲームで遊んでいるプレーヤーがサーバに記録されているのと同じ人物であることを確認する必要があります。そうした場合、以下のような技術が利用可能です。
- BrowserID — プレーヤーは特定のメールアドレスの管理者であることを証明できます。Mozilla があなたに代わって多くの処理をこなせる公開サーバを運営しており、あるいはあなた自身でサーバを立てることも可能です。
- Twitter — プレーヤーは OAuth 1.0a を使って特定の Twitter アカウントの管理者であることを証明できます。ゲームを Twitter や同社のサーバに依存させる必要があります。
- Facebook — プレーヤーは OAuth 2.0 を使って特定の Facebook アカウントの管理者であることを証明できます。ゲームを Facebook や同社のサーバに依存させる必要があります。
そうした方法のいずれかで取得した認証情報は、セーブした途中経過、友人リスト、写真、その他重要なリソースを提供するアカウントへのアクセスを認証するため、ゲームサーバで使用できます。
ゲームのソーシャル化
マルチプレーヤーゲームは、プレーヤーが友人の中から対戦相手を選んだり、プレイ内容の一部としてその他の方法でその友人たちとやりとりしたりできるというメリットがあります。Twitter も Facebook も、様々な他の API とともに、友人やフォロワーのリストを取得する機能を提供しています。