New Contributor Start
Welcome. EchoWarrior is a Rust-native 2D survivors-like prototype with a strong bias toward moddable, data-driven gameplay.
This page is the first-hour path for a new contributor.
First Hour
Section titled “First Hour”- Install Rust and confirm Cargo works:
cargo --versionrustc --version- From the repository root, check that the project builds:
cargo check- Run the prototype once:
cargo run-
Skim Visual Orientation so the main screens, debug surfaces, and scene UI have names before you read deeper architecture pages.
-
Read the short project map:
README.mdAI_CONTEXT.mdDocs/TECHNICAL_NOTES.mdTODO.md
- Pick one small contribution and find the right route in Change Routes.
What Kind Of Project Is This?
Section titled “What Kind Of Project Is This?”EchoWarrior is not only a playable prototype. It is also an architecture experiment for a moddable action roguelite.
That means code changes should usually support at least one of these goals:
- make game behavior data-driven
- keep pure gameplay logic testable without a renderer
- keep runtime rendering/input/audio contained in
src/runtime - make release asset packaging reliable
- make modding easier to understand
- improve readability, feedback, or first-run feel
Mental Model
Section titled “Mental Model”Assets/ and Mods/ -> data, dialogue, scripts, shaders, audio, metadata
src/data, src/game, src/ui, src/save, src/scripting -> shared library code, ideally renderer-agnostic
src/runtime -> Macroquad-specific playable prototype
src/bin -> tools contributors run before shipping content or releasesGood First Changes
Section titled “Good First Changes”Good first contributions are usually:
- documentation fixes
- small mod data examples
mod_checkdiagnostics improvements- focused tests around pure
src/gameorsrc/databehavior - small UI text/layout fixes driven from
Assets/Data/ui.toml - asset-pack discoverability fixes
Avoid starting with:
- broad rewrites of
src/runtime/mod.rs - new dependencies
- new renderer frameworks
- new choreography systems
- hardcoded stats or content that should live in
Assets/
Project Rules That Matter Early
Section titled “Project Rules That Matter Early”- Gameplay values belong in data files when practical.
src/gameandsrc/datamust not import Macroquad.- Missing/malformed content should degrade gracefully.
- Runtime-loaded assets must be included by asset-pack discovery.
- One YAML file per NPC.
- Use the existing choreography engine for scene beats.
Where To Ask “Where Does This Go?”
Section titled “Where To Ask “Where Does This Go?””Use Change Routes. If a change does not fit any route, it may need a design note before code.