2Dゲームは終わらない

プログラミング超初心者がUnityとかXamarinとか触ってみる

UnityとCocos2D-xを使ってみてUnityにした理由【超初心者観点】

2Dゲームを作成するにあたって、ゲームエンジンをどうするかという問題にぶち当たりました。UnityもCocos2D-xもどちらもアプリ開発市場で人気を博しており、2トップと言っていいものです。

 

まずはじめに、僕のスキルをご紹介しますと、Javaを数ヶ月触ったことがあるレベルの超絶初心者です。Cocos2DはC++、UnityはC#とそれぞれ初めて触る言語です。

まずは、C++とC#をそれぞれ0から学びました。ドットインストールのC言語のやつでポインタとはなんぞやというのをざっくり理解しました。また、C#はC言語というよりもJavaの派生系というような特徴があるらしく、ポインタのようなものは意識しなくてよくて、メモリ管理はガベージコレクタがやってくれるそうです。

そんなこんなで共に「Hello World」だけできるようになって、早速、Cocos2dとUnityでまずそれぞれチュートリアル的なアプリを一つずつ作ってみました。

Cocos2d-x

まずはじめにサンプルを探すのも面倒なので、書籍でパッと学ぼうと思い、こちらの書籍を購入しました。

はじめてでもよくわかる! Cocos2d-xゲーム開発集中講義 [v3.10対応]

はじめてでもよくわかる! Cocos2d-xゲーム開発集中講義 [v3.10対応]

 

 こちらの本はCocos2d-xのversion3.0に対応しているので、今からインストールしようとしている方にとても参考になると思います。

この本を通して、ポーカーゲームを作ることができるようになります。また、こちらの本では、Cocos Studioは使用しないので、がっつりUIをコーディングしていくことになります。すべてのプログラムが本に掲載されているので、一つ一つ写経していくことで、土日の二日間でポーカーゲームを作ることができました。

Cocos2d-xで基本となるScene、Layer、Sprite(Unityでも同じような考えがあることを後から知る)などの概念をしっかり理解できるようになると思います。

開発はほぼ全てXcode上で行いました。エラーが出るたびにデバッグして実行してという流れは大学生の頃以来だったので、懐かしく思いました。あと、Xcodeってすごいですね。統合開発環境というものはこんなに便利なものなんですね。

Javaを触っていた頃はコマンドプロンプト画面上でコンパイルして実行して、ということやっていたような記憶があります。

Unity

続いてUnityを触ってみました。MacにUnityをインストールする部分は、全然考えることがなく、だた、インストーラを実行しただけでできてしまいました。

参考アプリはUnity本家のサンプルアプリを使いました。

https://unity3d.com/jp/learn/tutorials/projects/2d-ufo-tutorial

動画自体は英語ですが、ありがたいことに字幕が付いていたので、全く問題ありませんでした。一つ一つの実行手順を一切スキップすることなく説明してくれるので、ほとんどエラーが出ることもなく、UFOアプリを作ることができました。

最終的にはこんな感じです。

f:id:taris777:20161009194744p:plain

なんかいかにも開発してます感が出ていて非常にいいですね笑。

こちらは合計2時間くらいの動画を見ながら半日ほどで作成できました。C#の「Hello World」からUnityのインストール、アプリの作成まで実質まる1日ほどで出来ちゃいました。

こちらのチュートリアルと触ることで、Sprite、Sceneなどの単語は出てくるものの概念の理解とまではいきませんでした。ただただチュートリアルに従っていた感じです。

あと、このゲームでは物理エンジンを使っているのですが、一切理解できていません笑。今後少しずつ理解したいと思います。

Unityが良い理由

Unityの方がいいなーと思った理由です。

Unityの方がコードの量が少ない

Cocos2d-xですと、ほぼ全てをコーディングしていく必要があります。SceneにAdd Childする部分なども使用するライブラリも全てコーディングが全てです。チュートリアルを進めて、Unityで記述した部分って本当に必要なロジックの部分だけで、後の部分はGUIでポチポチしてれば勝手に出来てしまいます。

これがプログラム初心者の僕にとってはとっても助かりました。プログラミングのスキルが上がりやすいのはCocos2d-xの方かもしれませんが、ゲームを作りたいという目的だけで行くならば今の所Unityで開発を進めていくのがいいと思っています。

ネットで調べてみると、Cocos2dの方が2Dに特化していて、かつ動作が軽快であるというメリットについて書かれていました。もっともっとクオリティやユーザビリティを上げたいという思いは今後出てくると思いますが、今はまずゲーム制作になれることだお思っているので、Unityでいいんだと思います。あと、最終的に作りたい放置ゲームってそこまで性能差でないんじゃないかと思います。ツムツムとか作るなら別かもしれませんが。

情報量が多い

これも初心者にとってはありがたいことですが、書籍やネットの情報の量でもやっぱりUnityの方が多いので、すぐに知りたいことを知れるという点で、いいなと思います。

初心者にとっては、つまずくとそこで挫折しかねないので、つまずきにくさというのも考えた方がいいと思います。特に僕の場合はただでさえ飽きっぽいので…

アセットストアがある

最大の魅力はこれだと思います。Unityでは画像や音楽などのアセットがストアに売っています。放置ゲームを作ろうとした時に、無料で素材を配布しているサイトも多々ありますが、あんまりイメージに合致した素材が見つからなくて困っていました。

しかも、アセットストアで買った素材はそのままプロジェクトにインポートすることができて、すぐに始めることができます。

まさに至れり尽くせりだと思いました。ゲーム開発を始める敷居がこっちの方が低いなと思います。

まとめ

初心者にとって何よりも大切なことは一つ目のゲームを完成させるまでにどれだけショートカットできるかだと思います。

一つ目ができたら、そこから少しずつ必要なプログラミングスキルを身につけたり、高度な使い方を覚えたりしていけばいいと思います。

そういった点を考慮して、Unityの方が敷居が低いと感じたので、まずはUnityでゲーム開発を勉強していこうと思います。

ゲームエンジンに迷っている初心者の方の参考になれば幸いです。