dotzuki-engine 0.1.1

A general-purpose JRPG game engine built from Game Boy tile rendering principles
Documentation

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 GameData master 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)