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

《红色警戒2:尤里的复仇》——用 Rust 从零重写。

这是一份简短的代码导览。如果它与代码不一致,以代码为准。每个模块开头的 //! 注释写明了它的用途和可以依赖的模块。

代码结构

各部分如何协作

所有可变的游戏状态都放在同一个结构体 Simulation(src/sim/world/mod.rs)中。SimRuntime::advance_frame() 按原版游戏的帧顺序运行一帧。

应用层把玩家输入转换成发给模拟的命令。每帧结束后,它把新状态交给渲染器,并播放这一帧产生的声音。渲染只读取模拟状态,而 sim/ 从不依赖 render/、ui/、audio/ 或 net/。

确定性

相同的状态、输入和随机种子,在任何平台和 CPU 上都必须得到相同的结果。

每帧结束时都会生成一个状态哈希,今后的锁步多人对战将依赖它。