Expand description
Deterministic 60Hz fighting-game simulation.
The sim is a pure function of (World, InputFrame, InputFrame) -> World.
No rendering, no wall clock, no floats in the game state, no filesystem.
That is the contract a later rollback netcode layer will need.
Re-exports§
pub use chars::Character;pub use chars::CharacterId;pub use chars::GaugeDef;pub use fighter::Action;pub use fighter::Connect;pub use fighter::Fighter;pub use fighter::Stance;pub use fighter::CANCEL_LATE_FRAMES;pub use fighter::FEINT_RECOVERY;pub use fighter::GETUP_FRAMES;pub use fighter::KNOCKDOWN_FRAMES;pub use fighter::METER_MAX;pub use fighter::PREJUMP;pub use fighter::RC_COST;pub use fighter::RC_FREEZE_FRAMES;pub use fighter::THROW_TECH_WINDOW;pub use geom::px;pub use geom::Aabb;pub use geom::LocalBox;pub use geom::Vec2i;pub use geom::SUB;pub use geom::TICK_HZ;pub use input::stick_to_dir;pub use input::Btn;pub use input::Buttons;pub use input::Chord;pub use input::InputFrame;pub use input::Motion;pub use moves::HitLevel;pub use moves::MoveDef;pub use moves::MoveId;pub use moves::ProjectileClass;pub use moves::ProjectileKind;pub use moves::ShotBehavior;pub use moves::ThrowKind;pub use versus::Match;pub use versus::Phase;pub use versus::ROUNDS_TO_WIN;pub use world::CombatEvent;pub use world::DummyMode;pub use world::EventKind;pub use world::Projectile;pub use world::RoundOutcome;pub use world::ShotState;pub use world::World;pub use world::ROUND_TIME;pub use world::STAGE_W;
Modules§
- chars
- collision
- Pushboxes, hit/hurt tests, projectile collisions, throw law.
- fighter
- Per-fighter state machine.
- geom
- Integer geometry. All match units are subpixels (256 per pixel). The sim never touches floats so a later rollback layer can hash state.
- input
- Per-tick input, a short ring buffer, and motion detection.
- moves
- Frame data and move identity.
- versus
- Versus match: intro → fight → round end → next round, first to two. Pure and deterministic like the world it wraps.
- world
- Match world: two fighters, projectiles, hitstop, events. One round.