- 2023'te yeniden yayımlanan Quake II, sunucu ile oyun modülleri arasındaki iletişim için yeni bir API, yeni bir ağ protokolü ve geliştirilmiş modlama olanakları için yeni bir "istemci oyun" modülü sundu.
- Güncellenmiş kod tabanı, orijinal oyunun ayrı oyun modüllerini birleştiriyor ve C++17 derleyicisi gerektiriyor.
- Oyun DLL'leri Clang, VS2019 ve VS2022 ile uyumludur; hem C++17 hem de C++20 ile derlenebilir.
- Yeniden sürüm, orijinal 10hz'e kıyasla daha iyi oynanış deneyimi ve hassasiyet sağlayan 40hz tick rate desteği sunar.
- Oyun DLL'leri artık fonksiyonlarda varargs kullanmıyor; biçimlendirme sorumluluğu çağırana aktarılıyor.
- Yeniden sürüm, matematik fonksiyonlarındaki değişiklikler dahil işleri kolaylaştıran iyileştirmeler içeriyor; uygun yerlerde
constexpr ve operator overloading kullanılıyor.
- "Bir entity'nin bir frame içinde istemciye görünür olup olmadığı" yöntemindeki değişiklikler arasında split-screen desteği ve ses zayıflama culling'i yer alıyor.
- Yeniden sürüm, genişletilmiş modlama fırsatları sunuyor; ancak büyük yapısal değişiklikler nedeniyle mevcut modların yeni kod tabanına uyacak şekilde yeniden yazılması gerekebilir.
- Oyuncu hareketi düzeltilerek, oyun modülünün fiziği değiştirirken istemci tahminiyle birlikte çalışabilmesi sağlandı.
- Configstrings güncellendi; maksimum uzunluk 64'ten 96'ya çıkarıldı ve belirli aralıkların birden fazla satıra yayılabilmesi sağlandı.
- Yeniden sürüm, yapılarda değişiklikler içeriyor;
svflags'e yeni bayraklar ekleniyor ve daha fazla efekti ifade edebilmek için effects_t, uint32_t'den uint64_t'ye geçiriliyor.
- Aynı efektin split-screen oyuncularına birden fazla kez gönderilmesini önlemek için yeni bir
_key parametresi eklendi.
- Kayıt sistemi artık seviye ve oyun verilerini UTF-8 JSON olarak yazarak geliştiricilerin bunları daha kolay incelemesini sağlıyor.
- Kayıt sistemi artık dosya sistemiyle arayüz kurmuyor ve diğer modların JSON kullanması gerekmiyor.
- Quake II sunucu protokolü güncellendi; buna bant dışı challenge'ın kaldırılması, bağlantı mesajı değişiklikleri ve çeşitli
svc paket güncellemeleri dahil.
- Bu metin, çeşitli sunucu-istemci etkileşimleri, bitstream'den farklı veri türlerinin nasıl okunacağı ve verilerdeki belirli bayraklar ile anahtarların nasıl işleneceği hakkında ayrıntılı açıklamalar sunuyor.
- Metin ayrıca
svc_waitingforplayers, svc_bot_chat, svc_poi, svc_help_path, svc_achievement gibi çeşitli sunucu-istemci paketlerinin işlevlerini ve verilerinin nasıl okunacağını da açıklıyor.
clc_stringcmd paketi, istemciden sunucuya string komutları okumak için kullanılır.
- Metin ayrıca POI için sıfırdan farklı bir anahtar verilmesi ya da POI süresinin
0xFFFF veya 0 olarak ayarlanması gibi özel durumların nasıl ele alınacağını da anlatıyor.
1 yorum
Hacker News yorumu