webMAGURO

Opalがなかなか面白いのでDXRuby互換インターフェイスを少し進めて、Fontクラス追加とちょこっとメソッド追加を行った。ついでにタッチインターフェイスも微妙に対応。
いまんところ試作レベルにも達していないので名前をつけるほどでもないのだが、とりあえずDXRuby/Opalとでも呼んでおこうか。

MAGURO対応

2013年のDXRubyAdventCalenderの土井ヴぃ(@vivit_jc)さんの記事でMAGUROというゲームが公開されていて、DXRuby的にはシンプルな作りだったのでこれぐらいなら動くのではないかということで、今回の修正のターゲットはMAGUROの動作である。
記事はこちら。http://vivit-jc.hatenablog.com/entry/2013/12/10/235354
ソースはこちら。https://github.com/vivit-jc/maguro

んで、結果がこちら。http://dxruby.sourceforge.jp/files/maguro/maguro.html

一応ChromeとIE11で動作を確認した。

感想

Canvasを使って画面を作っているが、DXRubyはGPUのパワーにおんぶにだっこな作りなのでこれでどこまでパフォーマンスが出るかがわからない。最終的にはWebGLにしたいところ。まあ、WebGLさっぱりわからんのだけども。
Imageをコードで生成している部分で画像の品質に差がある。コンテキストに対する描画はピクセル単位ではないようだ。これもよくわからない。
Opalでは整数同士の割り算の結果がFloatになるようで、マグロが売れる時間になるまでに腐ってしまってしばらく悩んだ。本家Rubyとの非互換性はきちんと把握しないと非常に辛いことになる。
ブラウザ上でデバッグするのは大変なので、アルゴリズム部分はローカルでDXRubyでテストして、Opalでブラウザに持っていけばそのまま動く、というのが理想ではあっても、現実的にはなかなか難しいらしい。
とはいえ、DXRuby用にRubyで書いたコードがほぼそのままコピペやJS変換でブラウザ上で動作するのであれば、多少の問題があったとしても差し引きでかなりプラスになる話なのではなかろうか。
どこまでできるかはわからんけど。