スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Android enchant.js 各端末でのブラウザのパフォーマンス

昨年から暇を見つけてはAndroidでゲームアプリを作っている。

学生時代から社会人になってずっとシステムを作っていたのだが、JavaやC#などをメインに使った業務システムの開発が大半であり、ゲームの作成とは無縁の技術ばかり使っていた。

スキルでいうと、サーバの構築、Webの設定からWebサイトの立ち上げまで一人で出来るくらい。

いつかはゲームアプリを作ってみたいと思っていたが、そもそも持っている技術が畑違いだと思っていたため、躊躇していたかんじ。

そこで出会ったのが「enchant.js」
これはJavaScriptを使ってゲームを作るというエンジン。

日経ソフトウェアに「30分で作るゲーム」とかそんな感じの記事が書いてあった。

作ってみると本当に簡単に作れる。
もちろん凝ったものを作るとなると作りこみが必要になってくるが、得意な技術の一つがJavaScriptだったため、
自分にとってはとてもうれしいものだった。


そこで、これを利用してAndroidでのゲームアプリが作れないか考えてみた。

・AndroidにはWebViewオブジェクトがあり、これを利用するとアプリ内でHTMLページの表示が可能となる。
 もちろんローカル(assetsフォルダも)に保存しているHTMLページの表示も可。
・WebViewにはJavaScriptとJavaを相互に通信する仕組みがある。
 簡単にJavaScriptからJavaのメソッドが利用できたり、JavaからJavaScriptを制御することも可能。

整理してみたところ
・DB処理(SQLite)やバックグランド処理、ネット通信や重い処理はJava側にて実装
・画面をHTMLとJavaScript、enchant.jsで構築
・JavaからJavaScriptへ連携するデータはJavaScriptで使いやすいJSON形式にする

上記構成で既に数本のゲームを開発してきた。
ブログの右側にあります。

もちろんプロが作ったゲームなんかには足元にも及ばない出来だが、
スマホ用の簡単なゲームアプリだし、個人開発としては十分ではないかと・・・


■enchant.js 各端末でのブラウザのパフォーマンス

前置きが長くなったが、タイトルについて

Androidのアプリ開発で一番問題になるのが「端末の互換性」
Androidはその特性上、非常に沢山の端末がリリースされており、どの端末にもいろんな癖がある。

大手の会社などでは全ての端末が準備されており、アプリ開発時は全ての端末で動作確認が行われている。


しかし、自分みたいな個人だと、どうしても全ての端末での稼動確認が出来ない。
今現在は嫁の含めて5台ほどしか無い。

こればかりはしょうがないと思い、もってる機種全てで動作確認を行うのだが、やはりレビューには「起動しない」「強制終了する」なんて投稿がある。

そこで、前回の記事にも書いたのだが、とうとうタブレット「Kindle」を購入したわけです。

そこで、Kindleにさっそく自分のアプリをインストールし、動作確認を行ったところ非常に残念な結果になってしまいました。

■ブラウザのパフォーマンスについて
現在メインで使っているのは「Garaxy S2 LTE」
OSはたしか2.3だったかな?
スペックもいいほうだと思う。

PCでもスマホでも同じなのだが、ブラウザのJavaScriptのパフォーマンスは、その端末のスペックではなく、そのブラウザが搭載しているJavaScriptエンジンのスペックが非常に大きく影響する。
(もちろんPCのスペックも影響するが・・・)

WebViewのJavaScriptエンジンはどうなるかはちょっとわからないが、
Garaxy内でWebView経由でゲームWebページを開いてみると、まー滑らかではないがそこそこenchant.jsは問題なく動いている感じ。

ちょっと前の嫁のスマホ(メディウスだったかな?)で実行すると、ちょっとカクカクが多い。
これじゃストレスだが、動かないわけではない。

それでいざKindleで試してみたら。
糞みたいにenchant.jsがカクカクカクカクしている。
もー見れたもんじゃない。
ちな15fpsくらいで、キャラが10個ほど右往左往する。

Garaxyの1000分の1くらいしかスペックないんじゃないか?ってくらい。

■まとめ

今回の結果から、enchant.jsでのゲーム開発についてはすこしリスクが大きいかなと。

簡単にゲームはつくれるのだが、端末によってゲームできない。
やはり、大勢のユーザの中にはこんな感じでゲームできない人がいたと思う。

一番ヒットしたゲームで総ダウンロード数7万Overいったが、アクティブユーザは1万弱。
アンインストールしているユーザは沢山いる。

あまり、動きが少ないゲームならenchant.jsで大丈夫だろうが、そもそも起動できないとかならちょっと使うことは今後難しいかな。

先月から、この問題を同解決しようか考えた結果、別のゲームエンジンを使うことにした。
また、ブラウザのパフォーマンスが、端末間で大きな差があるためScriptエンジン系はちょっと。

ということで今後は「AndEngine」を使っていくことにした。
ゲームアプリのロジック的な考え方はenchant.jsで身に付けたためAndEngineについても割とすんなり理解できそう。


ためしにいろいろ作ってみているのだが、すげーヌルヌル動くw
さすがネイティブ側だけあるわw
スポンサーサイト

コメントの投稿

非公開コメント

おすすめアプリ
カテゴリ
最新記事
リンク
アクセスカウンター
アクセス解析
imobile
i-mobile
i-mobile
i-mobile
i-mobile
i-mobile
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Amazon
Androidお勧め参考書
EC studio
商品
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。