iPhoneやAndroidの2Dゲームアプリ制作で使用される定番のフレームワークとして、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で開いてみます。
いくつか、サンプルプログラムがあります。「スタートアッププロジェクト」に設定して、エミュレータで実行してみます。
おお。なんか問題なく動いてしまった。
こっちは、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
(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用のソリューションファイルですね。開いて、エミュレータを選んで、実行します。
空プロジェクトで起動できました。これは簡単に行けそうかもよ。
ということで、この先、書籍にしたがってサンプルプログラムを実行してみようと思います。書籍そのままのプログラムをここに書くことはできないので、実際のプログラムは、実物の書籍か、下記サポートページで確認してください。
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#と比べると、なんちゅうか、抜き身というか、オッカナイです。