2008年01月31日

takushimaAndroidでモバイルMMO?

こんにちは。

今回は趣向を変えてモバイルに挑戦しました。今さらAndroidをやる回です。本当はHALLOHALLOの負荷テストについて書くつもりでしたが、難航しているのでそちらはまた今度。

さて、当研究所では注目して以来、Three Ringsのフレームワークを使っています。時折、仲間内でその移植性が話題になった際に、AndroidならJ2SE風だから容易に動作するのではない かという憶測がありました。本当のところはどうなのでしょう?AndroidのJava度が気になります。

AndroidはJava実行環境として見ると、JVMがレジスタベースで独自のバイトコードを用いるらしいDalvik、クラスライブラリは ApacheのHarmonyとはいえフルセットでない、など確かに特殊です。AWTやSwingはありません。ま、Three Ringsフレームワークの移植のためには、java.nioパッケージが肝なのでそこさえ何とか出来ればよいのです。その点についてはAndroidは 要求を満たしていそうです。少なくとも表面上は。

ところがやってみるとSocketChannelが案の定、未実装でした。普通のSocketは実装されているのでそちらを使うように改変しなくてはなり ません。しかし、作業らしい作業が必要だったのはそれぐらいで、後はもっぱら未実装だけれども不要なクラスを参照しないように、テキトーにコメントアウト すれば完了でした。

結果はこちら。

screenshot.png

せっかくなので以前の円を移動させるサンプルを使いたかったのですが、ログオンするまでで力尽きたのでやる気のないHello Worldのままになっています。左下のサーバのログにSession initiatedとあるのは成功の証です。意外にすんなりやれました。環境の違いもそれほど気にならず、ありきたりのJava Projectのように扱えました。移植に要した作業時間は半日ぐらいでしょうか。

スクリーンショットだけだと信用されないかもしれないので、フレームワークへのパッチも置いておきます。

ここまでやっておいてなんですが、結局はAndroidの先行きがまだ見えないということと、Socketをサクサク使える日は果たしてやってくるのかということがネックですよね。

次の回は推測航法(dead reckoning)をやってみようと考えてます。

それではまた来週。

#ん、そろそろiPhone SDKの時期?

Leave a Comment

Trackbacked

trackback url for this entry: http://www.pyramid-inc.net/lab/archives/99/trackback