CoronaSDKとCocos2d-xとUnityと

少人数(あるいは一人)体制でクロスプラットフォーム(iOS & Android両対応)できるネイティブスマホゲームを作りたいとき、各OSのネイティブ言語(iOS→Objective-C / Android→Java)で個別に作るのは正直しんどいです。そのためにクロスプラットフォーム対応のゲーム開発ミドルウェアがいろいろあるわけです。僕に近しいところで挙げると、2DゲームならCoronaSDKかCocos2d-xかUnity、3DゲームならUnityとなりますが、先日もサイバーエージェントさんがUnity&Cocos2d-x推しだというニュースがありまして、国内でCoronaSDK開発があんまりブームになってないのが寂しいです。すごくいい開発環境なのに!
一応全部触ったことはあるので、それぞれの特徴を挙げつつ、CoronaSDKもいいよ!と褒めてみようと思います。

3D

まず3Dゲーム作るならUnity一択。僕がこないだ思いついたゲームアイデアは3Dで作った方が良さそうなので今Unityを再び勉強しなおしてます。以前Unity3時代に参考本を2冊やった程度で、今Unity4なのでその差異を知っておきたいのと、特に今回のアイデアだとMecanim(メカニム)使うからという理由です。
Unityは、IDEがちゃんとあって、プロジェクトやヒエラルキーの各種ウィンドウ、インスペクタからモーションエディタからコードエディタまで揃っているのがスゴい。スゴすぎて、「あのパネルはこういう機能で、あれをやりたい時はこのメニューからこのパネルで・・」みたいに、例えると初心者がモダンなFlash(ActionScript3.0)を一から覚えるのと似たような学習ボリュームが必要になる。
なので、ものぐさな僕はというと、IDEもなく、コード書くだけで全部をこなすCoronaSDKが好きになったのかもしれません。
とはいえ、3DはUnity。

2D

2DならCoronaSDK。
Cocos2d-xはコード記述量が多い。C#好きとかOOPがっちり考慮したい人はいいかもしれないけど、あんまりその辺こだわらない人、特にカジュアルゲームをモックベースからささっと作っていきたい人はCoronaSDKの方がおすすめ。

CoronaSDKは、本家の紹介デモ映像で「こんなに簡単に物理表現が作れます!」みたいなのを推してるけど、僕的には、コーディング&プレビューの速さと、Storyboardを使ってメニュー遷移構造が簡単に作れることを推した方がいいように思う。

まずプレビューの速さ。CoronaSDKには専用のシミュレーターが付いていて、好きなエディタでコード書いて保存した瞬間に横でシミュレータープレビューできます。
以前ライブコーディングでCorona実演をしたことがありまして、そのビデオにてビルドの速さをご覧頂けます
これは他のミドルウェアと比べると素晴らしいスピードでして、例えばCocos2d-xはXcodeでの開発なので、プレビューはiOSシミュレーターで確認できるのですが、プレビュービルドにそれなりの時間(10秒はかかる)がかかります。Unityも瞬間的にプレビューというとこまではできません。
僕はFlashをやっていたので、Flashの「Command+Enter」をタッターンと押して即プレビューして動きを見てを繰り返す「何度も調整&タッターン」というのが趣味になっている人には、Coronaプレビューのレスポンスの速さは神のごとしです。

次のメニュー遷移構造というのは例えばパズドラで下のメニューボタン押してダンジョン出撃するまでの画面遷移や、合成作業の一連のフローにおける画面遷移とか。そういうのをぱぱっと作るのはCoronaSDKが一番楽に思います。
UnityでもPlaymaker等のアセット使えば楽に作れるそうですけど、サードパーティーのアセットを使うことによるカスタマイズや最適化の限界にぶち当たるので躊躇するし、逆に車輪の再開発でもかまわないので、何となく全部把握しておきたい欲求があるので、CoronaSDKのStoryboard APIのような簡単な画面遷移フレームワークが好き。フレームワークといっても中身が分かりやすいし、遷移時のメモリ管理も乱暴に全消しみたいなことがとりあえずできるのが嬉しい。

Unityは画面遷移フレームワークとNGUI的な機能が公式からリリースされて、Retina解像度とかにビッチリ対応する方法がちゃんと分かったら、その時にやっと2Dメニューを作ろうかなと思えます。

一人で2Dカジュアルゲーム作るならCoronaSDKが良くて、なめこ育成的なカジュアルさなら充分作れると思う。
以前一人で作ってLINEゲームコンテストでファイナリストまで進めた「ブロッカーズ」もCoronaSDKで作ったのですが、

これ企画から素材作成から実装まで4ヶ月で作れたのは、初期段階からモックのコーディングを並行して開発できたCoronaSDKならではのスピード感だと思う。
上の動画で紹介されているようなまぁまぁゲームっぽいUIとか挙動は充分CoronaSDKで作れます。Flashの感覚です。

CoronaSDKが苦手なのはパーティクル。UnityにもCocos2d-xにもパーティクルシステムが入っているのが羨ましい。Coronaの場合は、パーティクル放出系の実装を自分で書くか、エフェクトを連番画像で描き出してオーバーレイさせるかするのが常套手段かな。

就職や転職したいならUnity。今は各社ネイティブゲーム開発ブームで引く手あまた。スマホネイティブ=Unityと勘違いしてるのかというぐらいUnity開発者が求められていて、そのおかげかUnityでのチーム開発体制も徐々に整備されてる印象。だからこそ、Unityで2Dゲームメニューを作るという本来「力技」的な作業も、そのユーザーの多さに後押しされて整備されて確立されてきてるのではないでしょうか。
一方「CoronaSDKが出来ます!」って言っても入社したらCoronaユーザーは自分一人ということになると思うし肩身狭く感じることになるかも。でも一人で手早くどんどん作れるんですよ!!

最後に、CoronaSDKは去年ライセンス体系が変更されて、今は無料版でも(アプリ内課金は出来ないけど、他の制限は特にないレベルで)アプリリリースができます。売り切りアプリも作れるし、広告も貼れますのでアプリ開発者ドリームの可能性もあります。
まだ国内ではCorona事例が少ないし、そのせいかユーザーも少ないけど、CoronaSDKいいですよ〜。