JS RPGゲームエンジンingenioJSのソースを読む
ingenioJSは、JavaScriptで記述されたRPGエンジン。
ingenioはスペイン語らしいが、作者はドイツ人のようだ。
ingenioJSはフィールド画面とメッセージの表示機能を提供している。
戦闘画面は提供していないが、フィールドで戦闘するタイプのRPGならエンジンの機能だけでできそうだ。
なお、ajaxを使用しているためサンプルゲームもjsdocもWEBサーバ経由でないと表示できない。
また、getElementsByClassName()などを使っているので、IEでは動かない。
ソースファイルは14ファイルで、非圧縮で計80.6KB。(ただしAudioEngineは含まず)
今のところRPGを作る予定は無いのだが、十分読めるサイズなのでソースコードを読むことにした。
キャラクターデータ、マップデータ、クエストデータをjsonファイルとして作成すると、エンジンが読み込んでゲーム画面を生成する。
マップデータには、プレイヤーから攻撃されたり話しかけられたりした際のアクションも含まれる。
jsonファイルは、ブラウザからajaxで読み込まれる。
マップデータのjsonファイルを作成するエディタも提供されている。

キャラクターの表示はDOMのCSSで制御している。Canvasは使用していない。
メインループはingenioJS.rendererのコンストラクタでwindow.setInterval()で実装している。
だが、clearIntervalしているところが見当たらない。ループを止めるためのidも取得していない。
メインループをingenioJS.engineで行っていないところは疑問だが、クラスの役割分担が綺麗だと思った。
外部ファイルを読み込んで画面を生成する部分は参考になるかなと思うが、自分にとってはマップ生成エディタのソースが一番参考になりそうな気がする。
ingenioはスペイン語らしいが、作者はドイツ人のようだ。
ingenioJSはフィールド画面とメッセージの表示機能を提供している。
戦闘画面は提供していないが、フィールドで戦闘するタイプのRPGならエンジンの機能だけでできそうだ。
なお、ajaxを使用しているためサンプルゲームもjsdocもWEBサーバ経由でないと表示できない。
また、getElementsByClassName()などを使っているので、IEでは動かない。
ソースファイルは14ファイルで、非圧縮で計80.6KB。(ただしAudioEngineは含まず)
今のところRPGを作る予定は無いのだが、十分読めるサイズなのでソースコードを読むことにした。
キャラクターデータ、マップデータ、クエストデータをjsonファイルとして作成すると、エンジンが読み込んでゲーム画面を生成する。
マップデータには、プレイヤーから攻撃されたり話しかけられたりした際のアクションも含まれる。
jsonファイルは、ブラウザからajaxで読み込まれる。
マップデータのjsonファイルを作成するエディタも提供されている。

キャラクターの表示はDOMのCSSで制御している。Canvasは使用していない。
メインループはingenioJS.rendererのコンストラクタでwindow.setInterval()で実装している。
だが、clearIntervalしているところが見当たらない。ループを止めるためのidも取得していない。
メインループをingenioJS.engineで行っていないところは疑問だが、クラスの役割分担が綺麗だと思った。
外部ファイルを読み込んで画面を生成する部分は参考になるかなと思うが、自分にとってはマップ生成エディタのソースが一番参考になりそうな気がする。
スポンサーサイト