Expand description
§dotzuki-engine
Core trait definitions for a JRPG engine framework.
This crate defines the foundational abstractions that any JRPG engine implementation must provide. It has zero dependency on specific game data — all types are generic associated types or marker traits that the implementing crate supplies.
§Design Philosophy
The traits in this crate follow these principles:
- Generic over game data: No concrete game-specific, item, or move types.
All identifiers are associated types bounded by
Copy + Eq + Hash + Debug. - Provider pattern: Data providers (tilesets, maps, palettes, tile
metadata, render data) are obtained through a single
GameDatamaster trait, enabling dependency injection and testing. - No I/O, no platform: This crate contains only trait definitions and simple data types. No file loading, no GPU code, no platform calls.
§Modules
| Module | Contents |
|---|---|
tileset | TilesetTrait and TilesetProvider — tileset loading and querying |
tile_meta | CollisionType, TileMetaTrait, TileMetadata — collision and terrain |
tilemap | TilemapEntry, Tilemap — 16-bit tilemap with per-tile metadata |
map | MapTrait, MapProvider, MapConnection — map data and connections |
palette | PaletteTrait, PaletteProvider — colour palette lookups |
render_data | RenderData — display-name and metadata lookups for moves, items, species |
save | SaveData, SaveManager, SaveStorage, SaveError — save/load with CRC16 |
link | NetworkTransport<M>, TransportError, ChannelTransport<M>, LinkRole — game-agnostic link-play transport seam (zero-I/O) |
Modules§
- battle
- Battle system trait definitions for a JRPG engine framework.
- camera
- Camera system — viewport positioning with smooth follow, zoom, and boundary clamping.
- items
- Items module
- link
- Link-play transport seam — game-agnostic and zero-I/O.
- map
- menu
- Menu system abstractions for JRPG engine.
- metatile
- metatile
- overworld
- Overworld systems, in two tiers — pick the one that matches the game:
- palette
- party
- Generic, game-agnostic party / monster model (milestone P0a).
- render
- Map layer definitions, rendering state, colour types, geometry types, and the pixel framebuffer.
- render_
config - Render configuration for the engine.
- render_
data - save
- Save system for JRPG engine.
- text
- text
- tile_
meta - tilemap
- Game Boy Advance-style tilemap with 16-bit metadata per tile.
- tileset
- trigger_
manager - trigger_manager
Macros§
- effect
- Declarative effect builder (design §4.1). Expands to an
Effectwhosehooksis a&'staticslice ofEventHooks. Usable anywhere anEffectexpression is expected (incl. the initializer of aconst/static).
Traits§
- Game
Data - Master trait that provides access to all game data subsystems.