とりあえずスプライトエンジンだけ

とりあえずスプライトエンジンをFlashで記述。

クライアントとしてjavascriptFlashにコマンドを投げる形。


これならHTML5未対応だがシェアの高い、IE6〜8に対応することもできるし、HTML5への以降もすんなりできる。ロジックはJavascriptで書いているからだ。

もちろん、ActionScriptが得意な人はFlashだけでいいけどね。それでもOpenSocialなアプリはJavascript連携を多用しないといけないのでインターフェースが遅いFlashよりJavascriptから高速に動く可能性もある。

んで、おいらのことなのでJavascript直接書くなんてこともなく、GWTで生成する。Flashへのアクセスはすべてライブラリという形でラップしているのですべてJavaのコードだけでOpenSocialアプリが作れるようになった。


今まではHTML5ベースだったけど、これらを対応しているアプリは優秀であってもIEがかなり足を引っ張る形だった。IEで動かすためにCanvasエミュレーションをするものをいろいろ試したがどれもゲーム用途としてはだめだった。静止画用途としてならFlashCanvas PROマジオススメ。

というわけでクロスブラウザとしてFlashによるレンダリングとすることにした。結果はかなり良好。

もっとも、例によってJavascriptとの連携部分でブラウザ依存があって最初はFirefoxでしか動かなかった。続いてChromeで動くようになり、最後にIEで動くようになった。

動作確認したブラウザは以下の3つ。

HTML5対応するのも余裕だし(Canvasで同様の描画ライブラリを用意するだけ)、コードをJavaでかいているおかげでAndroid対応もそれようのopenGL描画ライブラリ作って呼ぶだけと超簡単なので、バランス的に結構よくなったと思う。

もちろん、Javaで書いているということはJavaアプリケーションやJavaアプレットも余裕で動きます。GWTでの開発効率はJavaSEにくらべて悪いので、Swingベースのアプリケーションで開発しておいて、GWTへ移植するといった方法でさくさく開発可能。


連休つぶしてしまったが、おおむねやりたいことができたかな。Java言語のみでクロスプラットフォームという考え方はわるくはあるまい。

id:nowokay氏とかid:Florian氏に「なんでそんなまわりくどいことやってんのー?」とか笑われそうだけど、
(゚ε゚)キニシナイ!!


昔と違って複数の言語覚えるのが難しい時代なんだよね。あっという間に言語自体の拡張はされるし、APIの命令はどんどん増えていくし、世の中のオープンソースなライブラリも増えていくし、トレンドもころころ変わるし。広く深く覚えるのが難しい時代すぎるなぁと。おいらは言語としてはほとんどJavaだけ追っている状況だけれども、JavaSE/EEとライブラリを追うだけで精一杯。おそらく.NET方面も同じだろう。ちょっと前まで.NET1.1で作って…とか言ってた気がするが、もはや当時とは別物。