【Google Developer Day2010】「Android でリアルタイムゲームを開発する方法: リベンジ」
スピーカーはクリス プルエット様です。
以下メモですが、ちょっと途中抜けているところ大分あるはずなので、参考程度にどうぞ。
完全に守備範囲外なため、多少は直しましたが、間違っていても気付かなかったりします。
おかしな点など有りましたら、ご連絡お願いいたします!
ワンダのレプリカ島開発者
- 端末が増えると、それだけの対応がいるのでは?
→端末の種類は沢山あるが、全ての端末が綺麗に2つの世代に分けることができる
第一世代
- 400mhz
- 60hzになると多少きついが…
- 3D描写がきついというわけではない
全てopenGLUSで3D描写している
新しい端末ほど凄い
第2世代
- 計算が早い OpenGL ES 2.0に対応している
- 2.0になると、シェーダという物を利用して、画面をプログラミングすることができる
- 3D力が高い。 ただし、3000hz(?)を超えられない端末も多い。
- ピクセル全てに書き込むのはおそくなってしまう。全て30hzになってしまうような端末もある。
端末の特徴
で割り当てればいいため、(ボタンの有無などのデバイスの形態にとらわれず、)全ての機種に対応出来るとも言える。
30hzで表示できないとゲームとしての感覚が失われるようなものしか出来ない
→つまり、30ms内に毎フレーム書く必要がある。
LODの価値
パフォーマンスを高める方法
- 必ずVBOを利用
- メインメモリに保存するかvram(VBO)に保存することにする。 VBOを使うと3割くらい早い
- GLはステート変更は時間がかかるのが使用
- メインメモリに保存するかvram(VBO)に保存することにする。 VBOを使うと3割くらい早い
- 浮動小数点の頂点を利用
- fixpointの方が遅い
- テクスチャコンプレッションならETC1
- これならあまり端末に関して考えなくていい
- 2DならOpenGLのdraw_textureエクステンション
- 30ヘルツであそべるようにプランニング
- 第一世代端末から第二世代端末までランタイムでスケール
- GL_EXTENTIONsは役立つ
- 第二世代のみの端末用ゲームなら、GLE2.0を利用
- 最初から2.0にしておいたほうが早い
ライブラリの中のクラスGLsurfaceVoew
-
- 自分で書かなくてもいい程度に勝手にやってくれる
操作システム設定は必要
- 端末が多い、人によって好みが違う、人の好みも変わってくる
- 予め設定画面をイメージして作っておかないと後で辛くなるかも
Javaでゲーム開発をした。
- JavaでHTTPでサーバにアクセスは簡単。3行ぐらい
- プレイヤーが死ぬたびに、サーバーにデータを送る
- そのデータを収集して、表示。 (実際のダンジョンと重ね会わせて表示する)
- すると、どこがユーザーにとって一番難しいのかが分かる。
webサーバーを起動した状態で開発すると、値を変えたときに表示がすぐ変わる様になるので便利!
- アンドロイドユーザの興味があるのはゲーム
- インプレッションが一番高いのはゲームカテゴリ
- スクショが紹介ページにしっかりある・Lite版があるというのが、ヒット作の共通点
初心者で、知識0でしたが、大変わかり易く、聞いていて面白かったです!(セッションは日本語)