jgame.jsは標準的な構成以外に、いくつかのモジュールによる機能拡張をサポートしています。
version 0.4現在、まだ貧弱なモジュール機能しか無いため新規モジュールの開発を推奨出来る状態ではありませんが、既存のモジュールを利用して特別な機能を付与させる事は出来ます。
jgb2というモジュールを利用する事で、box2dによる物理エンジンをjgame.jsに取り込む事が可能です。
https://github.com/tsugehara/jgb2
動作にはbox2dwebが別途必要になります。
jgb2はサンプルにも収録されている、jgame.jsで一番最初にサポートされたモジュールであり、一番期待されているモジュールでもあります。
モジュールの利用を検討する場合、まずこのモジュールを試験的に導入してみるのがいいでしょう。
ImageFilterというモジュールを利用する事で、描画した内容の加工が出来るようになります。
ver1.0現在jgame.js本体に結合されています。追加ダウンロードの必要はありません。詳しくはAPIリファレンスをご覧ください。
ImageFilterモジュールはblurやグレースケールといった、一般的な画像加工の手段を提供します。
jgengineというモジュールを利用する事で、基本的なゲームエンジン部分を置換したゲームが作れるようになります。
https://github.com/tsugehara/jgengine
フレーム単位でゲームを管理したい、描画ループとメインループを別にしたいといった要望に応えます。
また、Gmaeクラスの継承方法のサンプルとしても活用出来ます。
BMLというモジュールを利用する事で、弾幕シューティングで利用する弾丸をjgame.js内に呼び出すことが出来ます。
https://github.com/tsugehara/BML
これは、bulletml.jsをjgame.jsに移植したものです。
BMLは元々jgame.jsのパフォーマンス検証用として作られました。以下のサンプルが、jgame.jsとBMLモジュールによって実装されています。
http://tsuge.sub.jp/jgame.js/BML/index.html
Rader AIというモジュールを利用する事で、逐次実行とレーダーによる基本的なAIのひな形をjgame.jsに取り入れる事が出来ます。
https://github.com/tsugehara/rader-ai
Rader AIモジュールはあくまでもAIのひな形であるため、ゲームに関する情報や、AIが思考した結果の行動結果などはゲーム側で作る必要があります。
AIについてすでにある程度知識がある開発者向けのモジュールです。
gl2dというモジュールを使うとwebglで描画出来るようになるといいですね。
https://github.com/tsugehara/gl2d
残念ながら完成していません。
jgame.js専用のモジュール以外に、いくつか利用を推奨しているライブラリもあるため、下記にて簡単に紹介します。