Ad
6: 2015-06-22 (月) 08:55:17 njf ソース バックアップ No.6 を復元して編集 現: 2017-05-25 (木) 02:09:12 njf ソース 編集
Line 6: Line 6:
そのため、最近ではブラウザゲームのゲームデータの保存はサーバーで行う事が多くなりました。 そのため、最近ではブラウザゲームのゲームデータの保存はサーバーで行う事が多くなりました。
 +
 +また、Webで保存したデータをアプリと共有できれば、Webのユーザーをアプリに導いたりも出来ます。
ここではゲームデータの保存のためにGoogle App Engineの使い方を紹介していきます。 ここではゲームデータの保存のためにGoogle App Engineの使い方を紹介していきます。
Line 20: Line 22:
ブラウザでのカジュアルゲームの場合、初期にかなりアクセスが集中してその後はほとんど負荷が無くなることが多いです。すると最初の数ヶ月のために性能の良いレンタルサーバーを借りるのは無駄が大きくなります。GAEだとアクセスが多くても勝手にスケールし、しかもアクセスが少なくなれば無料になります。使った分だけ払えば良く初期投資などのリスクが無いので、リリース前に負荷が読めにくく安定もしないブラウザゲームにとってはとてもありがたいです。 ブラウザでのカジュアルゲームの場合、初期にかなりアクセスが集中してその後はほとんど負荷が無くなることが多いです。すると最初の数ヶ月のために性能の良いレンタルサーバーを借りるのは無駄が大きくなります。GAEだとアクセスが多くても勝手にスケールし、しかもアクセスが少なくなれば無料になります。使った分だけ払えば良く初期投資などのリスクが無いので、リリース前に負荷が読めにくく安定もしないブラウザゲームにとってはとてもありがたいです。
 +
 +また、アプリのデータの共有などでも全く同じ理由が当てはまります。さらにGAEはプッシュ通知などにも対応したのでアプリのデータ保存にも最適です。
ただし、もちろん問題もあります。 ただし、もちろん問題もあります。
Line 29: Line 33:
しかし、これらの問題はほとんどの場合、サーバー側の処理が複雑になったときに重要になるので、個人で作るカジュアルゲームなどでは気にすることはあまりないでしょう。また、知識があれば避けられる問題も多いです。 しかし、これらの問題はほとんどの場合、サーバー側の処理が複雑になったときに重要になるので、個人で作るカジュアルゲームなどでは気にすることはあまりないでしょう。また、知識があれば避けられる問題も多いです。
 +
