Skip to content

Latest commit

 

History

History
107 lines (61 loc) · 5.62 KB

File metadata and controls

107 lines (61 loc) · 5.62 KB

ebiten

日本語

A suite of game development libraries designed to make working with Ebitengine (ebiten) more powerful and intuitive. It provides an environment where you can focus on implementing your game logic by eliminating common boilerplate code in game development.

To maintain a clean module architecture, all documentation files are centralized under the root doc/ directory, keeping library package folders clean with only pure Go source code and unit tests.

Components Provided

Component Role Status
pad Action-based input abstraction & virtual pad UI Stable (v1.1.0)
scene Scene management & stack-based overlay control Stable (v1.0.0)
physics 2D physics engine wrapper with interchangeable Arcade/Box2D backends Stable (v1.0.1)
emit Lightweight & type-safe event dispatcher / emitter Stable (v1.0.0)
asset Unified manager for images, audio, data, and map assets Stable (v1.0.0)
sound Sound manager for BGM/SE/Voice & 2D positional audio Stable (v1.0.0)
save Flat & encrypted save data manager with auto-hole fill slots Stable (v1.0.0)
camera 2D camera, multi-camera, viewport & custom shader controller Stable (v1.0.0)
tween Easing, dynamic animation control & group animation manager Stable (v1.0.0)
ui 2D game UI with 9-slice, state buttons, scrollboxes & layout Stable (v1.0.0)
animation 2D sprite animator & generic JSON (Aseprite, etc.) auto-loader Stable (v1.0.0)
tilemap Tiled JSON auto-importer, viewport culling, 3 map types & area queries Stable (v1.0.0)

Component Overview

pad (Input Management)

Integrates and abstracts virtual pads (sticks and buttons) via keyboard, gamepad, and multi-touch into single logical "actions". It natively supports multiplayer (multiple controllers) setups, such as split-screen local multiplayer.

Learn more

scene (Scene Manager)

Manages each screen of the game (title, stage, menu, etc.) separately as independent components. It includes an "overlay stack" feature that allows pausing and layering screens, keeping Ebitengine's screen transition code clean.

Learn more

physics (Common Physics Engine)

A dedicated physics wrapping library for Ebitengine that allows you to seamlessly switch between a lightweight Arcade mode (AABB collision without penetration) for RPGs or platformers, and a full-fledged Box2D mode (circles and rigid body physics) for puzzle games and more, using the exact same API.

Learn more

emit (Event Dispatcher)

A lightweight and type-safe event dispatcher powered by Go generics. Operates independently with zero external dependencies, making event emission, listening, and unsubscription seamless.

Learn more

asset (Asset Manager)

An asset management library providing Phaser-like intuitive API. Manages single images, spritesheets, audio, tilemaps, animation definitions, and JSON/TOML/YAML/CSV data loading, type-safe conversion, and cache management.

Learn more

sound (Sound Manager)

Intuitive sound management library for Ebitengine. Features flexible sound type expansion (BGM, SE, Voice, Env), crossfading, real-time 2D positional sound tracking, and bulk fade/pause controls.

Learn more

save (Save Data Manager)

Intuitive and secure save data manager. Features plain text / binary sub-directory saving, automatic slot reuse (SaveNewSlot), AES encryption, tamper detection, and crash auto-recovery.

Learn more

camera (2D Camera Manager)

Lightweight and feature-rich 2D camera library. Supports pure position control (SetPos), screen shake, bounds clamping, closure rendering (cam.Render), viewport clipping, custom shaders, and multi-camera Z-indexing.

Learn more

tween (Easing & Interpolation)

Safe and feature-rich easing & interpolation library. Provides explicit Play() control, OnUpdate callbacks, individual dynamic methods (Pause, Resume, Stop), group controls, and extensive easing functions.

Learn more

ui (Game UI Components)

Intuitive 2D game UI library. Features 9-slice rendering, state buttons, text inputs, scroll boxes, sliders, auto-layout containers (VBox/HBox), unified getters/setters, and optional camera / pad integration.

Learn more

animation (Sprite Animation)

Intuitive 2D sprite animation library. Supports manual frame definitions as well as fully automatic clip generation from generic JSON formats (Aseprite, TexturePacker). Features Manager for batch control / slow-mo and Animator for individual control.

Learn more

tilemap (2D Tilemap Manager)

Fully independent 2D tilemap library. Features Tiled JSON auto-import, code-first 2D array generation, 3 tilemap types (StaticTilemap, AnimatedTilemap, InfiniteTilemap), viewport culling (DrawRegion), area queries (GetArea), and AABB collision box generation (CreateCollisionBoxes).

Learn more


License

MIT License