- La réédition de Quake II sortie en 2023 a introduit une nouvelle API pour la communication entre le serveur et les modules du jeu, un nouveau protocole réseau, ainsi qu’un module de « jeu côté client » offrant de meilleures possibilités de modding.
- La base de code mise à jour fusionne les modules de jeu séparés du jeu d’origine et nécessite un compilateur C++17.
- Les DLL du jeu sont compatibles avec Clang, VS2019 et VS2022, et peuvent être compilées aussi bien en C++17 qu’en C++20.
- La version rééditée prend en charge un taux de tick de 40 Hz, offrant une meilleure expérience de jeu et une plus grande précision par rapport aux 10 Hz d’origine.
- Les DLL du jeu n’utilisent désormais plus de
varargs dans les fonctions, en transférant la responsabilité du formatage à l’appelant.
- La version rééditée inclut des modifications des fonctions mathématiques pour faciliter le travail, utilise
constexpr lorsque c’est pertinent et recourt à la surcharge d’opérateurs.
- Les changements dans la manière de déterminer si « l’entité est visible par le client dans une frame » incluent la prise en charge de l’écran partagé et le culling de l’atténuation du son.
- La version rééditée offre des possibilités de modding étendues, mais les changements structurels majeurs peuvent obliger à réécrire les mods existants pour utiliser la nouvelle base de code.
- Le déplacement du joueur a été modifié afin que les modules du jeu puissent changer la physique tout en restant compatibles avec la prédiction côté client.
- Les configstrings ont été mises à jour : leur longueur maximale est passée de 64 à 96, et certaines plages peuvent désormais s’étendre sur plusieurs lignes.
- La version rééditée comprend aussi des changements de structure, avec l’ajout de nouveaux drapeaux dans
svflags et le passage de effects_t de uint32_t à uint64_t pour représenter davantage d’effets.
- Un nouveau paramètre
_key a été introduit afin d’éviter qu’un même effet soit envoyé plusieurs fois aux joueurs en écran partagé.
- Le système de sauvegarde écrit désormais les données de niveau et de jeu en JSON UTF-8, ce qui facilite leur exploration pour les développeurs.
- Le système de sauvegarde n’interagit plus directement avec le système de fichiers, et les autres mods ne sont pas obligés d’utiliser JSON.
- Le protocole serveur de Quake II a été mis à jour, avec notamment la suppression des challenges hors bande, des modifications des messages de connexion et diverses mises à jour de paquets
svc.
- Ce texte fournit une explication détaillée de diverses interactions serveur-client, de la manière de lire différents types de données dans le flux de bits, ainsi que de la façon de traiter certains drapeaux et clés dans les données.
- Il explique également le rôle de différents paquets serveur-client comme
svc_waitingforplayers, svc_bot_chat, svc_poi, svc_help_path et svc_achievement, ainsi que la façon de lire leurs données.
- Le paquet
clc_stringcmd est utilisé pour lire des commandes textuelles envoyées du client vers le serveur.
- Le texte explique aussi comment gérer certains cas particuliers, par exemple lorsqu’une clé non nulle est spécifiée pour un POI, ou lorsque le temps du POI est défini sur
0xFFFF ou 0.
1 commentaires
Avis sur Hacker News
clang