読者です 読者をやめる 読者になる 読者になる

【Google Developer Day2010】「Android でリアルタイムゲームを開発する方法: リベンジ」

スピーカーはクリス プルエット様です。

以下メモですが、ちょっと途中抜けているところ大分あるはずなので、参考程度にどうぞ。
完全に守備範囲外なため、多少は直しましたが、間違っていても気付かなかったりします。
おかしな点など有りましたら、ご連絡お願いいたします!




ワンダのレプリカ島開発者

  • 端末が増えると、それだけの対応がいるのでは?

→端末の種類は沢山あるが、全ての端末が綺麗に2つの世代に分けることができる

第一世代
  • 400mhz
    • 60hzになると多少きついが…
    • 3D描写がきついというわけではない

全てopenGLUSで3D描写している


新しい端末ほど凄い

第2世代
  • 計算が早い OpenGL ES 2.0に対応している
    • 2.0になると、シェーダという物を利用して、画面をプログラミングすることができる
  • 3D力が高い。 ただし、3000hz(?)を超えられない端末も多い。
    • ピクセル全てに書き込むのはおそくなってしまう。全て30hzになってしまうような端末もある。

端末の特徴

 で割り当てればいいため、(ボタンの有無などのデバイスの形態にとらわれず、)全ての機種に対応出来るとも言える。

  • OpenGL
    • テクスチャフォーマット:ATITC? PVRTC? ETC1?
    • OpenGLバージョン
    • GL_EXTENSIONS?


30hzで表示できないとゲームとしての感覚が失われるようなものしか出来ない
→つまり、30ms内に毎フレーム書く必要がある。

LODの価値

パフォーマンスを高める方法

  • 必ずVBOを利用
    • インメモリに保存するかvram(VBO)に保存することにする。 VBOを使うと3割くらい早い
      • GLはステート変更は時間がかかるのが使用
  • 浮動小数点の頂点を利用
    • fixpointの方が遅い
  • テクスチャコンプレッションならETC1
    • これならあまり端末に関して考えなくていい
  • 2DならOpenGLのdraw_textureエクステンション
    • 30ヘルツであそべるようにプランニング
  • 第一世代端末から第二世代端末までランタイムでスケール
    • GL_EXTENTIONsは役立つ
  • 第二世代のみの端末用ゲームなら、GLE2.0を利用
    • 最初から2.0にしておいたほうが早い

 

ライブラリの中のクラスGLsurfaceVoew

    • 自分で書かなくてもいい程度に勝手にやってくれる

操作システム設定は必要

  • 端末が多い、人によって好みが違う、人の好みも変わってくる
    • 予め設定画面をイメージして作っておかないと後で辛くなるかも

Javaでゲーム開発をした。

  • JavaでHTTPでサーバにアクセスは簡単。3行ぐらい
  • プレイヤーが死ぬたびに、サーバーにデータを送る
    • そのデータを収集して、表示。 (実際のダンジョンと重ね会わせて表示する)
    • すると、どこがユーザーにとって一番難しいのかが分かる。

webサーバーを起動した状態で開発すると、値を変えたときに表示がすぐ変わる様になるので便利!
 

  • アンドロイドユーザの興味があるのはゲーム
  • インプレッションが一番高いのはゲームカテゴリ
    • スクショが紹介ページにしっかりある・Lite版があるというのが、ヒット作の共通点


初心者で、知識0でしたが、大変わかり易く、聞いていて面白かったです!(セッションは日本語)