Objective-CでiOSゲームを作る(Cocos2D編その1)


突然だけど、今日からしばらくはCocos2DでObjective-Cの世界にどっぷり浸かってみよう。まずはインストールと簡単なプロジェクトの作成までをやってみる。

さて、今年このブログではずっとHTML5やFlashについてかなり取り上げてきた。では、なぜ今Objective-Cなのか。なぜ、Cocos2Dなのか?

なぜObjective-Cなのか

自分ごとで申し訳ないのだが、率直に言うと、Steve Jobsの伝記を読み終わってHTML5やFlashってどうなんだろうと思ったのがきっかけだ。

常に最先端でイノベーションを繰り返すテクノロジーの世界で活躍したSteve Jobsの生き様と比べると、クロスプラットフォームに頼るのは常に一歩あとを追いかけているのに等しい。

Corona SDKなどかなり頻繁にアップデートをしているSDKもあるがそれでもネイティブのSDKで使われている言語には勝てない。

もちろんクロスプラットフォームにはその存在理由があるし、僕はこれからも注目していくのだが、今年最後のテーマを決めるにあたって原点に戻ることにした。

iOS向けに開発するならば、そのプラットフォームにある機能を諦めることなく開発できるObjective-Cを選ぶのがもっとも自由度が高い。開発者としてObjective-Cと対峙するのに問題がないならがそれを選ばない理由はない。

なぜCocos2Dなのか?

JavaScriptでもActionScriptでも、どうしても越えられないスピードの壁がある。僕のiPhoneにはPhoneGapやAdobe AIRでパッケージされたゲームが入っているのだが、どうもスピード的に満足できない。そこでCorona SDKやTitanium Mobileなども考慮したのだが、Steve Jobsの伝記を読んでいるうちにネイティブ言語を使えるのであればそれがベストだろうと結論した。

ネイティブ言語であれば、ターゲットにするOSにおいて自分を最先端に位置することが出来る。だったら、iOS SDKを直接使うのが一番だろう。なぜ、Cocos2Dなのか?

これは単純にトレードオフの問題だ。限られた時間の中で自分がやりたいことを実現するには妥協も必要。iOS SDKで使われているObjective-Cを使ったフレームワークでゲームを作るのが目的なものを選ぶことにしたらCocos2Dが候補に上がった。

Cocos2DならばスプライトやOpenGLの扱いなどを簡単にしてくれるし、Objective-C用のゲーム作成フレームワークとしては一番有名だ。

Cocos2D-XというC++ベースでAndroidなどにも対応しているものもあるのだが、クロスプラットフォームだとどこかでいろいろと妥協が出てくる可能性があるし、今回はObjective-Cを選ぶことで将来的にiOS SDKの新しいAPIにも素早く対応できるようになると考えた。Cocos2D-Xはまたいつか取り上げたいと思う。

Cocos2Dのインストール手順

Cocos2Dはここからダウンロードできる。Macにてダウンロードしたファイルを展開するとフォルダ(たとえば、cocos2d-iphone-1.0.1)ができる。Terminalからそのフォルダへと移動して以下のコマンドを実行すれば、Xcodeのテンプレートがインストールされる。

./install-templates.sh -u

これだけだ。これで、Cocos2DのテンプレートがXcodeのプロジェクト作成から選択可能になる。

Cocos2Dアプリを作ってみる

Cocos2DでiOSアプリを作るには、Xcodeからプロジェクトを作るときにcocos2dのテンプレートから必要なものを選べばよい。

Cocos2Dのテンプレートでは以下の3つの選択肢がある。

テンプレート名 物理エンジン
cocos2d なし
cocos2d_box2d Box2D
cocos2d_chipmunk Chipmunk

今回は物理エンジンなしを選ぶ。

あとは、プロジェクト名を設定して、フォルダーを選ぶだけ。

Identifierのところがなぜかcom.yourcompanyのままなだった。これはXcodeの問題なのかCocos2Dのテンプレートの問題なのかよくわからない。手修正で問題はない。

iPhone 5.0 Simulatorを選び、CMD+Rでプロジェクトがビルドされてシュミレーターが立ち上がる。ちなみに、ビルドの結果では[[UIDevice currentDevice] uniqueIdentifier]の所で幾つかdeprecatedの警告が出るが、これは無視。おそらく将来のバージョンのCocos2Dでは解決されるだろうし、警告だけなので問題ない。

立ち上がったシュミレーターでは、Hello Worldの文字が見える。

まとめ

前置きが長くなったが、しばらくはCocos2Dでいろいろやってみるつもりだ。前述したとおり、Steve Jobsの伝記にいたく感動した。

人生が限られていることを考えると自分ができることを最大限に発揮することが一番大事だと感じる。C++をつかって仕事をしている僕がHTML5やFlashを使いながらなんでこんなに遅いんだとぼやくだけでよいのか?

その疑問を突き詰めると、やっぱりターゲットになるOSのネイティブ言語に精髄したいという自分に突き当たった。

さて、上記のプロジェクトに戻ると、様々なファイルが生成されているのが分かる。

次回からは重要なものを一つ一つ見ていこう。

澁谷 直樹 の紹介

根っからのガジェット好き。本業はUnix上でのC++プログラミング。香港の外資系投資銀行でアルゴリズム・トレードのシステムを日々構築中。 ツイッター:@naokishibuya2
カテゴリー: Cocos2Dでゲーム開発, 挑戦アプリ開発   パーマリンク
  • MAKOTO NIKI

    xcodeでcocos2dを開いて、そのまま実行をするとYour Mac runs a version of OS X which is lower than your project’s minimum deployment target.と表示されて、cocos2dのファイルのCCConfiguration.mで黄色のエラーが出てしまって、実行ができません。どうすればいいでしょうか。

  • http://evergizmo.com Naoki Shibuya

    見慣れないエラーなので、なんとも言えないけど、その意味からすると、「Mac OS Xのバージョンが古すぎる」と言っているよう。ちなみに僕のMacはOS X10.8.2でCocos2Dのプロジェクトは問題なくビルドし実行できる。「xcodeでcocos2dを開いて、そのまま実行すると」というのは、「cocos2dのテンプレートでプロジェクトを作成して実行すると」という意味ですか?

  • MAKOTO NIKI

    ありがとうございます。問題は解決しました。プロジェクトの作成の段階でdevicesの項目がiPhoneではなく、Macになっていたようです。

  • http://evergizmo.com Naoki Shibuya

    cocos2dだからMac OS XじゃなくてiOSじゃないとダメだった、な~るほど、納得。解決して良かった:)