[Visual Studio] cocos2d-xでの開発

iPhoneやAndroidの2Dゲームアプリ制作で使用される定番20140105cocos_7のフレームワークとして、cocos2d-xというものがあります。C++で作成するため、 iPhone/Android両方で同じソースが使え、クロスプラットフォーム開発が便利にできるものです。
iPhoneの開発言語は基本objective-Cですが、C/C++でも開発可能。Androidの開発言語は基本Javaですが、NDK(NativeDeveloperKit)を使うことでC/C++でも開発可能なのです。

cocos2d-xでは、iPhoneでの開発はXcodeを使い、Androidの開発はEclipseを使います。EclipseでのNDK開発環境はあまり整備されていないので、開発時には、たいていはiPhone版で完成度を上げ、その後にAndroid版で機種依存のところのみ微調整する、という風になっているのではないでしょうか。


そのcocos2d-xなのですが、マルチプラットフォーム化を進めていて、Windowsでも使用できるようになっています。デスクトップアプリ、モダンアプリどちらも作れるみたいです。
ということは、これでゲーム本体を作れば、iPhone版/Android版/Windows版の同時開発も夢ではないわけです。(いろいろと、ハマりどころがありそうな予感はありますけれども。)
Windows版では開発にVisualStudioが使えますので、開発もいい感じでできそうです。


ダウンロードはこちらから。

cocos2d-xダウンロードページ
http://www.cocos2d-x.org/download

開発中のアルファ版v3.0 alpha1も気になりますが、今日のところは正式版のcocos2d-x-2.2.1.zipをダウンロードしました。

cocos2d-x-2.2.1.zipをダウンロードして展開して、Windows用のファイルを確認してみたところ

cocos2d-win32.vc2010.sln
cocos2d-win32.vc2012.sln
cocos2d-winrt.vc2012.sln
cocos2d-winrt.vc2013.sln
cocos2d-wp8.vc2012.sln

Windows用のソリューションファイルがいくつか揃っています。

ちなみに本体SSDに展開すると、展開に1分ほどかかりましたが、SDカードに展開しようとすると1時間ほど(途中で止めましたが)かかるようです。SDカードは、作業ストレージとして使うのは厳しいですね…。

cocos2d-winrt.vc2013.slnをVisual Studio Express 2013 for Windowsで開いてみます。

20140105cocos_6

いくつか、サンプルプログラムがあります。「スタートアッププロジェクト」に設定して、エミュレータで実行してみます。

20140105cocos_2

おお。なんか問題なく動いてしまった。

20140105cocos_3

こっちは、cocos2d作った人なら、きっと見たことあるサンプルゲームですね。

もう、普通に行けそうなので、書籍「cocos2d-xによるiPhone/Androidアプリプログラミングガイド」に沿って、サンプルゲームを作ってみたいと思います。cocos2d-xを学ぶのに、とても分かりやすくていい本です。



プロジェクトの生成には、Pythonスクリプトを用いるので、Pythonをインストールしてパスを通します。

Pythonダウンロードページ
http://www.python.org/download/

書籍に従い、2.7系をダウンロードします。システムのプロパティ-詳細設定-環境変数から、環境変数PATHにインストールディレクトリを追加します。

コマンドプロンプトを起動して、(cocos2d-xインストールフォルダ) \tools\project-creator\ にカレントフォルダを移動。Pythonコマンドを実行。「-project」でプロジェクト名を指定。「-package」でパッケージ名を指定。何でもいいのですが、一意にするために「自分のサイトURLを逆順につなげたもの+プロジェクト名」が一般的です。「-language」で言語指定。cpp/lua/JavaScriptが選択できるようです。「cpp」を指定。

> create_project.py -project HelloProject -package jp.matrix.shikarunochi.helloproject -language cpp

20140105cocos_4

(cocos2d-xインストールフォルダ)\projects\HelloProject
に、様々なプラットフォーム用のプロジェクトファイルができました。

