体調は悪いというほどもないが安定しないなぁ。喉がちょっと痛い気がしたり頭がちょっと痛い気がしたり肘が確実に痛いけど元気です。たぶん。
3月一杯で消える有給は沢山あるので休むのはいくらでもできるし休まないともったいないのだが、そんなに暇でもないので実際休めないっていうね。使い切るのは無理だな。
ガス代が6000円とかなっててびっくりした。LPガスは高いとさんざん言われてたが確かにだいぶ高いな。ちょっと無駄使いしすぎたこともあるんでもう少し気をつけて使おう。瞬間湯沸し器があると便利だったんだけどなー。
やっぱ諦めた。まあこう書くと非常に誤解を招く表現だが。
IronRubyとOpenTK使ってゲーム作ろうと思ってたんですよ。OpenTKはOpenGLの.NETバインディングね。で、描画とかも含めてほぼRubyで書こうとやってたんだけどやっぱり限界だわ。少なくとも描画は無理だ。
描画って最内ループというか、定型の処理をいっぱいやるところなのでRubyに超向いてない。このエフェクトとこのエフェクト使ってモデル表示してーという程度まで高レベルになればべつにRubyでもいいんだけど、その中ではひたすらOpenGLのAPI呼んでたり行列の計算したりシェーダに変数設定してたりするだけだ。でまあそんなところもRubyで書いてみようとしたがやっぱり難しかった。最近はシェーダであれこれやっちゃうから間に合うんじゃないかと思ったけどそんなこともなかったよね……。
シェーダのuniform変数設定するのに浮動小数点数の配列を渡さなきゃいけないんだが、OpenTKがIronRubyの配列を受け取ってはくれないので.NETの配列をいちいち作って渡してやる。この配列を作るのが既に遅いようだ。まじか。まあそれならそれでキャッシュする手もあるんだが、IronRubyではインスタンス変数へのアクセスがけっこう遅くてキャッシュする気も削がれる。 いやけっきょくRubyっつーかIronRubyのせいじゃねぇかと言われればそうなんですけどね……。
そんなわけでなるべくRubyで書く作戦は諦めつつあって、とりあえず描画周りはF#で書こうかなと。ゲームロジックについては当分IronRubyでも遅いてことはないだろうし、もしかしたら衝突検出とかもIronRubyのままいけるかもしれない(無理かもしれない)。 ところでなんでF#なのかというとF#が書きたいからなだけであった。C#とか面白くないし。
まあぼちぼちF#で描画辺りを書きつつゲーム側ももうちょい整理したい。またRubyで描画も悪足掻きするかもだけど。 あっ、なんかこれ進まないフラグじゃね?