« ワープステーション江戸など-茨城観光 | トップページ | 謎解き古代文明 »

スマホでゲーム

いくつか「スマホでゲーム」関連の話を。

まずは、自分自身の話。

当「研究所」は、もともとオリジナルバカFlashゲームを発表するのを目的に開設されたものです。
Blog記事はあくまで穴埋めで、ゲームを発表していくことこそが本分だと任じています。

しかし、2月に「バカスキー」をUPして以来、ゲームが出てない。どういうことだ。
(まあ、特にゲームについてコメントされたことも無いので、気にしているのは自分だけのような気もしますが…)

実は…
以前もちょっと書きましたが、現在、ちょっとAndroidの方に興味が出ていて、Android向けのアプリを作成中なのです。

Flashの知識で、Androidのゲームが作れてしまうんですね。
(正確にはiPhoneのゲームも作れますが…iPhoneの場合、実機で動かすにはお金がかかる。Androidなら、実機で動かすだけなら金はかからない。)

既に一本は、99%完成した状態です。
Flashで作っているので、マルチプラットフォームとしてPC向けにUPも可能なのですが…。
加速度センサーを使っているため、PCではちょっと楽しめないものになってしまって…

いずれマーケットにでも出そうかな…と思っていないことも無いのですが(まあ、出すとしてもフリーでしょうが)、登録にはお金もかかるし、段取りが面倒くさくて、ちょっと先送りになってます。

さらに惰性で、既に2作目も7割方完成しかけているという状況で…(見切り発車は、私の得意技)。
こちらは、PCでも遊べないことは無いので、これが完成したら一応こちらにもUPしようかなとも思ってます。
(とはいえ、やはりスマホでないと本来の遊び方はできないのだけど)

そんな感じで、「ゲームは出来ているが、アップは先送り」というのが現状です。

ところで、Android用にFlashアプリを作っていて感じたことですが…

PCで動かすより断然遅いのが、やっぱり辛いですね…。

フレームレートは、PCでは60fpsで作っていたところを、30~24fps位に落としてるのですが…。
それでも、PC上で調子に乗って飾りエフェクトなど出しまくると、Android実機では処理落ちします。
(FlashではAndroid用としては24fpsがデフォルトになっているみたいです)

Androidのnative言語はJAVAだという話を聞いていたので、JAVAの派生言語のようなActionScript3.0なら、ほとんどそれと変わらない速度を叩きだすだろうと考えていたのですが…甘かった。
ある参考書で、「Flashで作った場合はJAVAより明らかに遅くなる」という事が書いてあり、どうも、そういうことらしい。ガッカリ。

ただ、それで色々調べてみたところ、最近気づいたのが…
Air Android設定で、レンダリング設定を「CPU」→「GPU」にして、パブリッシュすると、ちょっと動作が速くなるような気がしました。
もう少し試してみないと確実なことは言えませんが、もしそれが正しければ、ちょっと希望が持てるかも。

まあ、Flashでゲームを作るなら、アクション系より、思考系の方が合っているのかな…。

-----

スマホが…なかんずくAndroidが「来ている」!

かつてのケータイ(フューチャーフォン)のソーシャルゲームが、スマホでも遊べるようになった…というようなCMを、最近よく見るようになりました。

スマホ(HTC)を持つ前は、自分のケータイを持っていなかったので、ケータイソーシャルゲームってほとんど遊んだことがなかったんですよね。

で、スマホでも遊べるようになった今、勉強のためにも遊んでみようと思い、某SNSでいくつか試してみましたのですが…。

ちょっとびっくりしたのが、4本ほど試してみたアプリが、すべて旧ケータイゲームほぼそのまんまの感じだったこと…。

「スマホで遊べるようになった」ということで、インターフェイスとか、スマホ用にもっと洗練されたのかと思っていたのですが…。

ボタン(というか、リンク)を押すと、URL移動で画面が切り替わる、もっさりした感じ。
ほとんどアニメーションなどなく、テキストのみで結果を表示するような。

スマホでゲームって言っても、主流はまだこんな感じなんですかね?

私は、これまでほとんどコンシューマ系のゲーム制作にしか携わったことがなく、ユーザーとしてもコンシューマやアーケードがメインだったので、ケータイゲームの世界の常識には疎いんです。
ちょっとカルチャーギャップを感じてしまいました。

まあ、スマホといっても、古い物から新しいものまであり、なるべく多くの層を掬おうとすると、ロースペックに寄る方が有利、というのはあるでしょうね。

あと、都市伝説的には、頻繁にURL移動して、パケットを使わせるような仕組みの方が、キャリアさんの受けが良い…という話を聞いたこともあったような(あくまで、都市伝説ですよ)。

しかし、これからは、Android2.2以降がメインになってきますよ、きっと、おそらく。

次々に、コンシューマライクなインターフェースのゲームも出てきて、古いタイプのものは駆逐されていくに違いない。
今こそ「イノベーション!※」。コンシューマ畑の人間が、ケータイ畑に打って出る時ではなかろうか!?

※ 「イノベーション」って、「もしドラ」のアニメで言ってたので、受け売りしました。意味は良くわかってません(笑)。

(2011.5.8)

|

« ワープステーション江戸など-茨城観光 | トップページ | 謎解き古代文明 »

Flash」カテゴリの記事

ゲーム」カテゴリの記事

スマートフォン」カテゴリの記事

コメント

