nsmryan / RustRoguelike

This Rust Roguelike is a Roguelike written in Rust.
17 stars 3 forks source link

Components #358

Open nsmryan opened 2 years ago

nsmryan commented 2 years ago

Game- configuration, gamedata, settings, rng, log, values, and input state

Procgen: WFC - from template file ProcGen commands - trivial names and numbers Maps are made from a MapLoadConfig (enum or with string)

InputActions: mostly trivial, interact has an option

Messages: Trivial, serializable/deserializable to simple strings

Libraries: roguelike_core: oorandom for randomness indexmap for entity system pathfinding for astar euclid for simple math symmetric-shadowcasting for base of FOV system serde for serialize/deserialize log/simple-logging/logging_timer for logging symbol - is this even used? I think its a string intern system

roguelike_engine: wfc_image - WFC generation from image, requires image as well

roguelike_main sdl2 in main gumdrop for simple cli bmp for screenshot

Notes: wfc, wfc_image, and image could be removed if there was a simpler WFC implementation is there any need for rexpaint any more? symbol interning is not really used. Possibly move render into engine, or split sdl into separate crate (possibly as a client to the roguelike_main). Any separate crates? DrawCmd crate that takes lines of drawcmd inputs? then test with TCL or something? Split utils into roguelike_utils. This should be small and not include ai, map, or other game logic. Use this in draw cmd crate for faster build times.

Components: SDL2 Events in main from keys InputActions in engine Messages into game, and out as a result DrawCmds can also be a result

nsmryan commented 2 years ago

Impressions should be entities.

Freeze AOE tiles if cursor over. This may remove some AoE calculations in display. Display uses AoE calculations for sound, which requires the map. Sound is available as individual tiles, but the sound animation collects them into a single effect.