VERA20k

Red Alert 2 Yuri's Revenge — rebuilt from scratch in Rust

View the Project on GitHub YuriPlanet/vera20k

VERA20k

Svenska · 简体中文 · Deutsch · العربية · Русский · ไทย · Türkçe · English

Red Alert 2: Yuri’s Revenge — omskrivet från grunden i Rust.

En kort karta över koden. Om den säger emot koden är det koden som gäller. Kommentaren //! i början av varje modul beskriver vad modulen gör och vad den får bero på.

Koden

Hur delarna hänger ihop

Allt föränderligt speltillstånd ligger i en enda struct, Simulation (src/sim/world/mod.rs). SimRuntime::advance_frame() kör en bildruta i samma ordning som originalspelet.

Appen gör om spelarens inmatning till kommandon för simuleringen. Efter varje bildruta lämnar den det nya tillståndet till renderaren och spelar upp ljuden som bildrutan gav upphov till. Renderingen läser bara simuleringens tillstånd, och sim/ är aldrig beroende av render/, ui/, audio/ eller net/.

Determinism

Samma tillstånd, inmatning och slumpfrö måste ge samma resultat på varje plattform och processor.

Varje bildruta avslutas med en tillståndshash som flerspelarläget med lockstep kommer att bygga på.