DXRubyの今後とか

いまはとりあえずFreeRGSSをがんばっている。
でもDXRubyに飽きたとかそういうわけではない。
しいて言うなら、FreeRGSSは市販のライブラリに対して自分がどこまでやれるのか直接的に比較できる材料であり、Direct3Dで実装するという技術的なチャレンジであり、エンターブレインや期待してる人には申し訳ないが、俺にとってはワクワクする遊びなのだ。
これこそ趣味でものを作る、オープンソースの醍醐味、とも言える。もちろんやるからにはやり遂げたい。
それはさておき、とりあえずFreeRGSSで非常にいい経験ができていて、DXRubyを今後どうしていこうか、というのもいろいろと思うところがある。
DXRubyについて考える。


まずは擬似3D対応。
座標変換関連がネックになっていたが、FreeRGSSのViewportのクリッピングを、座標変換行列を自分で全部作ることで射影変換後のクリッピングにやらせることに成功した。
つまり座標変換の理屈はなんとか理解できたような気がするから、あとはインターフェイス周りを定めれば実現可能範囲だ。
それからピクセルシェーダ。
FreeRGSSのSpriteでflash、color、toneはピクセルシェーダで実装している。動かす方法はわかった。しかしこれはどのように有効活用すればいいのかがわからない。
他、文字列エンコード関連、小さいフォント描画の品質の改善はFreeRGSSでとりあえず実装してみようと思っている。
ついでにいろいろと不具合も発見しちゃってるので、これらもまとめて片付けるつもりだ。


それら個別のネタとは別に、もっと大きな話なども。
RGSSでは描画にSprite系オブジェクトが必須となっている。
DXRubyではWindow.draw系メソッドによる描画命令発行となるから、この部分が最も大きな違いだろう。
Spriteなどの描画プリミティブを実装する気は昔から、今でも無いわけだが、そういったものの便利さ、簡単さというのはよくわかった。
DXRubyはそのへんの仕組みを考えて作るところから楽しもう、という姿勢であるため、完成品のゲームを手軽に作るという目的には、微妙に即さない。
それはたとえば、Miyako本(2009/12/18に出る)の内容紹介にもある、
「(前略)簡単なものならいざしらず、他人にプレイしてもらうことを前提とした、きちんとした作品を制作するには、Miyakoのような強力なゲーム開発用ライブラリの存在が必要不可欠です。」
という話だ。


DXRubyはDirectXをラッピングする、Ruby的に最下層に位置するライブラリである。
だから、ゲームを作りやすくしようと思えば中間層のライブラリが必要になる。
DXRubyFraeworkとかも作っていたが、アレはちょっと方向性が違って速度第一だった。
でも、Spriteの自動描画などはRGSSでもそうであって、扱いやすさを重視する方向に舵を切りなおして、ゲームを簡単に作るためのクラス群を構成できれば、なかなか面白いものになりそうだ。
そんなことを考えるようになった。
来年あたりはそっち方向を強化してみようか。