先週末の3連休で実装したゲームを9leapに投稿しました。canvasを使った3Dレーシングです。
本ゲームの特徴はcanvasで3Dを描画しているところでしょう。とは言えcanvasで3Dを描画すること自体はそこまで珍しくなく、例えばjsdo.itにも数多くの作品が公開されています。ゲームというインタラクティブなコンテンツにマルチプラットフォームな3Dをチョイスすることでオリジナルなユーザーエクスペリエンスをクリエイトしたのが新しいんです。たぶん。
さて古くから私のプログラムをご覧いただいている方は、このワイヤフレーム表示にピンと来るかもしれません。今回のゲームでは、sprocket氏が公開されているHSP向けモジュールd3m.hspをJavaScript向けに移植したものを利用しています。sprocket氏がモジュールの再利用を許してくださっているからこそ、このゲームが生まれたと言えるでしょう。
移植したものは以下においてあります。canvasのAPIしか使っていないので、enchant.jsなど外部ライブラリとの連携も容易と思われます。まだインタフェースがJavaScriptに適していない面もあるのですが、よろしければご覧いただければと思います。
今回はじめてcoffeescriptを使いましたが、引数のデフォルト値を設定できたり変数の値交換が1行でできたりと細かい所で便利なのがいいですね。コンパイルの--watch, --join, --nodesオプションとかも気に入りました。特にjoinはアプリケーションの速度を大幅に向上してくれるでしょう。
もちろんJSでもYUI Compressorを使って圧縮・結合すれば良い話ですが、わざわざツールを引っ張り出さなくともいいというのが嬉しいです。今後ライブラリを書く際には積極的に使おうと思います。