*概要 [#rf9b7dd3] Flashゲームでは以前はSharedObjectでゲームのセーブが出来たのですが、最近はブラウザのセキュリティでデフォルトでは一定期間で消えるようになりました。 消えるとプレイヤーから文句を言われますし、ブラウザの設定ですと注意書きをしても無視するプレイヤーがかなりいます。無視されなくても理解できないユーザーもかなりいます。 そのため、最近ではブラウザゲームのゲームデータの保存はサーバーで行う事が多くなりました。 ここではゲームデータの保存のためにGoogle App Engineの使い方を紹介していきます。 *Google App Engine [#c810862b] Google App Engine(以下GAE)はGoogleのクラウドサービスで、簡単にいえばGoogleのサーバー群の上に乗って動くレンタルサーバーの様なものです。 GAEをブラウザゲームの保存に使う理由は以下の通りです。 -無料枠があり、ゲームがヒットしなければサーバー代は無料になる -従量課金だがそれほど高価では無く、課金されたとしても、ちゃんと調整していれば大きな額にならないため、広告を入れておけば赤字にはならない -自動でリソースがスケールするので、過負荷でサーバー自体が落ちると言うことは無い -自分でサーバーの管理をする必要は無い ただし、もちろん問題もあります。 -他のサーバーに後から移したくなってもそのままでは無理である -ちゃんと課金額が大きくならないような調整をしていないとそれなりにかかる -集計や並べ替えといった処理が難しい -はじめから負荷が高く一定であることが分かっているならサーバーを借りた方が安くなる場合が多い -swfなど、容量の大きな静的ファイルは普通のサーバーに置いた方が安くなる しかし、これらの問題はほとんどの場合、サーバー側の処理が複雑になったときに重要になるので、個人で作るカジュアルゲームなどでは気にすることはあまりないでしょう。 *言語 [#t07fc23a] 対応している言語はJavaやPython、PHP、Goなどいろいろあります。国内ではJavaの情報が多いようですが、海外ではPythonも人気があります。 それ以外の言語については分かりませんが、Goや最近の言語でPHPは最近の対応なので資料が少ない事が予想されます。 カジュアルゲームのデータの保存程度ならPythonをお勧めします。 大規模開発ならJavaのような厳密な型定義やクラスのある言語の方が良いかも知れませんが、ゲームデータの保存だと少ない場合は1ユーザー1レコード、管理用の物も含めて2~3テーブル程度しかデータはありませんので、それだけのためにJavaで書くのは面倒です。Pythonだとタイプ量が格段に減ります。 また、ひょっとすると最近は改善されているかも知れませんが、開発環境であるGAEのSDKの実行速度がPythonの方がずっと速いです。よって数日で完成するようなものならPythonの方がだんぜん能率は良いです。 *チュートリアル [#r376bfde] 準備中
(This host) = https://njf.jp