Kengo's blog

Technical articles about original projects, JVM, Static Analysis and TypeScript.

canvasで3Dレーシング

先週末の3連休で実装したゲームを9leapに投稿しました。canvasを使った3Dレーシングです。

本ゲームの特徴はcanvasで3Dを描画しているところでしょう。とは言えcanvasで3Dを描画すること自体はそこまで珍しくなく、例えばjsdo.itにも数多くの作品が公開されています。ゲームというインタラクティブなコンテンツにマルチプラットフォームな3Dをチョイスすることでオリジナルなユーザーエクスペリエンスをクリエイトしたのが新しいんです。たぶん。


さて古くから私のプログラムをご覧いただいている方は、このワイヤフレーム表示にピンと来るかもしれません。今回のゲームでは、sprocket氏が公開されているHSP向けモジュールd3m.hspJavaScript向けに移植したものを利用しています。sprocket氏がモジュールの再利用を許してくださっているからこそ、このゲームが生まれたと言えるでしょう。
移植したものは以下においてあります。canvasAPIしか使っていないので、enchant.jsなど外部ライブラリとの連携も容易と思われます。まだインタフェースがJavaScriptに適していない面もあるのですが、よろしければご覧いただければと思います。


今回はじめてcoffeescriptを使いましたが、引数のデフォルト値を設定できたり変数の値交換が1行でできたりと細かい所で便利なのがいいですね。コンパイルの--watch, --join, --nodesオプションとかも気に入りました。特にjoinはアプリケーションの速度を大幅に向上してくれるでしょう。
もちろんJSでもYUI Compressorを使って圧縮・結合すれば良い話ですが、わざわざツールを引っ張り出さなくともいいというのが嬉しいです。今後ライブラリを書く際には積極的に使おうと思います。