cocos2d-x から Unity へ移行する理由
おけやで作るスマホゲームは全て cocos2d-x というフレームワークを使って作っておりましたが次回作の「にんぎょのおしごと」では Unity を使う方針になりました。
そこに至る意思決定として何があったのかを公開します。
なぜ cocos2d-x を使っていたのか?ですが、おけやでスマホゲームを作り始めたのは2014年でした。
そのころは3Dゲームは Unity、 2Dゲームは cocos2d-x という風潮がありました。
また実際に Unity、cocos2d-x にとどまらず UnrealEngine、SpriteKit、Ruby Motion など様々なエンジンを試してみた結果として cocos2d-x を採用しました。
採用した理由としてはブロックを置いてそれをタップしたら動くみたいな小さいゲームを作るのに一番最短で出来たこと。
プログラムの設計図とも言えるソースコードが誰にでも読めて改変も出来るライセンスで公開されているので困った時に自分で直すことが出来るということ。
iOS では Objective C++、 Android では JNI というものを使い、ネイティブアプリとまったく同じものにコンパイル出来るのでバイナリサイズが小さくて済むことと言った点でした。
またアプローチとして Unity はゲーム作りに必要な全ての事を Unity エディタで行うような設計なのですが cocos2d-x では例えばアニメーションを作るなら Spine という別のツールで作って組み込めばいんんじゃないというようないくつかのツールを組み合わせて作るような設計だった点もあります。
なぜ cocos2d-x をやめるのかといいますと、公式でサポートされていた UI エディタである cocosStudio というツールがリジェクトされたからです。
既に公式サイトからのダウンロードリンクもなくなっており、現在では Cococs Creator という別のツールが UI エディタとして用意されております。
自分達でメンテナンスしていないツールがリジェクトされて困るのは仕方がないのでその負担を負担するのは甘んじて受け入れます。
ですがここで 例えば CocosStudio 互換のツールを作るか Cocos Creator へ移行するかなどの選択肢を考えた時にじゃあ Unity でやってみるかとなったわけです。
ではなぜ Unity か?ですが、一口で言うと流行ってるからです。
それと 2D ゲームのサポートもそこそこがんばろうとしている姿勢があるからです。またおけやは極端にリソースが無いので正確性はさておき情報が多いほうが良いという判断となりました。
ツールの選定は将来を見据えて行わなければならず、また愛用していたツールがある日突然オワコンになることもあります。
iPhone が出て10年になりますが、それ以前はガラケー向けの java アプリとかもあったんですよ。
Unity がじゃあ10年後も使えるかはわかりませんが、複数の環境を使ったことがあるという経験はそれなりに役には立つかなと思います。
というわけでおけやではしばらく Unity を使うこととなりましたというお話でした。