2011年9月2日金曜日

開発の内情

ゲームを遊んでる人には見えない裏側の話をちょっと。

Paidia gamesのゲーム(いや、実際にはゲーム以外もほとんどのソフト)はJavaとSwing/JFCで動いています。いったんこれでPC上で動くものを作ってしまってからターゲットマシンに移植するという手順を取っています。
これは、なんだかんだ言ってAndroidって書き換えてから動かすまでの時間(ターンアラウンドタイム、といいます)が結構長いので、ゲーム作ってると待ってる時間が長くなってくるのを避けるためです。Javaはうまく作ればターンアラウンドタイムほぼ無く使えますから。
Javaでの開発は普段はNetBeansIDEで行います。

ただ、当然ながらSwing/JFCで作ったソフトはAndroidでは直接動きませんのであらかじめ細工しておきます。ゲームのルールに当たる部分(Model)はそのまま使い回せるようにして、見かけ(View)だけをSwing/JFCとAndroidで変えるという手順を使ってます。
これで最小限の手間でゲームを作れますね。
ちなみに、レベルデザインが必要なゲームの場合、レベルデザイン用のツールを作ったりもします。これなんかは露骨にJavaとSwing/JFCですね。
Javaと無関係な環境(例えばObjective-Cを使っているiOSやC#を使っているWindowsPhone7とか)に移植するときにはModelごと移植します。が、これくらい設計が別れてると言語の違いは大して無いですね。パフォーマンスは端末によって結構違いますが、ま、これはAndroidでもおなじなので。

と、今日は過去のゲームの一斉リファクタリングをしていたのでした。数多いなぁ。こんなに作ってたのか。

0 件のコメント:

コメントを投稿