Rikoのソースを絶賛整理中。
OpenALとかCgをrikoextにリンクすると、それらを使ってないときにもランタイムが必要になっちゃうのが嫌だったので分けてみた。
しかしCgはわけるのめんどそうだったので保留。どうせ分けるならCgFXとか対応してもいいかもしれない。
サウンドの方は完全分離。もともとサウンドがいっしょになってるのは嫌だったんだよ。
しかし分離する際の問題はVectorとかのクラス。3Dサウンドも使いたいのでサウンドでもVectorとか必要なんだが、そいつらはrikoextに入ってる。
サウンドだけ必要なときにグラフィックの方もロードしないとならんというのは納得いかない。
というわけで数学関係も分離。
ついでにサウンドの辺りをビルドするのにvorbisfileが必要になっていたのもオプショナルにした。 べつにOgg/Vorbisじゃなくても鳴らせるのよ。
で、なんか動く所まで行ったのでサウンドを鳴らしてみたり。ファイル読み込みじゃなくて自分で波形作って。
うーん、音階鳴らすだけなら簡単なんだけど、ここから曲っぽいのにするのは非常に大変だなぁ。
GRikoだと2D?というか単純なモノラル、ステレオのサウンドは簡単にならせるんだけど、まだ3Dサウンドはちゃんといじれるようにしてないから、近々その辺いじりたいな。
あとやっぱりCgの拡張ライブラリ分けた方がいいかなぁ、といいつつなぜかglfwのバインディングを作り始めたよ俺。
そういえば整理ついでに行列とか掛ける順番を逆にしてcolumn majorにしたいんだけど…。
ずっとベクトルは右から掛ける物と信じていたので、行列もrow majorになってるんだけど、世の中的にはベクトルは左から掛ける物らしい。ということを薄々分かってはいたんだが最近ついに観念しそう。
まあ確かにベクトルに変換(行列)を掛けるとすれば行列が右なのは分かる。俺的には変換を積み重ねて、最後に頂点がかかってくるイメージなんだがなぁ。
まあべつにどっちがどっちなんてのは、ちゃんと統一さえされていればたいして問題では無いんだが、今さら変えると前書いたゲームの変更点が半端じゃなくなりそうなんだよなぁ。
じゃあrow majorなままでもいいじゃないかとすると、今度はGLSLとかCgと逆なのが問題だ。4x4行列なら別に困ること無く使えるんだが、4x3行列とか使ったときによくわからんことに…。
うーん、やっぱり逆にした方がいいよなぁ。リリースするなら世の中的に一般的な方に合わせたいし、やれるのはちゃんとリリースする前までだろうし…。