ゲーム開発素人が1週間でFlappyBird風ゲームアプリを作ってみた【MoneyBird】

ゲーム開発素人が勢いで開発着手してみました。ios Ver.とAndroid Ver.の両OSでリリースしています。
アプリ開発経験はあったものの、ゲームは未知数でした。
 
今回リリースしたアプリがMoneyBirdというアプリです。
13147555_617311378432451_2812571689324459672_o

【ios】https://itunes.apple.com/jp/app/moneybird-o-jinga-jin-huashita/id1100975613?l=ja&ls=1&mt=8[appbox appstore 1100975613]

【Android】https://play.google.com/store/apps/details?id=jp.co.infonear.moneybird[appbox googleplay jp.co.infonear.moneybird]  
ちなみに開発プラットフォームは自分の経験があるものがよかったので、iosではxcode(swift)を、androidではAndroidStudio(Java)を利用しました。
これからゲームアプリ開発をしたいと考えている人の参考になると思います。
 

開発初心者には「FlappyBird」

flappybirdみなさんはFlappyBirdというゲームをご存知でしょうか。
参考あまりの難易度で人気爆発のFlappyBird

一時期AppStoreで上位に君臨していたアプリだが、そのゲーム性はとてもシンプルでplayerの鳥を迫ってくる土管に当たらないようにタップし続けるというものです。

screen-shot-2014-01-31-at-5-49-05-pm

しかし今は開発者自身がストアから削除してしまったため、幻のアプリとなってしまいました。(今ストアにあるのはすべてパクリアプリです)
参考FlappyBird配信中止理由
 
で、なぜゲームアプリ開発初心者にFlappyBirdがオススメかというと、3つの良いところがあります。

  • ゲーム内容がシンプル
  • 素材が少ない
  • サンプルがたくさん落ちている

シンプルなものなら、やりたいことがすぐわかって調べられますね。また素材も少ないのでデザインの工数も少なくて済みます。

そして一番重要なのでが、サンプルがたくさん落ちていることです。サッカー選手のプレイを見て、尚且つ解説してくれたら一気にサッカー上達出来るのと同じで、世界中の人がFlappyBirdについて解説してくれているのです。
 
ゲームアプリ開発をしようと考えている人は、FlappyBirdを作ってみましょう。

それを応用すればある程度のアプリなら作れるようになるはずです。

開発プラットフォーム

XcodeとAndroidStudioでガツガツコードを書くか、Unity2dでさくっと作るかとても迷いました。

Unityはマルチプラットフォームなので、一個作ればiosにもAndroidにも出力が出来るのです。
 
でも私はUnityを使いませんでした。
 
使わなかった要因としては、無料版だと

tumblr_inline_mp3qi3SzdJ1qz4rgp

Launch Screen (スプラッシュ画面) ででっかくUnityのロゴが表示されるからです。正直、嫌だったのはこれだけです。
 
動作が重たいや容量が大きいという問題もあるみたいですが、このシンプルさならそれほど問題にはならなそうです。
機能が制限されている部分についても全く問題ありません。
 
強いてもう一つ挙げるとしたら、全く想像出来ないゲーム開発でコードを書いてみたかったからです。今後の開発に活きてくると信じているからです。

ちなみにこれはあとで分かったことですが、iOSとAndroidでは同じような作りで実装出来なくて、アプリを2本作っているような感じになってしまいました。

現在、Unityで開発もしていますが、圧倒的に楽なのでUnityをオススメします。

_人人 人人_
> Unity <
 ̄Y^Y^^Y^Y ̄

Xcode(Swift・iOS)でFlappyBirdの作り方

xcode-closeup (1)
いざ開発しようと思っても全くわからないので、とにかく調べてみました。

参考http://blog.andgenie.jp/articles/385

いろいろ見てみると、iOSではSceneKitやSpriteKitとかいうAPIが用意されているみたいです!少し気が楽になりました。

でも僕は、FlappyBird風にアプリを作りたいので、「FlappyBird Swift」と検索してみます。

参考https://github.com/fullstackio/FlappySwift
参考https://github.com/gscalzo/FlappySwift
参考https://github.com/oinariman/RMSwiftFlappyBall

まんまと出てきました。

それぞれクローンして動作確認して見ましょう。その中でも綺麗なコードのものを選んで読み解きましょう。iOSの場合は、どのコードを拾ってきても大体作りは同じです。

ソースコード自体を乗せることは出来ないのですが、iOSにはSpriteKitというきちんとしたフレームワークが用意されているので、ごにょごにょやっているうちになんだか出来るようになります。

参考SpriteKitを使って一攫千金を狙うチュートリアル/
 
gitでクローンしてきたコードが理解出来るようになれば、楽に0から作れるようになると思います。

Android Studio(java・Android)でFlappyBirdの作り方

android_top_android_studio
もちろんAndroidもflappyBird風のサンプルソースコードがネット上に落ちています。
 
ちなみに、私はAndroidの方に時間を取られすぎました。なぜかというと、Androidだと落ちているソースコードが大体同じというわけではなかったからです。

iOSのようなフレームワークは、あるのですがその中でのアニメーションの実装にいろんな方法が合って自分のアプリに合ったのを選ばなきゃいけません。
 
私が理解した頃には、後戻り出来ませんでした…
 
しばらくしてから、自分で最初から作ったほうが早いんじゃないかな…と思ったりしました。
 
でも、何も知らなかったから仕方がないです!

いろいろあるのですが、一番カスタマイズしやすそうなサンプルコードを拾ってきて解読しました。
参考https://github.com/cubei/FlappyCow

appleの審査について

FlappyBirdの類似アプリとして、リジェクトを食らうんじゃないかと危惧していましたが、申請は何の問題もなく一瞬でリリース出来ました。 
 
類似しているアプリはリジェクトの対象となりうるらしいのですが、ギリギリセーフだったのでしょうか。
 
FlappyBird絶頂期ならリジェクトの可能性も合ったのですが、今は熱りも冷めているので大丈夫なのかもしれません。
参考Flappy Bird(フラッピーバード)風のアプリを2時間で作った!が、怒られた・・・

 

ゲームアプリを開発したい人へ

はじめてのゲーム開発ということで、計測ツールは欠かせません。また、少しはお金がほしいので広告も入れました。
  
テスト期間も多めに見積もっておかないと想像以上に不具合や要望が多く合ってキリが無くなってしまいます。
 
ひとつゲームを作ってしまえばそれの応用で何でも出来るので、まずはFlappyBirdを作ってみるのがおすすめです!
 
ゲームは、システムの工数よりデザイナーの工数のほうが多くなりがちなので、シンプルなカジュアルゲームのほうがいいですね。
 
結果や近況はしばらくしてから別の記事で報告します。

MoneyBird

13147555_617311378432451_2812571689324459672_o

迫りくる無数の手をすり抜けていくお金のアクションゲームだ、困難をくぐり抜けた数だけ、お金の価値が成長していく。
成長すると、お金のキャラクターは進化していく。最終進化ではどんな姿になるのか、チャレンジしてみてください!

【ios】https://itunes.apple.com/jp/app/moneybird-o-jinga-jin-huashita/id1100975613?l=ja&ls=1&mt=8[appbox appstore 1100975613]

【Android】https://play.google.com/store/apps/details?id=jp.co.infonear.moneybird[appbox googleplay jp.co.infonear.moneybird]