現在、拙作iアプリ「キングオブアース」(King Of Earth)のAndroidへの移植を実施しています。
昨晩で2日目。作業的には半日分ほど実施。とりあえず、画面が出るところまでは行きました。
その移植の仕様がちょっと面白いので解説をします。
まず、ベースは「Army & Maiden」用に作った「CroCroWrp」です。
□Army & Maiden その上に、iアプリ・エミュレーター・オブジェエクトを作っています。そのため、PC、Android、Aplet上で実行可能なJavaゲーム仮想環境になっています。
Android上だけでなく、PCアプリとしても実行できるのでデバッグが高速です。ADKの作成、AVDへの転送という時間が必要ないですので。
また、UIに関しては、仮想キーを用意して、それで操作する予定です。
エミュレートの仕方としては、「com.nttdocomo.ui.〜」のクラスを自前で作り、裏で処理を実装して動かします。
この方式は、昔「Princess Forces」の体験版を作る時に実装した経験があるので、信頼がある方法です。
□Princess Forces Windows向け体験版 ただ、昔の奴はiDKのバージョンが低すぎるので、また1から作り直すことにしました。
だいたい、実作業半日ぐらいで画面が出たので、思ったより早かったなあという感じです。
ただ、完全エミュレートすると時間が掛かるので、いくつか端折っています。
というわけで端折りポイントは以下の通り。
★ スクラッチパッド関係の命令を差し替え。
基本的にファイル周りです。
iアプリは、スクラッチパッドという独自の保存領域があります。「キングオブアース」では、そこに自前のファイルシステムを作ってデータを管理していました。
しかし、それをエミュレートするのは時間の無駄なので、「CroCroErp」の仮想ファイル環境に差し替えました。
自分でファイルシステムを作るのは、よい勉強でしたが、それを維持管理する必要はないですので。
このファイルシステムは、iアプリが120×120ドットの頃に作ったシミュレーションRPG「Princess Forces」の時のものです。
ファイルの入出力だけでなく、自前のデフラグ機能もあったりと、なかなか便利なものでした。
まあ、過去の遺物になりました。
あと、音は、mldファイルからmidiファイルに差し替えないといけないなあと思っています。
さて、実はこの「キングオブアース」は、将来的に移植をする前提で設計をしていました。
なので、必要最小限しか環境依存の機能(iアプリのクラスやメソッド)を使わずに、プログラムが書かれています。
そのため、移植しなければならない命令は最小限のはずです。
でもまあ、色々と問題は出てくるのだろうなと思います。
「キングオブアース」については、以下を参考にしてください。
□RTSのアルゴリズム 建物が建設でき、その工場から軍団がぞくぞくと出てくるリアルタイムのストラテジーゲームです。
緻密な戦略が主眼ではなく、数百体のユニットで、敵を蹂躙するのが目的の「蹂躙ゲー」です。画面いっぱいの爆撃機で、敵の都市を大破壊したりする、そんなゲームです。
オープンドアの「RPG大集合」で出していました。
個人的に気に入っている作品なのですが、iアプリから離れて長らく遊べていなかったので、よい機会かなあと思います。
というわけで、移植が進んだら、また話を書こうと思います。