Red Alert 2 Yuri's Revenge — rebuilt from scratch in Rust
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.
sim/ — tüm oyun durumu ve deterministik oyun mantığı.render/ — wgpu tabanlı render motoru.app/ — pencere, girdi, yükleme ve kaydetme; sim, render, ui, audio ve net’i birbirine bağlar.ui/ — menüler, iletişim kutuları, oyun içi ekranlar ve yan panel.audio/ — ses efektleri ve müzik.net/ — deterministik lockstep. Henüz ağ aktarım katmanı yok.rules/ — orijinal oyunun INI dosyaları ve katmanları.map/ — haritalar, ortamlar (theaters), arazi, tetikleyiciler ve rastgele harita oluşturucu.assets/ — orijinal dosya biçimleri için ayrıştırıcılar (.mix, .shp, .vxl, .pal, Bink videoları ve daha fazlası).util/, asset_tools/ ve bin/ — ortak yardımcılar, varlık inceleme araçları ve ek programlar.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.
Aynı durum, girdiler ve rastgele tohum her platformda ve her işlemcide aynı sonucu vermelidir.
SimFixed türünü tercih eder.Her kare, lockstep çok oyunculu modun dayanacağı bir durum hash’iyle biter.