Javascriptここ数日の有給休暇を使いJavascriptタワーディフェンスゲームを制作したので、その感想など。Javascriptはページに動作を付与する程度の使い方しかしてこなかったので、とても新鮮な体験となりました。作るだけなら他の言語と遜色なく使えます。ダックタイピングは高速なコーディングに役立ちました。課題は性能面と保守性でしょう。性能ではprototypeをきちんと使わないとメモリが無駄になるとかまとめて描画しないと遅いとか、「ならでは」の問題が面倒です。Javascriptの保守性は各方面で問題になっていますが、Googleが先鞭をつけていろいろやっているので次回は参考にしたいところです。すべての処理を1ファイルに書くには、処理どう構成すべきだったか従来書いていたような簡単な処理ならば問題になりにくかったのですが、ゲーム1本となるとより細かなコード構成の指針が必要だと感じました。具体的には、コードの巨大化に伴う無名関数内グローバル変数の増大が目立ってしまいました。ゲームを構成する要素を予め想定し、役割ごとにインスタンスを作っておくべきだったでしょう。今回は途中からユニットの描画を担うDrawerが登場したこともあり、無駄にややこしいコードとなってしまいました。専念するインスタンスを作成し、これらを協調動作させるゲームエンジンインスタンスから呼び出す形を明確にしておくべきだったかもしれません。contextを各インスタンスに隠蔽することができ、若干ですが読みやすくなります。};})();jsdo.itでは1ファイルしか扱えませんが、本来ならユニット定義を別ファイルに切り出したいところです。通信回数が増えることを考えるとベストとは言えません。開発段階では別ファイルとして扱い、配信段階でこれを結合するようなフローを考えるのが適切なのでしょう。マルチブラウザ対応の難しさそれこそ大昔から言われていることですが、APIが規定されているHTML5ですらマルチブラウザ対応の難しさは変わらないようです。書いたコードがOperaでのみ正常動作せず再現コードを書くなどの工程が必要になりました。Operaの不具合というわけではなく、引数省略時の動作が規定されていないことが原因です。一応MacBookでOpera・Chrome・Safari・Firefoxをひと通り試せていますが、IE+ExplorerCanvasはまだ試せていません。IEはOS縛りや複数バージョンでの確認が難しい点など、個人開発でサポートするには辛い面が多すぎる印象です。jsdo.it面白い今回の開発で初めてjsdo.itに触れました。立ち読んだ雑誌で紹介されていたので少し覗いてみた、くらいのノリでしたが、実際使い始めると頻繁に書込/更新されている多くのユーザが更新を確認しているforkされる/すると楽しいし勉強になるなど開発者向けサイトとして興味深い特徴を持っています。知的好奇心を満たすだけでなく、スキルの蓄積や新たな発見につながるところが素晴らしいです。JavascriptやHTML5、CSSに興味をお持ちの方はぜひ。私みたいに絵心のない人は自作ゲーで使う画像をゲーム素材から...2011-10-30HTML5ゲーム開発環境構築支援ツールを作った件testlingの登場によりQUnitを捨てる可能性が出てきたeller86で...2011-09-21canvasで3Dレーシング先週末の3連休で実装したゲームを9leapに投稿しました。