Ebitengine (ebiten) をより強力かつ直感的に扱うためのゲーム開発ライブラリ群です。 ゲーム開発における共通のボイラープレートを排除し、ロジックの実装に集中できる環境を提供します。
クリーンなプロジェクト構造を保つため、各ライブラリのソースコードフォルダ内にはプログラムソースコードとテストコードのみを配置し、詳細なドキュメント類はすべて doc/ ディレクトリ配下に集約しています。
| コンポーネント | 役割 | 状態 |
|---|---|---|
| pad | アクションベースの入力抽象化&バーチャルパッド UI | Stable (v1.1.0) |
| scene | シーン管理・スタックベースのオーバーレイ制御 | Stable (v1.0.0) |
| physics | Arcade/Box2D のバックエンド切り替え式 2D 物理エンジン | Stable (v1.0.1) |
| emit | 軽量かつ型安全なイベントディスパッチャー/エミッター | Stable (v1.0.0) |
| asset | 画像・音声・データ・マップ等の一元管理マネージャー | Stable (v1.0.0) |
| sound | サウンド・BGM/SE/ボイス・2D音源制御マネージャー | Stable (v1.0.0) |
| save | フラット保存・暗号化・自動穴埋めスロットマネージャー | Stable (v1.0.0) |
| camera | 2Dカメラ・マルチカメラ・ビューポート・シェーダー制御 | Stable (v1.0.0) |
| tween | イージング&動的コントロール・グループアニメーション | Stable (v1.0.0) |
| ui | ゲームUI・9スライス・状態別画像ボタン・レイアウト | Stable (v1.0.0) |
| animation | スプライトアニメーション再生機・汎用JSON(Aseprite等)全自動読込 | Stable (v1.0.0) |
| tilemap | Tiled JSON自動インポート・カリング描画・3種マップ構成・範囲クエリ | Stable (v1.0.0) |
キーボード、ゲームパッド、マルチタッチによるバーチャルパッド(スティック・ボタン)を、ひとつの論理的な「アクション」として統合・抽象化します。1画面分割対戦のようなマルチプレイヤー(複数コントローラー)にも標準対応しています。
ゲームの各画面(タイトル、ステージ、メニューなど)を独立したコンポーネントとして分離管理します。シーンの上に一時停止画面を重ねる「オーバーレイスタック」機能を内蔵し、Ebitengine の画面遷移コードをクリーンに保ちます。
RPGやプラットフォーマー向けの軽量な Arcade(めり込み防止AABB)モードと、パズルゲーム等向けの本格的な Box2D(円や剛体物理)モードを同一のAPIでシームレスに切り替えて利用できる、Ebitengine 専用の物理ラッピングライブラリです。
Go のジェネリクスを活用した軽量・型安全なイベントディスパッチャーです。他ライブラリに一切依存せず単体で動作し、コンポーネント間や Tween などの一時的なアニメーションイベントの発行・受講・登録解除をシンプルに行えます。
Phaser 風のシンプルな操作感を提供するアセット管理ライブラリです。画像(単体・コマ割りスプライト)、音声、Tilemap マップデータ、アニメーション定義、JSON/TOML/YAML/CSV データの一括ロード、型安全な変換、キャッシュ解除を一元管理します。
Ebitengine 向けの直感的なサウンド管理ライブラリです。iota による柔軟なサウンドタイプ拡張(BGM, SE, Voice, Env, Custom)、クロスフェード、リアルタイムポジショナルサウンド(2D音源追従)、フェード制御の一括停止やポーズを一元管理します。
直感的で安全なセーブデータ管理ライブラリです。平文テキスト (JSON/YAML) やバイナリでの安全なサブディレクトリ保存、SaveNewSlot による削除済み欠番スロットの自動再利用穴埋め保存、AES 暗号化、改ざん検出、クラッシュ時のバックアップ自動復旧を一元管理します。
Ebitengine 向けの軽量・高機能な 2D カメラライブラリです。純粋な座標制御 (SetPos)、画面振動 (Shake)、境界制限 (Bounds)、cam.Render による外部ライブラリ (pad, physics) のクロージャ描画、ビューポート切り抜き、Custom Shader 自動切り替え、ZIndex 優先度によるマルチカメラ一括レンダリングを一元管理します。
安全で高機能なイージング&アニメーション補間ライブラリです。tween.New(&Option{...}).Play() による安全な定義と明示的再生開始、OnUpdate コールバック、個別の動的制御 (Pause, Resume, Restart, Stop)、Group によるカテゴリ別一括コントロール、豊富ないイージング関数を一元管理します。
直感的で拡張性の高い 2D ゲーム UI ライブラリです。9スライス (NineSlice)、状態別画像切り替えボタン (Button)、文字入力 (TextInput)、スクロール枠 (ScrollBox)、スライダー (Slider)、自動配置 (VBox/HBox)、全要素での統一ゲッター/セッター (SetPos/Pos, SetSize/Size, SetText/Text, SetGrayscale)、camera / pad オプショナル接続を一元管理します。
直感的な 2D スプライトアニメーション制御ライブラリです。手動でのコマ定義に加えて、Aseprite や TexturePacker などの汎用 JSON 形式からの全自動アニメーション構築に対応しています。Manager による一括制御/スローモーション演出と、各 Animator 単体での個別制御を両立しています。
Tiled Map Editor (.json / .tmj) の全自動インポート、2次元配列からのコード直接生成、3種類のタイルマップ構成 (StaticTilemap, AnimatedTilemap, InfiniteTilemap)、視域カリング描画 (DrawRegion)、範囲指定クエリ (GetArea)、物理 AABB 結合矩形算出 (CreateCollisionBoxes) を提供する完全独立ライブラリです。
MIT License