- Quake II, relanzado en 2023, introdujo una nueva API para la comunicación entre el servidor y los módulos del juego, un nuevo protocolo de red y un módulo de "juego del cliente" para mejorar las oportunidades de modding.
- La base de código actualizada fusiona los módulos de juego separados del título original y requiere un compilador C++17.
- La DLL del juego es compatible con Clang, VS2019 y VS2022, y puede compilarse tanto con C++17 como con C++20.
- La versión relanzada admite una tasa de ticks de 40hz, lo que ofrece una mejor experiencia de juego y mayor precisión en comparación con los 10hz originales.
- La DLL del juego ya no usa varargs en las funciones, y traslada al llamador la responsabilidad del formateo.
- La versión relanzada incluye cambios en las funciones matemáticas para facilitar el trabajo, usa
constexpr cuando corresponde y emplea sobrecarga de operadores.
- Los cambios en la forma de determinar si "una entidad es visible para el cliente en un frame" incluyen soporte para pantalla dividida y culling de atenuación de sonido.
- La versión relanzada ofrece oportunidades de modding ampliadas, pero debido a cambios estructurales importantes, es posible que los mods existentes deban reescribirse para usar la nueva base de código.
- El movimiento del jugador fue ajustado para que los módulos del juego puedan modificar la física y seguir funcionando con la predicción del cliente.
- Los Configstrings se actualizaron y su longitud máxima aumentó de 64 a 96, además de permitir que ciertos rangos se expandan en varias líneas.
- La versión relanzada incluye cambios en las estructuras, añade nuevos flags a
svflags y cambia effects_t de uint32_t a uint64_t para representar más efectos.
- Se introdujo un nuevo parámetro
_key para evitar que el mismo efecto se envíe varias veces a jugadores en pantalla dividida.
- El sistema de guardado ahora escribe los datos del nivel y del juego en JSON UTF-8, lo que facilita su exploración para los desarrolladores.
- El sistema de guardado ya no interactúa con el sistema de archivos, y otros mods no están obligados a usar JSON.
- El protocolo del servidor de Quake II fue actualizado, incluyendo la eliminación de desafíos fuera de banda, cambios en los mensajes de conexión y varias actualizaciones de paquetes
svc.
- Este texto ofrece explicaciones detalladas sobre diversas interacciones entre servidor y cliente, cómo leer distintos tipos de datos en el bitstream y cómo manejar flags y claves específicas dentro de esos datos.
- También explica la función de varios paquetes servidor-cliente como
svc_waitingforplayers, svc_bot_chat, svc_poi, svc_help_path y svc_achievement, así como la forma de leer sus datos.
- El paquete
clc_stringcmd se usa para leer comandos de cadena enviados del cliente al servidor.
- El texto también describe cómo manejar casos especiales, por ejemplo, cuando se especifica una clave distinta de cero para un POI, o cuando el tiempo de un POI se establece en
0xFFFF o en 0.
1 comentarios
Opiniones en Hacker News
"_t"para los tipos de C/C++ usada en el código fuente de Quake II