[開発者コラム]UnityとCocos2d-x、どちらで開発する?マルチプラットフォームな開発環境としてよく話題に上がるUnityとCocos2d-xですが、両方ともガチで使ったことのある人というのはあまりいないと思います。実のところ私も2014年の夏に「作るのは2Dゲームだし、Cocos2d-xにしよう!」と決めてからはCocos2d-x一辺倒で、Unityを真面目に触ってみたことはありませんでした。諸々の事情で次回作からは使い慣れたCocos2d-xから離れUnityで開発を進めることを決めたので、今回はその辺りの話を少ししたいと思います。UnityとCocos2d-xを両方使ってみて何となく分かったこともあるので、それもついでに比較してみたいと思います。Cocos2d-xからUnityに移行したのか?2015年はUnity元年?今まさにどちらの開発環境にしようか迷っている人や、現在進行形でCocos2d-xを使っている人には興味深いポイントだと思います。そもそも、私がCocos2d-xの開発環境を作った2014年当時は、UnityとCocos2d-xはどちらも同じぐらいの人気と知名度があったんですよね。3Dゲームを作るならUnity、2DゲームならCocos2d-x、というような感じで住み分けもできていたように思えます。当時は「うーん、どちらにしようか・・・」と様々なUnityとCocos2d-xとの比較記事を読み漁った記憶があります。それが2015年の半ば頃から何だか2D/3Dを問わずUnityを使う人が多くなってきて、2015年末頃には世間はすでにUnity一色とも言える状況だったんです。2015年はUnityが流行になったんですね。それだけでは使い慣れた開発環境を手放す理由にはなりません。私がCocos2d-xからUnityに心変わりした原因、それは最新のCocos2d-xの開発環境を整えようとした時に起こりました。GoogleがEclipseへのADTサポートの終了を発表ご存知の方も多いとは思いますが、これまではAndroidアプリを開発する際にはEclipseという開発環境を用意するのが定番でした。Tools)を提供していました。Studio」に移行させるため、EclipseへのADTのサポートを2015年末に終了すると発表したのですね。Studioを使わなければならなくなった訳です。話はCocos2d-xの方に変わって、Cocos2d-xでの開発もこれまでは上述のEclipseの開発環境にちょこちょこっと手を加えるだけで行えていました。最初の環境構築にこそ若干手間がかかりますが、それさえ済めば後は普通のAndroidアプリを開発するように、Eclipse上でコーディングからビルド、リリース用のapk作成まで全てできていたんです。オールインワンな統合開発環境だった訳ですね。これは大変便利なものでした。Studio上に組まなければならなくなりました。ここで事件が起こります。Studio上では行えないのです。StudioがCocos2d-x用のC++ソースをプロジェクトとして認識してくれないのですね。Studioあたりを別途立ち上げる必要があるという訳の分からないことになってしまいました。Studioではそれができません。C++ソースを同一のプロジェクトとして認識していないからです。そのためC++ソースを変更したら、その都度ビルドコマンドを叩かなければならなくなりました。オールインワンな開発環境だったEclipseと比べると、随分と不格好な形になったなあという印象が強いです。いうこと?話をまとめるとこんな感じです。これまではEclipseというそこそこ優れたツールのおかげでほぼオールインワンな統合開発環境を構築できていた。今後はそれが見込めず、しかも物凄い使いづらいストレスの溜まる環境しか構築できそうになかった。Cocos2d-xからUnityに移行しようと思った。話が長い3行で、ってやつですね(笑)UnityとCocos2d-x、両方触ってみての比較と感想という訳で、遅ればせながら2016年の新春に私にもUnity元年がやって来た訳ですが、両方触ってみて初めて分かることもあるものですね。それを参考までに書いておきたいと思います。Unityの使用感プログラミングというよりも、色んな形の積み木を好きなように組み立てて行くような感触があった。コーディングなんてほとんどしたことが無いプログラミング初心者でも頑張ればアプリが作れちゃうだろうな、と思った。ここが2015年にUnityが流行った理由の1つかも。逆に経験の長いプログラマーにはUnityは異世界のプログラムを組んでいるように思えて、もしかしたら取っ付きにくいかもしれない。いう人はUnity向けの設計技法(というか考え方?)を頭の中に新しく作る必要がありそう。Studioのようなグラフィック/アニメーションの支援ツールなどもあるが、基本的にはC++ソースをガリガリ書いていくのが開発の主体となる感じ。コーディング楽しい!コーディング最高!そんな感じ。業務での開発のようにきちんと詳細設計まで行える人、1~2万行を脳みその中に詰め込んでコーディングできる人には、とても使いやすい(というか馴染みのある)開発環境かもしれない。AndroidアプリをEclipse+Javaで書いていた人なら、多分難なく入り込めると思う。その他のざっくりとした比較Unityの最大の特徴は物理エンジンや衝突判定みたいな面倒臭い処理をワンクリックで追加できる点だと思う。Cocos2d-xでそれをやろうと思ったらやはりソースコードをいじらなきゃいけないけれど、UnityはGUI上でさらりとできる。簡単過ぎて怖いぐらいに。その他、画像リソースの配置なんかもGUI上で大体できちゃう。これはCocos2d-xでは得られない快感。GUIの使い方が分からないと手も足も出ないので、そういう意味では根っからのプログラマーには辛いかも?対してCocos2d-xで作ったアプリは、Unityと比べてスマホに載せた時にサクサク動く。iOS/Androidとの距離が近いのもCocos2d-xの特徴かもしれない。iOSの場合はObjective-CとC++を混ぜて書くこともできるし、Androidの場合はJNIを経由してJava側のリソースにアクセスすることも可能。変態的な実装もやろうと思えばやれる辺りがCocos2d-xの魅力。使う機会があるかは別として。書いていて思った、やっぱりUnityが良いかもしれないとまあ、ここまでだらだらと書いていて改めて思ったのですが、これから始めるならやはりUnityが良いかもしれないですね。上手く言えないのですが、何と言うかUnityには未来がありそうな雰囲気がします。3Dゲームも2Dゲームも作れますし、非プログラマーでも気軽に参入できそうなハードルの低さも正直スゴイなと思います。個人的には一応業務でプログラミングを行っていた側の人間なのでCocos2d-xの環境はとても居心地が良く、ワクワク感もあったのですが、上で書いたように周りの環境の変化に左右されまくりな現状を見る限り先は無さそうだな・・・と思います。Cocos2d-xが悪いと言っているのではなく、単純に運が無かったのかな、と。残念ですが、こうやって淘汰されて行くのもまた技術の進歩には必要なのかもしれませんね。念のため断っておきますが、本記事はUnityはおろかCocos2d-xさえ100%使いこなしていない人間の戯れ言です。記事の内容に嘘偽りはありませんが、調査不足な点や勘違いしている点などがもしかしたらあるかもしれません。内容をけして鵜呑みになさらないようご注意ください。7つの優先度と便利なサービスコメントを残す返信をキャンセルする。最近買った書籍アプリ・ゲームプランナー完全マニュアル・ゲーム制作のイロハが学べます。・日本語の数ある言い回しを知ることができます。シナリオ書きにはぜひおすすめ。Project」によって管理されています。Reserved.このページの先頭へ。