なんかどうしてもゲームが作りたいらしいので作ることにしました。
といっても、ゲームが作りたいというより、ゲーム作るフリして遊びたいっていうか。
まあ以前から考えてたRubyから3Dグラフィックをそれとなく使えるライブラリを作るつもり。riko(仮称)。
でriko(仮称)+SDLで何かゲームが作れたらなー、という感じか。
できれば作り方のドキュメントみたいなのを書いていきたい感じ。rikoの使い方というよりはrikoの作り方のようなものを。
で、ruby/wxもやめたわけではなくて、週の半分ずつくらいで分けて作業していくつもり。
ちなみにriko(仮称)のようにまだ(仮称)付きなのはrikoって名前にいまいち感があるため。っつーか何の当て字だかよくわからんし、ricoとかいうのもあるみたいだし。
そんなこんなであんまり進展無し。
しかしruby/dlもそんなに難しくないような気がしてきた。 配列を無理に使おうとするから悪いんであって、PtrDataを使えばそうでもない。
てか、やっぱりドキュメントがよくわからんよね。
DL::Symbol#callとか、
結果は、戻り値 r やパラメータrs からなる。rs は配列。
rsは配列…って何!?という感じ。ソース読むまでわかんなかったよー。
mutable指定したポインタ型パラメータの関数呼び出し後の値の配列なわけね。 ここまでやってくれるとは、便利ですな。
と、ちゃんと理解すれば使えるのにドキュメントを読んでもよくわからないから使えないというのは損ですな。
あとWINAPI対応してないのも問題か。これが対応してないだけなら難しいし仕方無いで済むけど、そのわりにdl/win32.rbがあったり、Win32APIがdl/win32.rbで置き換えられる予定とか書かれているのは問題だろう。
ともあれ、wxHaskellのwxcは__stdcall指定が外されてるから、今のところ問題無いんだけどね。
Ridgeも進めたいなぁ。
Adobe Open SourceのAdamとかEveとか見るとやっぱりいいなぁとか思うんで。
Ridgeはある程度作り直そうかどうか迷ってる。
今の変なプロパティシステムがいまいちなのと、Beっぽいメッセージング機構を入れたいなー、と。
プロパティは文字列=>値の連想配列になっていたのがいまいちなので、シンボル=>値にしようかと。あんまり変わってないけど。
もうちょっと前までは普通の属性にしちゃおうかと考えていたんだけど、柔軟性を考えてやっぱりやめることにした。適当にいろいろ突っ込めるプロパティが無いとRidgeの意味が無いってのと、1.9系で
{:symbol => 'value'}
みたいなのが、
{sym: 'value'}
って書けるようになったので、それを有効活用できるようにしようかと思っただけ。
一応、以前からキーをシンボルにしようかと考えてはいたんだけど、シンボルだと日本語とか使えない*1ので文字列にしておいた。でも日本語にしないよな。普通。
Beっぽいメッセージングってのは実はもう半分入ってて、上記のプロパティがもともとそんな感じをイメージして作った。 でもあんまりBMessageっぽく無い。
イベントのハンドリングにそれっぽいのを使ったらいいのかもしれない。確かにイベントハンドラ周りも不満が残る場所ではあるな。
あとプログラムからプロパティの更新をする方法が綺麗にまとまっていない。ハッシュを与えてupdateみたいなのがいいのかな。でもそれは何か考えてやめたような。何だっけ?
今から大幅変更してもいいけど、ちょっと様子見かな。とりあえずruby/wxが上手く動くようになれば、それを使うし。ruby/wxがなかなか動かなくてもwxRubyのSWIG版リリースを待ちたい所だ。
*1 もしかして使える?でも使えても使いたく無いよな