この記事のURL

http://www.dango-itimi.com/blog/archives/2014/001219.html


FLASH GRAPHIC tips Haxe 産 ゲームZombieDelivery 公開 & OpenFL 開発メモ

Haxe と Flash Professional CC を利用して開発を行ったゲーム ZombieDelivery を公開しました。

http://www.deeg-entertainment.jp/zombie_delivery/

内容はとてもシンプルな仕分け系ゲームとなっています。Web(Flash, HTML5) / Android / iOS で遊べます。

それぞれのプラットフォームへは、以下の機構を利用して出力しています。

・Flash(Haxe)
・HTML5 Canvas(Haxe & CreateJS)
・Android(Haxe & OpenFL)
・iOS(Haxe & Adobe AIR)

入り口のみ異なるだけの、ゲームロジックはワンソースという、Haxe の変態機能もとい特性をふんだんに活かした内容となっています。

Adobe AIR や OpenFL はクロスプラットフォーム向けアプリケーションの出力が可能なのに、何故 色々な出力機構を選択しているのか、の理由としては以下が挙げられます。

・Flash
Flash コンテンツの再現が 100% 可能な Haxe のデフォルト機能である swf 出力機構を選択

・HTML5
OpenFL は HTML5 ターゲット出力が可能だが swf 内 MovieClip の 1フレーム目までしか表示できないため、Flash Professional CC の HTML5 Canvas ドキュメント出力 + CreateJS を選択

・Android
Adobe AIR の Android アプリではパフォーマンスが悪いため OpenFL を選択

・iOS
Windows でも ipa ファイルを作成可能&パフォーマンスが良い Adobe AIR を選択

開発メモ

twitter 等に記述したメモ書きを羅列していきます。

OpenFL

OpenFL は Android 2.3 端末以降が対象。

swf アニメーション再現度は 100% ではないため、規模が大きいプロジェクトでは 使用 MovieClip を一覧できる OpenFL アプリビューアを別途作成するとよさそう。

Flash Professional CC 内でマスクを設定した MovieClip を生成すると、Android 2.3 端末では非常にパフォーマンスが落ちるため なるべく利用は避ける必要あり。

OpenFL 2.0.0 では flash ターゲット出力にて openfl-bitfive タグ指定を行うとエラーが発生する。これを避けるために<haxelib name="openfl-bitfive" if=html5" /> と条件指定を行う必要あり。

OpenFL 2.0.0 では flash.* パッケージが openfl.* パッケージに移動されたが、いままでどおり flash.* パッケージ も利用可能。継続してクロスプラットフォームプログラミングを行うことができる。

OpenFL native 出力では DOMAIN という定数名を利用しているとコンパイルエラーが発生する。その他 C言語での予約語を変数名やパッケージ名に利用していると native 出力時にコンパイルエラーが発生する。

Haxe @:enum 変数に設定された値を利用する際、ただの cast ではなくきちんと cast() でくくってやらないと、出力ターゲットによっては値が正常に取得できないらしき動作を確認。

OpenFL での AdMob 表示は以下の方が公開されている拡張機能を利用
https://github.com/mkorman9/admob-openfl

Android ターゲットの OpenFL では、スプラッシュスクリーンはスクリプト側で表示制御が可能
http://www.openfl.org/forums/#!/general:preloader-screen-on-android

OpenFL + Nape + Neko 問題の対処策。
https://github.com/openfl/openfl/issues/158

OpenFL では画像が真っ黒化する不具合あり、条件は不明、ZombieDelivery でも端末によって真っ黒化を確認
http://www.openfl.org/forums/#!/bugs:android-black-random-black

その他 開発メモ

Adobe AIR iOS アプリ ApplicationVerificationFailed エラー対処策その1。Development 用 プロビジョニングファイルを用いたアプリを先に iPhone にインストールする事で、Distribution 用 プロビジョニングファイルを用いたアプリでエラーが発生しなくなる。

Google Play へベータ版の apk ファイルをアップロードして表示を確認したところ、対象端末をAndroid 2.3以降としているのに Android要件 1.6 と表示されてしまう。現状では仕様の模様。http://qiita.com/kagerou_ts/items/44fca04a4eda5f653bd7

Google Play のアルファ・ベータ版のテストは、Google+ のサークル機能を利用して第三者に配信できるためとても便利。

[ FLASH ] [ GRAPHIC ] [ tips ] 投稿者 siratama : 2014年06月05日 19:00

トラックバック

http://www.dango-itimi.com/blog/mt-tb.cgi/1179

コメント

以下コメントを書き込むだけでは、管理人には通知が行われません。通知を行いたい場合、管理人の書き込みに「返信」を押してコメントをしていただくか、あるいは Google+, Twitter へご連絡ください。




[EDIT]