Skip to main content

Crate aeon_fighter

Crate aeon_fighter 

Source
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.