2014/01/05  00:08    <DIR>          .
2014/01/05  00:08    <DIR>          ..
2014/01/05  00:08    <DIR>          Classes
2014/01/05  00:08    <DIR>          proj.android
2014/01/05  00:08    <DIR>          proj.blackberry
2014/01/05  01:05    <DIR>          proj.ios
2014/01/05  00:08    <DIR>          proj.linux
2014/01/05  01:05    <DIR>          proj.mac
2014/01/05  01:05    <DIR>          proj.marmalade
2014/01/05  01:05    <DIR>          proj.win32
2014/01/05  01:05    <DIR>          proj.winrt
2014/01/05  01:05    <DIR>          proj.wp8
2014/01/05  00:08    <DIR>          Resources

Windowsモダンアプリなので、proj.winrtフォルダを見てみます。

C:\cocos2d-x-2.2.1\projects\HelloProject\proj.winrt のディレクトリ

2014/01/05  01:05    <DIR>          .
2014/01/05  01:05    <DIR>          ..
2013/11/19  14:29               719 App.xaml
2013/11/19  14:29             3,494 App.xaml.cpp
2013/11/19  14:29             1,843 App.xaml.h
2014/01/05  00:08    <DIR>          Assets
2014/01/05  00:08    <DIR>          Common
2014/01/05  01:05            14,894 HelloProject.sln
2014/01/05  01:05            22,327 HelloProject.vcxproj
2014/01/05  01:05             2,419 HelloProject.vcxproj.filters
2014/01/05  01:05            15,028 HelloProject_2013.sln
2014/01/05  01:05            21,480 HelloProject_2013.vcxproj
2014/01/05  01:05             2,193 HelloProject_2013.vcxproj.filters
2013/11/19  14:29             1,493 MainPage.xaml
2013/11/19  14:29             2,408 MainPage.xaml.cpp
2013/11/19  14:29             2,077 MainPage.xaml.h
2013/11/19  14:29             1,245 Package.appxmanifest
2013/11/19  14:29             1,514 Package_2013.appxmanifest
2013/11/19  14:29                20 pch.cpp
2013/11/19  14:29                40 pch.h
2013/11/19  14:29             2,512 TemporaryKey.pfx
              17 個のファイル              95,706 バイト

HelloProject_2013.slnが、VisualStudio2013用のソリューションファイルですね。開いて、エミュレータを選んで、実行します。

20140105cocos_5

空プロジェクトで起動できました。これは簡単に行けそうかもよ。

ということで、この先、書籍にしたがってサンプルプログラムを実行してみようと思います。書籍そのままのプログラムをここに書くことはできないので、実際のプログラムは、実物の書籍か、下記サポートページで確認してください。

cocos2d-xによるiPhone/Androidアプリプログラミングガイド
http://book.mynavi.jp/support/pc/4697/

Windowsモダンアプリに関するところだけ、書いていこうと思います。もしかして、ほとんど無いかもしれないですが…。ひとまず、今日はここまで。


プロジェクト生成は、VisualStudioのテンプレートに追加することができると思うのですが、よくわからなかったので、まずは基本に忠実にPythonで作成してみました。
cocos2d-xのバージョンによっては、VisualStudioテンプレート追加用BATファイルが付属してるようなので、次バージョンに期待してみるかな…。

用意されているソリューションファイル、VisualStudio2013用はWinRT(モダンアプリ)用だけだったので、もしかしてVisualStudio2012用のファイルが使えるかと思って、cocos2d-win32.vc2012.slnを VisualStudio2013で開いてコンパイルしましたが、libExtentionsのコンパイルでエラーが出て、成功しませんでした。

いまのところは、デスクトップアプリよりモダンアプリ作りたいので、問題ないです。が、デスクトップアプリ用も欲しいですね。

しかし、C++のソースはC#と比べると、なんちゅうか、抜き身というか、オッカナイです。