*言語 [#t07fc23a] *言語 [#t07fc23a]
Line 66: Line 71:
開発用のエディタとしてEclipseを使います。理由は他の言語の開発などでもよく使われるので資料が多いのと、PyDevというPython統合環境用EclipseプラグインがデフォルトでGAEをサポートしているので、テンプレートなどが用意されており便利だからです。もちろん、使い慣れたエディタで作業してもかまいません。 開発用のエディタとしてEclipseを使います。理由は他の言語の開発などでもよく使われるので資料が多いのと、PyDevというPython統合環境用EclipseプラグインがデフォルトでGAEをサポートしているので、テンプレートなどが用意されており便利だからです。もちろん、使い慣れたエディタで作業してもかまいません。
 +
 +
 +また、GoogleはGAEに対応したeclipse用のプラグイン「[[Google Plugin for Eclipse:https://developers.google.com/eclipse/]]」をリリースしています。Webゲームの保存程度ならそれを使う必要は無いのここでは触れませんが、アプリ開発などではこれを使うとプッシュ通知などのテンプレートを利用できたりします。
 +
Eclipseのインストールについては「Eclipse インストール」などで検索するとわかりやすい記事が大量にヒットすると思いますのでそちらを参考にしてください。 Eclipseのインストールについては「Eclipse インストール」などで検索するとわかりやすい記事が大量にヒットすると思いますのでそちらを参考にしてください。
ちなみにEclipseはデフォルト設定だと結構遅いので、非力なパソコンの場合は「eclipse 高速化」などで検索して特にメモリ関連の設定などはすこし変更しておいた方が良いかもしれません。 ちなみにEclipseはデフォルト設定だと結構遅いので、非力なパソコンの場合は「eclipse 高速化」などで検索して特にメモリ関連の設定などはすこし変更しておいた方が良いかもしれません。
Line 77: Line 86:
Pythonのコード補完などがそれなりに使えるようになり、GAE用のテンプレートも用意されているので大変便利です。 Pythonのコード補完などがそれなりに使えるようになり、GAE用のテンプレートも用意されているので大変便利です。
-Eclipseへのインストールは「Help」から「Install New SoftWare」を選び、URLにPydevの配布場所を入力します。このURLは変更される場合もあり得るので、上記PydevのサイトでEclipse plugin用のURLを確認してください。この記事執筆段階では「http://pydev.org/updates/」となっています。+Eclipseへのインストールは「Help」から「Install New Software」を選び、URLにPydevの配布場所を入力します。このURLは変更される場合もあり得るので、上記PydevのサイトでEclipse plugin用のURLを確認してください。この記事執筆段階では「http://pydev.org/updates/」となっています。
&ref(pydevInstall.png,mw:480,mh:360); &ref(pydevInstall.png,mw:480,mh:360);
Line 112: Line 121:
これらの設定は後で「Project」の「Properties」からでも変更することが出来ます。 これらの設定は後で「Project」の「Properties」からでも変更することが出来ます。
-最後にapplication idとテンプレートを指定します。application idはアプリケーションを識別するIDで、Googleのサーバーで公開する場合には後から変えることは出来ません。今回はテスト用なので適当でもかまいませんが、公開するアプリの場合はわかりやすくて一意になるような名前をつけましょう。+最後にapplication idとテンプレートを指定します。application idはアプリケーションを識別するIDで、Googleのサーバーで公開した場合には後から変えることは出来ません。今回はテスト用なので適当でもかまいませんが、公開するアプリの場合はわかりやすくて一意になるような名前をつけましょう。
テンプレートはHello Worldを指定します。 テンプレートはHello Worldを指定します。
Line 122: Line 131:
&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);
Line 136: Line 145:
ブラウザで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です。この部分は将来的にpython3などが登場する可能性があり、そのような状況を見越してpython27とバージョンを明示的に指定しておくことも出来ます。実際に公開するアプリの場合は、その方が良いかも知れません。ただし、python27を指定する場合はthreadsafeというパラメータをapp.yamlで指定する必要があります。 
 + 
 + threadsafe: [true | false] 
 + 
 +trueだとリクエストが同時に処理され、falseだとシリアルに処理されます。通常は処理を速くするためにtrueにして必要なリソースの部分に排他をかけます。 
 + 
 +api_versionはGAEのAPIのバージョンです。現在は1しか無いようですので1にしておきましょう。Python3対応で2になりそうですが分かりません。 
 + 
 +handlersはアクセスしてきたURLをどのスクリプトで処理するかを表しています。ここではルート以下全てのアクセスをhelloworld.pyで処理するようにしています。 
 + 
 +この例はかなり単純ですが、これ以外にもスレッドの管理方法や静的ファイルの紐付けなどをapp.yamlで行います。GAEで最初に躓きやすい場所なので、簡単な例でしっかり使い方を覚えておきましょう。開発中にまったく実行すらされなくなった、という場合は大抵app.yamlに間違いがあります。 
 +また、GAE Launcherのログボタンを押すと、エラーメッセージなどが表示されるので、何かおかしいときはそこで原因が分かる場合もあります。わからない事もあります。ちなみにログは何かの不具合か最初ウインドウが真っ白に見えるかも知れませんが、少しスクロールすると表示されます。 
 + 
 +つぎにhelloworld.pyですが、こちらは簡単です。 
 + 
 + print 'Content-Type: text/plain' 
 + print '' 
 + print 'Hello, world!' 
 + 
 +1行目はヘッダでContent-Typeにtextを指定、2行目は改行、3行目は文字出力です。 
 + 
 +以上がHello Worldプロジェクトの内容です。実際の開発ではフレームワークなどを使うのでもう少し複雑になりますが、GAEの開発の概要は理解できると思います。
 +もちろん、これらのファイルをEclipse以外のテキストエディタで作成し、GAEのLauncherに登録しても実行することが出来ます。
-準備中です。+次「[[Google App Engine for Python その2]]」でGAEでデータを保存する例を紹介します。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3499, today: 1, yesterday: 2
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF