2 puntos por GN⁺ 2023-08-11 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2023-08-11
Opiniones en Hacker News
  • La republicación del código fuente de Quake II desató una ola de nostalgia muy comentada en la comunidad técnica
  • Muchas personas en los comentarios compartieron que aprendieron a programar con Quake II, y destacaron que su código claro y consistente fue una gran herramienta de aprendizaje
  • Quake II se usó para enseñar clases de VR a niños a finales de los 90 y principios de los 2000, donde podían crear sus propios niveles de juegos de realidad virtual
  • Algunas personas compartieron recuerdos de haber creado mods para el juego, y una incluso atribuyó a sus primeras experiencias con Quake II el inicio de su carrera como programador
  • El lanzamiento también impulsó una discusión sobre la preservación de juegos antiguos; algunas personas propusieron que los juegos que ya no se venden ni reciben soporte deberían publicarse como open source por su importancia cultural
  • La republicación del código fuente de Quake II recibió elogios por su compatibilidad con herramientas modernas de programación como clang
  • Algunas personas expresaron decepción porque la republicación no incluye una versión para Linux, aunque reconocen que iD, el desarrollador del juego, se mantiene fiel a sus principios
  • La republicación también provocó una discusión sobre la convención de usar el sufijo "_t" para los tipos de C/C++ usada en el código fuente de Quake II
  • Las personas usuarias recomiendan probar Quake2Quest en Oculus Quest 2 para revivir la experiencia nostálgica del juego