2010年10月2日土曜日

Android版「Army & Maiden」その3 ソースの切り分け

 「Army & Maiden」ですが、PCとAndroidのコンパチだけでなく、今後の開発の効率化のために、ソースコードの切り分けを行っていました。

 以下、複数のプロジェクトに分けた、プログラムの構成図です。括弧内は、ソースコードの分量です。ソースコードの比率が分かると思います(まだファイルの整理前なので、何割か変わる可能性がありますが)。

●CroCroWrp(242 KB)
  ┣●CroCroWrpPc(94.2 KB)
  ┃  ┣━━●SimWarPc(2.88 KB)
  ┣●SimWar(318 KB)
  ┃  ┣━━●SimWarAnd(1.15 KB)
  ┗●CroCroWrpAnd(207 KB)

 それぞれ、ビルドに親プロジェクトを含めることで、プロジェクトを作成します。

 以下、それぞれのプロジェクトの解説です。



●CroCroWrp

 PC、Androidコンパチにするために、環境依存部分を全てラップクラスに入れて、ゲーム開発の基本システムを構成したプロジェクトです。

 以下のような内容のクラスが入っています。

Android版「Army & Maiden」その2 高速化

各種仕事と平行作業で開発しているAndroid版の「Army & Maiden」ですが、ようやくエミュレーターと実機で、普通にプレイできる速度で動くようになりました。

「Army & Maiden」は、PCとAndroidのコンパチで動くライブラリを作りながら開発しています。

このライブラリは既に完成しています。そして、同じゲームのプログラムで、PCとAndroidコンパチでゲームが動いています。

データも完全に互換性を保っています。データに関しては、Zipで固めたデータを、Androidアプリの「res/raw」フォルダに放り込むだけで使えるようになっています。

このように、けっこう面白いライブラリ群ができています。



さて、このようなライブラリができたわけですが、全てが順調というわけではありません。

PCとAndroidでは基本スペックが違います。なので、低スペックのAndroid端末でも動くように、ゲームのルーチンなどを高速化する改良が必要になります。

PCとAndroidの主な違いは、CPUとメモリーとJVM(Java仮想マシン)です。

このうち、メモリーに関しては、既にPC版で16MB以内で動作するように作り込んでいます。なので残りはCPUと対VM用の改良ということになります。

というわけで、ここ数日間取り組んだ、対Androidアプリ用の高速化のまとめを書いておこうと思います。