Crate issun

Crate issun 

Source
Expand description

ISSUN (一寸) - A mini game engine for logic-focused games

Build games in ISSUN (一寸) of time - typically 30 minutes to 1 hour.

§Quick Start

use issun::prelude::*;

fn main() {
    Issun::builder()
        .with_title("My Roguelike")
        .with_turn_based_combat(|combat| {
            combat.with_ai(SmartAI)
        })
        .run();
}

§Features

  • System Plugins: Reusable game systems (80% reuse, 20% customize)
  • Scene/Context Architecture: Clean separation of persistent and transient data
  • Auto-generated Title Screens: FIGlet integration + preset ASCII art
  • TUI Support: Play over SSH, no GUI needed
  • Built-in Save/Load: Automatic serialization with Serde

Re-exports§

pub use async_trait;

Modules§

asset
Asset system for ISSUN
builder
Game builder for ISSUN
context
Game context for ISSUN
engine
Engine modules for ISSUN
entity
Entity system for ISSUN
error
Error types for ISSUN
event
Type-erased, buffered event bus for decoupled communication between systems.
modding
MOD System for ISSUN
plugin
Plugin system for ISSUN
prelude
replay
Event recording and replay for deterministic reproduction
resources
Resource Registry for global read-only data
scene
Scene system for ISSUN
service
Service system for ISSUN
state
State management for game runtime state
storage
Storage and save/load system for ISSUN
store
In-memory store for entities and game objects
system
System trait for ISSUN
trace
Event chain tracing for debugging and visualization
ui
UI modules for ISSUN

Macros§

call_hook_traced
Hookをトレース付きで呼び出すマクロ
collect_events
Convenience macro for collecting events from an EventBus into a Vec.
drive
Drive macro for rendering components with automatic error handling
drive_to
Render components to specific areas with automatic error handling
event
Function-like macro that declares ISSUN events with common derives.
resource_guards
Helper macro for creating multiple ResourceGuards at once

Attribute Macros§

auto_pump
Attribute macro that injects pump_event_systems calls before/after input handlers.
event_handler
Attribute macro that generates process_events for systems reacting to events.

Derive Macros§

Asset
Derive macro for Asset trait
Entity
Derive macro for Entity trait
Plugin
Derive macro for Plugin trait
Resource
Derive macro for Resource trait
Scene
Derive macro for Scene trait
Service
Derive macro for Service trait
System
Derive macro for System trait