パズモナに影響されてCinder環境作ってみた話
はじめに
最近、西山 信行さんがリリースされたパズル&モナークにハマっています。
ゲームが面白くて、無限に時間泥棒なのもあるんですが、なにより、ゲーム中の軽快動作はもちろん、起動もすっごく軽いんですよね。
なんじゃこりゃ?とクレジットを見てみたら、openFrameworks とか Processing とかの流れのビジュアルデザイン向けのC++ライブラリであるCinderを使っていると。 実はCinderについてぜんぜん識らなかったんですが、さいきん業務で使うとしたら C#かgolangだったりするので、いわゆるC++から離れて久しいし久々に触ってみたいなぁ、、、と思っていました。
そしたら、なんとリリースしたばかりのパズモナをGitHubでソース公開したというじゃないですか。こりゃ環境作ってビルド出来るようにするしかないよね!ってことで、家のMacbookでCinder環境作ってみました。
環境構築
まずは、パズモナのレポジトリのReadmeに書いてる環境を整えます。 Mac環境なので、あらかじめ Xcode 10.1 が使える状態にしておきます。
Cinder のセットアップ
cinder を入れます。 GitHubレポジトリから落とした 0.9.1 はビルドすると環境によってはライブラリのビルドでエラーが出るみたいなので、こちらから pre-packaged版の 0.9.1 をダウンロード。
最新のmasterブランチのリビジョンである 0.9.2dev だとビルドできるようです。あとで試してみよう。
boost、GLMの指定バージョンを入れる
Cinder 0.9.1に同梱されている boostとGLMがパズモナとバージョンが合わないみたいなので、指示通りのバージョンを取得。
それぞれを展開したら、boost_1_67_0/boostのboostをディレクトリを、GLMはglm/glmのglmディレクトリを、Cinder/includeに入れます。
$ cd Cinder_0.9.1_mac/include $ rm -Rf boost $ mv ~/Downloads/boost_1_67_0/boost . $ rm -Rf glm $ mv ~/Downloads/glm/glm . $ cd ..
Xcode で パズモナのプロジェクトを開く
Cinder_0.9_i_mac 以下に、パズモナのレポジトリをクローンします。
$ git clone https://github.com/tek-nishi/PuzzleAndMonarch.git
Windows環境用のVisualStudioのプロジェクトファイルもありますが、ここではMacなので、xcodeのプロジェクトを開きます。
$ cd PuzzleAndMonarch $ open xcode/PuzzleMonarch.xcodeproj
ビルドしてみよう
Unity/C#を使ったりするようになって久しいですが、私がC++のコードを触っていたのは数年以上前。パズモナで使っているC++14のコードを見て結構ショックを受けた模様w こんな書き方知らないよ…って。
早速ビルドしますが、そのままだとコンパイルエラーになるので、インクルードパスを修正する必要があるようです。
ウチの環境だとこんな感じになっていますが… - Cinder_0.9.1_mac + blocks + docs + include | : + PuzzleAndMonarch | + assets | + include | | : | + todo.org + samples | :
その場合は、 Build Settings > User-Defined の CINDER_PATH を以下のようにに修正すると良さそうです。
../../Cinder-0.9.1 → ../..
これでビルドが出来るようになりますが、最後にリンカエラーになるので、General > Linked Framework and Libraries でフレームワークを追加します。
- CoreVideo.framework - CoreMedia.framework
やった!動いた!! 時間泥棒のパズモナがMacでも動いちゃいましたw
新しい環境で試してみよう
今回の最終目標はパズモナを題材にCinderとC++をお勉強する、ってことなので、やっぱりCinderは最新版に追従しておきたいところ…。
ということで、前述のパッケージ版ではなく、最新ビルド 0.9.2dev をGitHubからCloneして、パズモナを動かしてみました。
ソースコード版だと、ライブラリ類をビルドしないとつかえないので、とりあえず、ビルドします。iOS版とかいろいろな環境もまとめてビルドするので、Core i7 2.5GHzの MBPでも30分ぐらいはかかりますが、その間は領地でも拡大して待ちましょうw
$ git clone --recursive https://github.com/cinder/Cinder.git $ cd Cinder/proj/xcode $ ./fullbuild.sh
Cinder 0.9.2環境でパズモナをビルドするには、boostのアップデート(上書き)は必要でしたが、そのほかは特に問題無く動いたようです!やったぜ٩( ᐛ )و
感想など
いままで、Xcode(というかObjective-c)アレルギーで、Unityから吐き出されたプロジェクトをビルドして実機に転送しつつ、起動ログを眺める環境、と割り切っていたXcodeですが、こうやって研究対象があると触ってみたくなりますね。
まだちょっと覗いただけですが、ImGui とかと組み合わせても面白そうだし、Cinder環境はとっても素直で弄りやすそうなので、いろいろ遊んでみることにします!
ではでは。