Odin.jsはJavaScript製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。

Webブラウザを使ったHTML5ゲームがどんどん増えています。それに合わせて関連のフレームワークやライブラリも増えています。今回はその一つ、2D系のゲームに向けて作られたOdin.jsを紹介します。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.20.52_thumb.1373331083.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.20.52.1373331083.png)
デモです。矢印キーでキャラクターを動かしたり、ADキーで板を傾けられます。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.18_thumb.1373331088.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.18.1373331088.png)
傾けると、キャラクターが転がっていきます。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.26_thumb.1373331093.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.26.1373331093.png)
おっとっと。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.37_thumb.1373331098.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.37.1373331098.png)
こちらは物理エンジンのデモ。多数のキャラクターが落下していきますが、ほぼ60fpsでスムーズに描画されます。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.58_thumb.1373331104.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.21.58.1373331104.png)
拡大もできます。キャラクターが四角と丸い枠に収まっているのが分かるでしょうか。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.22.21_thumb.1373331111.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.22.21.1373331111.png)
こちらはたくさんのオブジェクトを描画しているデモ。これもまたスムーズに描画されます。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.22.55_thumb.1373331117.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.22.55.1373331117.png)
いわゆるニュートンのゆりかごのデモ。本物ほどスムーズではないですが、オブジェクト同士の関連性は描けているんじゃないかと思います。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.23.15_thumb.1373331121.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.23.15.1373331121.png)
二人のキャラクターが干渉するデモ。ぶつかったりできます。

[![](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.23.37_thumb.1373331127.png)](http://images.moongift.jp/2013/07/Screenshot 2013-07-08 8.23.37.1373331127.png)
矢印キーでの移動がキャラクターの向いている方向ではなく、画面上の方向なのでちょっとした宇宙遊泳気分です。

Odin.jsはHTML5のCanvasとWebGLを使ったゲームエンジンになります。完全にクライアントサイドだけで動くのではなく、コードはnode.jsで描くのが特徴的です。

MOONGIFTはこう見る

ゲーム開発において難点になりがちなのがサーバとの連携部分ではないかと思います。だからこそOpenFeintやiOSのGame Center、AndroidのPlay Gamesに注目が集まるのでしょう。ゲームによくありがちな機能を提供してくれれば、開発者はクライアントサイドの開発に専念できます。

HTML5においてもそれは変わらないと言えます。サーバサイドとどう連携をとるかによってゲーム自体の広がりも変わってくるでしょう。Odin.jsのように予め組み込まれていると測定したり、ログを取ったりするのが楽になるかも知れません。

Odin.js

lonewolfgames/Odin.js