> Androidのnative言語はJAVAだという話を聞いていたので、JAVAの派生言語のようなActionScript3.0なら、ほとんどそれと変わらない速度を叩きだすだろうと考えていたのですが
どうしてそう繋がるのかが激しく謎です。
「PC-8001のネイティブ環境はN-BASICだから派生言語のようなN66-BASICならそれほど変わらない速度を……」
と言ってるのと変わらないですよ。

実際は、ActionScriptを解釈して動作するプログラムがJavaで書かれている(GoogleがFlashの実装に熱心で、昔で言う"マシン語"で実装されているかもしれませんが)ので、Javaで直接書いたプログラムより遅くなるのは当然です。

もちろんPCで動作するFlashアプリとコンパイラを使って書いたアプリケーションにもかなりの動作速度の違いがあるのですが、最近のPCは性能が上がったのでその差を感じられなくなっているだけです。

投稿: 深井 | 2011年5月14日 (土) 01時36分

>どうしてそう繋がるのかが激しく謎です。
いやあ、もちろん、無知だったからです…。

ただ、言語的にはかなり似てますよね、ActionScript3.0を学んだ今、似ているJAVAのプログラムもけっこう読めるようになりました。

あと、PCではFlashでもかなりのスピードで動いてるので、Flashもけっこうやるもんだと思ってたんですよ。

逆に、EclipseでAndroidのプログラムを書いたら、Flashよりどれくらい早くなるんでしょうか?
試していないので判りません。

投稿: 適研所長 | 2011年5月14日 (土) 21時16分

> PCではFlashでもかなりのスピードで動いてるので

PCと携帯端末では、一度に使ってもいい電力が大幅に違います。
速い動作速度のCPUやらGPUは電気食いですよ。

> 逆に、EclipseでAndroidのプログラムを書いたら、Flashよりどれくらい早くなるんでしょうか?
> 試していないので判りません。

「同程度の速度では動かない」ということは言えても、「どのくらい速い」とかいう定量的な結論は実際にデータを取らない限り判りません。

例えば、SHARPのX1ではBASICインタプリタで動かすプログラムと、BASICコンパイラで動かすプログラムを比べたとき、動作速度は「コンパイラの方が速い」ということは言えても、「具体的に何倍速い」というのは実際に試してみないと判らないでしょう?

私はAndroid端末持ってませんし、Flashの開発環境(これは有料ですよね?)も持っていないので、にんともかんとも。
仮にベンチマークができたとしても、端末間の違いというのも相当あるでしょう。
まぁそこまでフォローできるのはお金をとってる企業とかでしょうね。

投稿: 深井 | 2011年5月16日 (月) 23時18分

>、「どのくらい速い」とかいう定量的な結論は実際にデータを取らない限り判りません。

それはそうですね。

まあ、そんなに細かい話でなくても、JAVAってどれくらい早いのかなというのは興味あります。
また無知をさらす感じですが、やっぱり、Cなどで書いたプログラムよりは遅いんですよね? まあ、プログラムの内容にもよりますか?

あ、ちなみに、この記事を書いてからも試してみていたのですが、レンダリング設定GPUはけっこう効いているみたいです。
そこそこオブジェクトを出しても、Android実機で処理落ちしにくくくなりました。

投稿: 適研所長 | 2011年5月17日 (火) 22時28分

> JAVAってどれくらい早いのかなというのは興味あります。

Javaは、同一バイナリをなるべくたくさんのコンピュータで動作させるために、Javaバーチャルマシンというプログラムを使用します。これは要するにFlashプレイヤーと同じものだと考えてもらって大丈夫です。
なので、やはりネイティブなプログラムよりはどうしても遅くなってしまいます。後はユーザがどれくらいJavaの遅さを許せるのかの問題になるのではないかと思います。

そうですね。Androidの開発環境であるEclipseは100% pure Javaではないですが、Javaで書かれています。あと、無料のオフィススイートのOpenOffice.orgもJavaで書かれています。一時期、Javaで書かれた脱衣ブロック崩しが流行ったことがありました。今でも「ブロック崩し 脱衣 Java」でググると出てきますね。

PC上での比較なら、もしかすると今はFlash / Airの方が速いかもしれません。グラフィックを多用するプログラムだと特に。

実行時に何が動いているのかを階層で示すと、以下のようになります。
Androidの場合
OS : Javaバーチャルマシン : Flashプレイヤー : ActionScript
OS : Javaバーチャルマシン : Javaアプリケーション

他のOSの場合
OS : Flashプレイヤー : ActionScript
OS : Javaバーチャルマシン : Javaアプリケーション

Androidの場合に、一段余計なものが増えているのが判ると思います。これがFlashの方が確実に遅いと言い切れる根拠になります。
それと比べて他のOSでは、FlashプレイヤーとJavaバーチャルマシンが同じ階層にいますよね。なのでどちらが速いのかは一概には言えなくなってしまいます。

投稿: 深井 | 2011年5月18日 (水) 01時47分

なるほど!
詳しい解説ありがとうございました。

Flashいじっているわりには、中身のこととか、あまりわかってないんですよね…。

そういえば、AndroidでFlashアプリを動かすには、Air Android(つまり、Adobe Airアプリを動かすためのもの)がインストールされている必要があったりするのでした。

その辺りがJAVAとの間に挟まっているというわけですね。
うーん、奥が深い…。

投稿: 適研所長 | 2011年5月20日 (金) 23時01分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/533792/51609078

この記事へのトラックバック一覧です: スマホでゲーム:

« ワープステーション江戸など-茨城観光 | トップページ | 謎解き古代文明 »