パズモナに影響されてCinder環境作ってみた話

はじめに

最近、西山 信行さんがリリースされたパズル&モナークにハマっています。

ゲームが面白くて、無限に時間泥棒なのもあるんですが、なにより、ゲーム中の軽快動作はもちろん、起動もすっごく軽いんですよね。

なんじゃこりゃ?とクレジットを見てみたら、openFrameworks とか Processing とかの流れのビジュアルデザイン向けのC++ライブラリであるCinderを使っていると。 f:id:daidai7:20181216124938p:plain 実は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

f:id:daidai7:20181216123447p:plain

新しい環境で試してみよう

今回の最終目標はパズモナを題材に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環境はとっても素直で弄りやすそうなので、いろいろ遊んでみることにします!

ではでは。