Emperor: Battle for Dune restorasyon projesi
Emperor: Battle for Dune nedir?
- 2001'de Westwood Studios tarafından geliştirilen bir gerçek zamanlı strateji oyunu
- Dune 2000'in devam oyunu; 3D grafikler, iyileştirilmiş UX ve güçlü bir soundtrack ile öne çıkıyor
- Günümüzde pek bilinmiyor
Sorunlar
- Modern sistemlerde yüksek çözünürlük desteği yok
- Çok oyunculu modda oyun hızı aşırı artarak oynanamaz hale geliyor
- Westwood Online(WOL) çalışmadığı için LAN dışında çok oyunculu oyun mümkün değil
- Senaryo modu eşli modda oynanamıyor
- Kurulum programı bozuk
- Yüksek kare hızı nedeniyle görsel efektler bozuluyor
Sorunların çözümü
Emperor.exe yerine geçen ve Game.exeyi kontrol eden bir program yazıldı
- DLL enjekte edilerek yamalar uygulandı
Yama enjeksiyonu
CreateRemoteThread ve LoadLibrary tekniği kullanılarak Game.exe içine kod enjekte edildi
- Mevcut işlevleri değiştirmek için
detours kütüphanesi kullanıldı
Grafik yamaları
Yüksek çözünürlüklü pencere
- Çözünürlük sorununu gidermek için UCyborg'un LegacyD3DResolutionHack yaması kullanıldı
- 4:3 oranını korumak için letterbox eklendi
Kare hızı sınırı
- FPS'yi 60 ile sınırlamak için
IDirect3DDevice7::EndScene metodu yamalandı
Ağ yamaları
- Çok oyunculu işlevi geri getirmek için WOL modu kullanıldı
- Tüm iletişimi tek bir istemci-sunucu bağlantısı üzerinden tünellemek için
winsock araya alınarak kullanıldı
IRC sunucusu yazımı
- WOL ana sunucusunun yerine temel bir IRC sunucusu geliştirildi
Paketleme
Kurulum programının değiştirilmesi
- Orijinal kurulum programı bozuk olduğu için yeni bir kurulum aracı yazıldı
- v1.09 yaması uygulandı
Westwood Online paylaşımlı internet bileşenleri
- WOL işlevini geri getirmek için
WOLAPI.DLL, COM sınıf kütüphanesi olarak kaydedildi
Başlatıcı arayüzü
- Basit ayarların değiştirilebildiği temel bir başlatıcı arayüzü yazıldı
Sonuç
- Hedefe ulaşıldı ve Emperor: Battle for Dune artık modern sistemlerde sorunsuz çalışabiliyor
- Eşli senaryo modu dahil çok oyunculu özellikler geri getirildi
GN⁺ Özeti
- Bu proje, eski bir oyunun modern sistemlerde yeniden oynanabilmesini sağlayan önemli bir kültürel koruma çalışması
- Teknik açıdan ilgi çekici zorluklar çözülmüş; özellikle grafik ve ağ sorunlarını ele alma süreci dikkat çekici
- Benzer işlevler sunan projeler arasında dxwrapper gibi DirectX wrapper projeleri de bulunuyor
1 yorum
Hacker News görüşleri
Emperor: Battle for Dune archive.org üzerinden indirilebiliyor
Bu oyun RTS türü açısından büyük önem taşıyor
Westwood Online (WOL) artık çalışmıyor
10 yıl önce Tiberian Sun'ın ağ kodunu yamalama deneyimi paylaşılmış
Yazarın eğlenceli ve zeki biri olduğu hissi veriyor
CnCNet ile entegrasyon olasılığı öneriliyor
"28.8 BPS modem" ifadesine tepki
Blog yazılarında sık görülen "Ben usta bir reverse engineer değilim" ifadesine tepki
Çok ilginç ve derinlikli bir yazı için teşekkür ediliyor
UI tasarımına duyulan tutku dile getiriliyor