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 — Rust ile sıfırdan yeniden yazıldı.

Bu sayfa kodun kısa bir haritasıdır. Kodla çelişirse doğru olan koddur. Her modülün başındaki //! yorumu, modülün ne yaptığını ve nelere bağımlı olabileceğini açıklar.

Kod

Parçalar nasıl birleşiyor

Değişebilen tüm oyun durumu tek bir yapıda tutulur: Simulation (src/sim/world/mod.rs). SimRuntime::advance_frame() bir kareyi orijinal oyunun kare sırasıyla çalıştırır.

Uygulama, oyuncu girdisini simülasyon için komutlara dönüştürür. Her kareden sonra yeni durumu render motoruna verir ve o karenin ürettiği sesleri çalar. Render işlemi yalnızca simülasyon durumunu okur; sim/ ise hiçbir zaman render/, ui/, audio/ veya net/ modüllerine bağımlı değildir.

Determinizm

Aynı durum, girdiler ve rastgele tohum her platformda ve her işlemcide aynı sonucu vermelidir.

Her kare, lockstep çok oyunculu modun dayanacağı bir durum hash’iyle biter.