6: 2015-06-22 (月) 08:55:17 njf |
7: 2015-06-22 (月) 12:38:51 njf |
| | | |
| そのため、最近ではブラウザゲームのゲームデータの保存はサーバーで行う事が多くなりました。 | | そのため、最近ではブラウザゲームのゲームデータの保存はサーバーで行う事が多くなりました。 |
| + | |
| + | また、Webで保存したデータをアプリと共有できれば、Webのユーザーをアプリに導いたりも出来ます。 |
| | | |
| ここではゲームデータの保存のためにGoogle App Engineの使い方を紹介していきます。 | | ここではゲームデータの保存のためにGoogle App Engineの使い方を紹介していきます。 |
| | | |
| ブラウザでのカジュアルゲームの場合、初期にかなりアクセスが集中してその後はほとんど負荷が無くなることが多いです。すると最初の数ヶ月のために性能の良いレンタルサーバーを借りるのは無駄が大きくなります。GAEだとアクセスが多くても勝手にスケールし、しかもアクセスが少なくなれば無料になります。使った分だけ払えば良く初期投資などのリスクが無いので、リリース前に負荷が読めにくく安定もしないブラウザゲームにとってはとてもありがたいです。 | | ブラウザでのカジュアルゲームの場合、初期にかなりアクセスが集中してその後はほとんど負荷が無くなることが多いです。すると最初の数ヶ月のために性能の良いレンタルサーバーを借りるのは無駄が大きくなります。GAEだとアクセスが多くても勝手にスケールし、しかもアクセスが少なくなれば無料になります。使った分だけ払えば良く初期投資などのリスクが無いので、リリース前に負荷が読めにくく安定もしないブラウザゲームにとってはとてもありがたいです。 |
| + | |
| + | また、アプリのデータの共有などでも全く同じ理由が当てはまります。さらにGAEはプッシュ通知などにも対応したのでアプリのデータ保存にも最適です。 |
| | | |
| ただし、もちろん問題もあります。 | | ただし、もちろん問題もあります。 |
| | | |
| しかし、これらの問題はほとんどの場合、サーバー側の処理が複雑になったときに重要になるので、個人で作るカジュアルゲームなどでは気にすることはあまりないでしょう。また、知識があれば避けられる問題も多いです。 | | しかし、これらの問題はほとんどの場合、サーバー側の処理が複雑になったときに重要になるので、個人で作るカジュアルゲームなどでは気にすることはあまりないでしょう。また、知識があれば避けられる問題も多いです。 |
| + | |
| | | |
| *言語 [#t07fc23a] | | *言語 [#t07fc23a] |
| これらの設定は後で「Project」の「Properties」からでも変更することが出来ます。 | | これらの設定は後で「Project」の「Properties」からでも変更することが出来ます。 |
| | | |
- | 最後にapplication idとテンプレートを指定します。application idはアプリケーションを識別するIDで、Googleのサーバーで公開する場合には後から変えることは出来ません。今回はテスト用なので適当でもかまいませんが、公開するアプリの場合はわかりやすくて一意になるような名前をつけましょう。 | + | 最後にapplication idとテンプレートを指定します。application idはアプリケーションを識別するIDで、Googleのサーバーで公開した場合には後から変えることは出来ません。今回はテスト用なので適当でもかまいませんが、公開するアプリの場合はわかりやすくて一意になるような名前をつけましょう。 |
| | | |
| テンプレートはHello Worldを指定します。 | | テンプレートはHello Worldを指定します。 |
| &ref(gaeAddExistingProject.png,mw:480,mh:360); | | &ref(gaeAddExistingProject.png,mw:480,mh:360); |
| | | |
- | さらに先ほど制作したプロジェクトを選択します。 | + | さらに先ほど制作したプロジェクトを選択します。Portなどの番号はデフォルトで問題ありません。 |
| | | |
| &ref(gaeSelectProject.png,mw:480,mh:360); | | &ref(gaeSelectProject.png,mw:480,mh:360); |
| ブラウザでHello Worldが表示されるはずです。 | | ブラウザでHello Worldが表示されるはずです。 |
| | | |
- | ***プロジェクトの解説 [#mb974a6d] | + | ***Hello Worldプロジェクトの解説 [#mb974a6d] |
| + | |
| + | では作成されたプロジェクトの内容を見ていきましょう。最初にアプリ全体の設定を行うapp.yamlです。 |
| + | |
| + | application: hello-world-app |
| + | version: 1 |
| + | runtime: python |
| + | api_version: 1 |
| + | |
| + | handlers: |
| + | - url: /.* |
| + | script: helloworld.py |
| + | |
| + | 最初の行はアプリケーションのIDです。実際にGoogleに登録するときにアプリケーションを区別するために使われます。 |
| + | |
| + | versionはアプリのバージョンを表します。GAEでは公開したアプリのバージョンをいつでも自由に変えることが出来ます。つまり、version 1を公開してつぎのアップデートでversion 2にしたとします。しかし、不具合が見つかったのでversion 1に戻したい場合は、web上のコンソールですぐに戻す事が出来ます。 |
| + | |
| + | もし、versionを変えずにサーバーに登録するとソースコードが上書きされてしまい、元に戻すことは出来ません。アップデートするときはよほどささいな変更で無い限り、必ずversionを上げていくようにしましょう。そうすればいざというときにすぐに元に戻すことが出来ます。 |
| + | |
| + | runtimeは使っている言語環境です。ここではそのまま、pythonです。 |
| + | |
| + | api_versionはGAEのAPIのバージョンです。現在は1しか無いようですので1にしておきましょう。Python3対応で2になりそうですが分かりません。 |
| + | |
| + | handlersはアクセスしてきたURLをどのスクリプトで処理するかを表しています。ここではルート以下全てのアクセスをhelloworld.pyで処理するようにしています。 |
| + | |
| + | この例はかなり単純ですが、これ以外にもスレッドの管理方法や静的ファイルの紐付けなどをapp.yamlで行います。GAEで最初に躓きやすい場所なので、簡単な例でしっかり使い方を覚えておきましょう。開発中にまったく実行すらされなくなった、という場合は大抵app.yamlに間違いがあります。 |
| + | |
| + | つぎにhelloworld.pyですが、こちらは簡単です。 |
| + | |
| + | print 'Content-Type: text/plain' |
| + | print '' |
| + | print 'Hello, world!' |
| + | |
| + | 1行目はヘッダでContent-Typeにtextを指定、2行目は改行、3行目は文字出力です。 |
| | | |
| + | 以上がHello Worldプロジェクトの内容です。実際の開発ではフレームワークなどを使うのでもう少し複雑になりますが、GAEの開発の概要は理解できると思います。 |
| | | |
- | 準備中です。 | + | 次はGAEでデータを保存する例を紹介する予定です。 |