- Quake II yang dirilis ulang pada 2023 memperkenalkan API baru untuk komunikasi antara server dan modul game, protokol jaringan baru, serta modul "client game" untuk peluang modding yang lebih baik.
- Basis kode yang diperbarui menggabungkan modul game terpisah dari game asli dan memerlukan compiler C++17.
- Game DLL kompatibel dengan Clang, VS2019, dan VS2022, serta dapat dikompilasi di C++17 maupun C++20.
- Versi rilis ulang mendukung tickrate 40hz, memberikan pengalaman bermain dan presisi yang lebih baik dibandingkan 10hz pada versi asli.
- Game DLL kini tidak lagi menggunakan varargs dalam fungsi, dan tanggung jawab formatting diserahkan kepada pemanggil.
- Versi rilis ulang mencakup perubahan pada fungsi matematika untuk mempermudah pekerjaan, menggunakan
constexpr bila sesuai, dan memanfaatkan operator overloading.
- Perubahan pada cara menentukan "apakah entitas terlihat oleh klien dalam sebuah frame" mencakup dukungan split screen dan sound attenuation culling.
- Versi rilis ulang menawarkan peluang modding yang lebih luas, tetapi karena perubahan struktur yang besar, mod lama mungkin perlu ditulis ulang agar menggunakan basis kode baru.
- Pergerakan pemain telah diperbaiki sehingga modul game dapat mengubah fisika sambil tetap bekerja dengan client prediction.
- Configstrings diperbarui sehingga panjang maksimum meningkat dari 64 menjadi 96, dan rentang tertentu kini dapat diperluas ke beberapa baris.
- Versi rilis ulang mencakup perubahan pada struktur, menambahkan flag baru ke
svflags dan mengubah effects_t dari uint32_t menjadi uint64_t untuk merepresentasikan lebih banyak efek.
- Parameter
_key baru diperkenalkan untuk mencegah efek yang sama dikirim berkali-kali ke pemain split screen.
- Sistem penyimpanan kini menulis data level dan game ke UTF-8 JSON agar lebih mudah ditelusuri oleh pengembang.
- Sistem penyimpanan tidak lagi berinteraksi dengan file system, dan mode lain tidak wajib menggunakan JSON.
- Protokol server Quake II telah diperbarui, termasuk penghapusan challenge out-of-band, perubahan pesan koneksi, dan berbagai pembaruan pada paket
svc.
- Teks ini memberikan penjelasan rinci tentang berbagai interaksi server-klien, cara membaca berbagai tipe data dari bitstream, serta cara menangani flag dan key tertentu dalam data.
- Teks ini juga menjelaskan fungsi berbagai paket server-klien seperti
svc_waitingforplayers, svc_bot_chat, svc_poi, svc_help_path, dan svc_achievement, serta cara membaca datanya.
- Paket
clc_stringcmd digunakan untuk membaca perintah string dari klien ke server.
- Teks ini juga menjelaskan cara menangani kasus khusus, misalnya ketika key nonzero ditentukan untuk POI, atau ketika waktu POI diatur ke
0xFFFF atau 0.
1 komentar
Opini Hacker News
"_t"pada tipe C/C++ yang digunakan dalam kode sumber Quake II