基本理念
このエンジンはFogrexが開発しているゲームエンジンです。このエンジンを制作するにあたり、次の3つの基本理念を掲げています。
ゲームに必要な機能がすべて統合されたエンジンであること
このエンジンは、ゲーム開発に必要な機能がすべて統合されたエンジンであることを目指しています。 具体的には、次のような機能を揃えることを目指します。
- データローダー
- 入力システム
- グラフィックスエンジン
- サウンドエンジン
- 当たり判定機能
- 基本となるレベルシステム
- キャラクターシステム などなど...
これらはゲームを制作するうえで必要不可欠なものです。これらの機能を一つのエンジンとしてパッケージングして相互の連携を強化することで、ゲーム開発の効率を向上させることを目指しています。
型安全であること
このエンジンでは、TypeScriptを利用して高度に型付けを行っています。 例えば、StaticLoaderでは、ロードするデータのリストが実行前に確定しているという仮定を元に、そのリストを型として定義しています。 これにより、ロードされたデータを取得する際に、キーに対応する型 が返却されることが保証されます。
このように高度な型設計により、JavaScript特有の、型が不安定であることによるバグを防ぐことができます。
ゲームを作ることに特化すること
一つ目にも共通することですが、このエンジンはゲームを作ることを念頭に開発しています。NPMで配布されているグラフィックスライブラリ等は、汎用的な目的で作られていることがほとんどです。そして、それをどのように使ってゲームとして組み上げていくかは開発者に大きく依存しています。 Bubble Engineでは、ゲームに必要な機能を選択肢て実装することを目指しています。