ReC98 projesinde oyun mantığı C çalışma zamanından ayrıştırıldı
Öne çıkanlar
- VIVIT karakterinin yeniden doğuş evresinde 127 karelik negatif puan alma hatası tespit edildi.
- Oyunun tek bir rastgele sayı üreteci kullanması, görsel efektlerin mantık katmanında kalmasını zorunlu kıldı.
- Microsoft CRT sistemindeki sprintf bağımlılığı kaldırılarak 3,5 KiB boyutundaki hafif printf kütüphanesine geçildi.
PC-98 Touhou ve Seihou oyunlarının tersine mühendislik süreçlerini yürüten ReC98 geliştiricisi, Shuusou Gyoku oyununun mimari ayrıştırma adımlarını yayımladı. Proje kapsamında oyun mantığı ile görsel katman bağımsız hale getirildi. Kod analizi sırasında VIVIT karakterinin can kaybı sonrası yeniden doğma evresinde 127 karelik bir zaman aralığında negatif puan toplama hatasının varlığı tespit edildi. Yapılan incelemede oyunun yazı tipi sisteminde eksi işareti bulunmadığı ve bu durumun yıllarca fark edilmeden çalıştığı ortaya çıktı.
Geliştirici, oyun mantığını bağımsız bir kütüphaneye dönüştürmek için deterministik yapıyı inceledi. Shuusou Gyoku yapımının hem temel oyun dinamikleri hem de parçacık efektleri için tek bir sözde rastgele sayı üreteci (RNG) kullandığı belirlendi. Görsel efektlerin sayı üretecinden bağımsızlaştırılmasının mevcut oyun kayıtlarıyla (replay) uyumsuzluk yaratacağı anlaşıldı. Bu sebeple harita döşemeleri hariç tutulurken, parçacık ve animasyon alt sistemlerinin mantık katmanına dahil edilmesi zorunlu hale geldi.
Mikro mimaride bağımsız bir mantık DLL'i oluşturma hedefi doğrultusunda Microsoft C çalışma zamanı (CRT) bağımlılıkları incelendi. Skor ve yazı biçimlendirmesinde kullanılan sprintf fonksiyonunun işletim sistemi yerel ayarları ve kod sayfası dönüşümleri yüzünden gereksiz karmaşıklık getirdiği kaydedildi. Geliştirici, Microsoft'un CRT mekanizmasındaki eski kod sayfası davranışlarını kaldırmak adına 3,5 KiB boyutundaki hafif eyalroz/printf kütüphanesini projeye dahil ettiğini bildirdi.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.