calendar

S M T W T F S
   1234
567891011
12131415161718
19202122232425
2627282930  
<< November 2017 >>

categories

archives

AdobeAIRでスマホ開発して苦労した件

0
    今回「狭くて小さいドルアーガの塔」をFlashCC/AdobeAIRで開発し、Web/iOS/Android向けに公開しました。

    AIRで開発するにあたって、技術的な部分に関していろいろ苦労した点などがあったので、まとめてみました。
    これからAIRでスマホアプリ作ってみたいと思われている方の参考になれば幸いです。
    とりあえず結論から言うと、AIRはブラウザゲームを作るのにはいいと思いますが、スマホ向けではお勧めしません。

    ■自分の技術レベルについて
    自分は、AIRは昔からブラウザゲームでコンテンツを作り慣れていて、AIRだったらDB連携でもオンラインゲームでも一通り作れます。UnityややCocos2DやSwiftは、初心者向けの本を一通りやった程度で、コンテンツを作って公開したことはありません。基本的にすべて独学なので知識に偏りがあるかと思いますが、以下この程度のレベルでAIRと他開発ツールを比べてみた所感になります。

    ■AIRを使ってよかったと思う点
    AIRはActionScript3.0を使い作成することになりますが、1ソースでWeb(Flash)、iOS、Androidの全てにパブリッシュできることが良い点です。Unityでも同様のことができると思いますが、基本的にビルドがFlash内ですべて完結できるため、より手間は少なく済むと思われます。

    ■スマホ開発となるとFlashの大きなアドバンテージであるMovieClipが使いにくい
    Flashで作る場合のメリットとして、MovieClipなどのベクターアニメーションを描きながら、コーディングも同時にできるという点があります。これは1人ですべて作成している個人クリエーターとして、素材作成とコーディングがすべて1つのIDEで行える点は、とても楽です。

    ところが・・・スマホ開発となると、この恩恵は受けにくくなります。

    なぜかというと、MovieClipはCPUレンダリングで動かす必要があるため、スマホで動作させるとカクカクになったり本体が熱くなったりてしまいます。それを解決するには、StarlingやAway3DといったGPUのライブラリを使うことになりますが、その場合MovieClipをそのまま表示できず、スプライトシートやアトラス化して使う必要がある(StarlingのMovieClipへ置き換える必要がある)ので、そう考えると、他の開発ツール使うのと結局やることがあまり変わらなくなります。

    ただ、flash.display.MovieClipをStarlingのスプライトシート化するクラスを自作したりすれば楽できるとは思います。ちなみに自分は、ドット絵を作成するエディタを別途作ったので、そのデータを元に動的にTextureAtlasを作成するという力技で対応しました。というわけでMovieClipは、タイトルとかのメニュー作成でしか使いませんでした。

    ■AIRを使って苦労する点
    大きく分けて3つあります。

    ・AIR開発だと、ネットに日本語の情報がほとんどない
    AIRはネット上に日本語の情報がほとんどありません。本屋に行っても書籍は少ないです。海外のフォーラムは未だに活発なのですが、当然質問も英語で書く必要があります。ある程度自力で問題点を解決していく必要があります。

    ・アプリ内課金とかは、基本有料のANEを購入する必要ある。しかも英語
    GamingSDKというiOSのアプリ内課金を実現するための無償ANEがAdobe公式で公開されていますが、なんとか使いたかったのですが、リンクをクリックしてもなんか同じページを順番にグルグルまわるだけでダウンロードできませんでした。結局、milkmangamesという有償のANEを購入し使うことにしました。milkmangamesはサポートなど対応いいのですが、こちらも英語になります。ANEはネイティブ機能にアクセスするための有力な手段ではあるのですが、自分で作成するには敷居が高いし、公開されているものも少なく選択肢が限られてしまうというのが現状。

    ・AIR開発だと、Nendなどの国内の広告開発キットが完備されていない
    実はこれがAIRで開発する一番大きなデメリットだったりします。広告の開発キットがほぼ無い。AIRで広告を表示させたい場合、WebViewという部分的にブラウザ表示するような機能を使う事になりますが、これは細かいハンドリングができず、自分がやりたかったインタースティシャルとか動画アワード広告とかに対応していません。しかもWebViewはAndroidでGPU表示すると画面がブラックアウトするという問題が発生しますが、Nendに問い合わせてもちゃんとした回答がかえってきません。AIRは枯れた技術として見放されているのでしょうね。Adobeサポートに問い合わせてもバグレポート出しといてください、と言われて終わり。

    ■Adobeのやる気が感じられない
    最終的な結論としてはコレ。広告にしてもGPU対策にしても、色々打つ手はあると思うんですが、全くそういった動きがない。WebViewのバグも改善される様子もない。公式のサポートもいまいち。Adobeはモバイル関係は苦労したのか、勢いが感じられないっすねえ。

    以上、最後は愚痴っぽくなってしまいました。
    長らくFlash使ってきましたが、最近はまたUnity5の本を読んでます。
    ブログのタイトルは「flashゲーム作成記」なんですけどこれからどうしたらいいのでしょう・・・

    JUGEMテーマ:コンピュータ



    コメント
    管理者の承認待ちコメントです。
    • -
    • 2016/06/06 11:55 PM
    コメントする








       
    この記事のトラックバックURL
    トラックバック