Unvanquished 0.53 Beta est là : un petit pas pour les bots, un bond en avant pour Unvanquished !

32
12
août
2022
Jeu

Unvanquished est l’un des rares jeux qui combinent à la fois le mode FPS (First Person Shooter : Tir à la première personne en vue subjective) et le mode RTS (Real-Time Strategy : Stratégie en temps réel) en équipe.

Chaque joueur peut choisir une faction : Aliens ou Humains. L’objectif étant d’annihiler la faction opposée. Les deux factions se jouent différemment, et c’est l’un des intérêts de Unvanquished.

Malgré la différence importante de gameplay entre les deux équipes, certains mécanismes sont communs, avec notamment la possibilité de construire qui implique de ne pas avoir de capacité de combat importante. Vaincre des ennemis fournit des crédits qui peuvent être dépensés en améliorations pour le joueur, et la progression de l’équipe permet de débloquer des options de bâtiments et d’améliorations personnelles.

Une nouvelle version est sortie, la 0.53, et nous allons vous présenter ci-après dans les grandes lignes les changements les plus importants.

Unvanquished 0.53 - Splash screen

Sommaire

Deux factions : les Aliens et les Humains

La faction humaine est particulièrement vulnérable au début, mais la grande majorité de leurs armes permet le combat à distance, et ils sont tous équipés d’une arme de poing, le blaster, qui est certes faible mais dispose de munitions infinies.
Le port d’une armure est particulièrement recommandé, dès que possible. L’une de ces armures, la battlesuit, est l’armure la plus résistante, mais ne permet pas le port d’équipements dorsaux (le jetpack qui permet de voler et le radar qui permet de localiser et mettre en évidence des ennemis, partageant l’information avec l’équipe) et réduit drastiquement la mobilité des humains (fatigue accrue, impossibilité de courir sur les murs, taille plus imposante). L’armure moyenne permet de conserver une grande mobilité et d’avoir ces équipements additionnels.
Les humains peuvent construire des bâtiments robustes, mais peu variés, dont ils peuvent accélérer l’auto-réparation avec le Kit de construction.

Un humain en battlesuit avec le chaingun
Un humain en tenue de combat avec le chaingun

La faction alien se spécialise quant à elle dans le combat au corps à corps, bien que certaines de ses formes avancées disposent de quelques attaques à courte distance (les Dragoons et les Grangers peuvent cracher, le Marauder peut émettre de puissants arcs électriques).
Afin de trouver et atteindre leur cible, les aliens disposent tous du sens alien qui leur permet de repérer ennemis et alliés au travers des murs, ainsi que de mécaniques de déplacements qui varient selon la forme : le Dretch, le Mantis, ainsi que les Grangers peuvent marcher sur les murs, le Mantis ainsi que les Dragoons (rien à voir avec les dragons européens ou chinois!) peuvent se propulser dans les airs, les Marauders peuvent rebondir sur les murs, et les Tyrants ont la faculté de charger.
Leurs formes, tailles et bâtiments sont aussi variés que leurs capacités de déplacement.

Alors que la faction Humaine est relativement simple à prendre en main, les différentes formes d’Aliens se jouent très différemment, et nécessitent un apprentissage pour chaque forme. Entre des mains expertes, les Aliens sont la faction la plus redoutable, et en particulier le Dragoon Avancé (Advanced Dragoon).

Un dragoon prêt à bondir

Un dragoon prêt à bondir

Tout comme les personnages des factions, les bâtiments correspondants sont très différents. Les Humains bénéficient de bâtiments qui vont pouvoir attaquer à distance, en particulier le lance-roquettes (Rocket Pod), alors que la faction des Aliens ne peut compter que sur le nid de frelons (Hives) pour l’attaque à distance, qui est plutôt une forme de défense et sera utilisé à l’intérieur pour piéger un espace sans exposer le nid, vulnérable. Toutes les constructions Aliens sont vulnérables aux feux, et ne devraient pas être construites au sol ou trop serrées.

Un joueur débutant sera plus à l’aise avec la faction humaine. Avec le SMG (arme de base) puis équipé d’une armure dès que possible, il pourra défendre la base et se joindre à un groupe pour faire ses premiers pas. Les joueurs débutants ne devraient pas s’aventurer seuls. Il est important de rentrer à la base dès que la situation commence à s’envenimer (trop de blessures, groupe diminué, manque de munitions, etc.). Notez que les Humains bénéficient d’un Medikit, gratuit, qui leur permet de récupérer lentement de la santé et de lutter contre le poison inoculé par les Aliens. Le Medikit se récupère à la Station de Soin (Medistation).

Que ce soit dans la faction humaine ou celle des aliens, vous pouvez facilement vous mettre à dos les membres de votre équipe en construisant, voir en déposant à foison des Drill/Leech ! En effet, la destruction des bâtiments par les ennemis leur donne des points qui leur permettront de devenir plus dangereux. Le placement inadéquat d’une construction peut facilement faire basculer la partie en défaveur de l’équipe.

La documentation !

Le Wiki fournit des astuces avec des captures d’écrans : wiki.unvanquished.net/wiki/Gameplay
Et pour ceux qui veulent essayer rapidement : wiki.unvanquished.net/wiki/Get_started_easy

Il y a eu beaucoup de changements entre la version 0.52 et 0.53. Le plus visible étant que les bots sont moins stupides, en fonction de leur degré de compétence (qui était déjà réglable, mais ce réglage a un plus fort impact maintenant). D’autre part, les variantes pour les cartes et le mode PvE (Joueurs humains contre bots, acronyme très utilisé notamment dans le milieu des mmorpg : Player versus Enemy) apportent plus de diversité à la monotonie des cartes.

Plusieurs contributeurs ont porté d’anciennes cartes de Tremulous et les ont adaptées pour Unvanquished. Ces trésors rappelleront de bons souvenirs à certains. Ces cartes ne sont pas encore sur les serveurs officiels, mais sont disponibles sur d’autres.

Installation et lancement

La méthode recommandée pour installer Unvanquished est notre lanceur (parfois nommé updater), il se charge de télécharger, installer, mettre à jour, configurer le système et lancer le jeu. La configuration du système consiste à enregistrer le schéma d’url permettant de joindre une partie en cliquant sur un lien dans une page web ou dans le chat (ou tout autre moyen). Pour certains systèmes, le launcher s’assure aussi que le système d’exploitation autorise l’exécution du jeu.

Les nouvelles d’Unvanquished 0.53

En dehors des versions mineures, ceci est notre seconde bêta. Cela fait un an que nous sommes entrés dans la phase de bêta. Le projet Unvanquished a eu 10 ans le 29 février 2022 !

Notre chat a migré depuis Freenode vers Libera. Libera, Matrix et Discord sont reliés entre eux, ce qui permet aux utilisateurs des différents services de ne pas être isolés, voir notre page Chat.

Deux nouveaux développeurs nous ont rejoint officiellement ; ils contribuaient déjà et font désormais partie de l’équipe : afontain et bmorel.

Cette version est le fruit d’un travail assez important, et — comme avec les icebergs — la majeure partie n’est pas visible. Énormément de refonte et de documentation de code a été faite pour rendre les choses plus simples pour les prochains candidats à la contribution.
En chiffres, cela donnait environ, en juillet 2022 :

  • 573 modifications pour le code du jeu (exclut donc les données qui sont dans un dépôt séparé, mais inclut les synchronisations), 248 fichiers modifiés (pour environ 420 fichiers), ~14 KLoC (milliers de lignes de code) ajoutées et ~11.5 KLoC supprimées, pour environ 144.4 KLoC au total.
  • 291 commits dans le moteur, 179 fichiers modifiés, ~4 KLoC ajoutées et ~6,2 KLoC supprimées, pour environ 156 KLoC.

Les gros changements bien visibles

La carte Parpax a été profondément remaniée par Viech, l’expérience de jeu est désormais très différente !

La carte Parpax mise à jour
La carte Parpax mise à jour

Un serveur nommé « Nightly Experimental Server » a été mis en place par afontain, il reconstruit automatiquement les branches master du code et des données pour permettre de tester la majorité des changements sans attendre une nouvelle version (certains changements nécessitent malheureusement une rupture de compatibilité et ne peuvent y être testés, ceux-ci sont dans une branche à part, tandis que la branche master conserve sa compatibilité avec la dernière version du moteur publiée).
Les données (cartes, etc.) sont reconstruites en utilisant Urcheon.

Les gros bugs qui tachent

Au moment d’apparaître en jeu il n’est plus possible d’entrer en collision avec un autre joueur qui se tiendrait sur un œuf ou un telenode. Il était déjà prévu que ça ne se produise pas, mais il restait quelques cas rares où cela se produisait, ce qui bloquait les joueurs !

Les serveurs de jeu ne disparaissent plus dans la liste ! Les serveurs maîtres de jeux qui sont temporairement inatteignables sont réinterrogés après un certain délai au lieu d’être oubliés pour toujours, cela empêche de voir son serveur retiré de la liste parce qu’un problème réseau est temporairement apparu une fois entre le serveur maître et le serveur de jeu. Le code d’origine était pensé pour les limitations des réseaux des années 90 (il y avait même encore des contournements pour des limitations de Windows 95 !) et donc cette partie a été réécrite.

Il subsiste un problème qui affecte uniquement les utilisateurs de connexion internet 4G Free Mobile (probablement dû à une restriction côté opérateur) et qui empêche de lister les serveurs de jeu (même s’ils sont correctement enregistrés sur le serveur maître). En attendant un correctif, ces utilisateurs peuvent utiliser notre liste de serveurs en ligne ou glander^W discuter sur IRC où un robot annonce régulièrement les serveurs peuplés. Le bug qui empêchait de se connecter à un serveur depuis la page du site une fois que le jeu avait déjà été lancé a aussi été corrigé !

Le son du jetpack n’est plus audible à travers toute la carte (c’était un bug), pareil pour le son du bouton de l’ascenseur de la carte Spacetracks ! Pour la petite histoire, les sons positionnels doivent être mono…

Les changements des interactions et de l’environnement du jeu

Le mécanisme du lance-flammes a été modifié pour réduire le déséquilibre de puissance, les dégâts les plus efficaces sont les dégâts indirects (par le feu généré), et il faut plus de temps pour allumer un feu : on ne peut plus vraiment peindre le sol de flammes en courant, le lance-flammes devient donc surtout une arme d’attaque de base alien qui demande de la coordination alors qu’avant un seul joueur humain avec un lance-flammes pouvait mettre en échec une équipe entière d’aliens.

Avant, on pouvait facilement créer un tapis de flammes:
Flammes au sol

Les blobs aliens (granger, dragoon, trapper) font désormais une taille de 5 au lieu de 0, ce qui rend leur usage moins élitiste. Les blobs sont des sortes de crachats que jettent certaines créatures ou constructions pour blesser, immobiliser, ralentir, éteindre des feux…

Trappeurs (1), Épines projetées (2) et Tubes d’acides (3) en action:
Trappeurs et Tubes d’acide en action

Le rayon d’extinction de feu du crachat du granger avancé a été augmentée de 20 à 64 (environ 3 m dans le jeu).

La portée d’utilisation des constructions (comme l’armurerie) est désormais la même pour les joueurs et les bots (et les joueurs qui utilisaient des raccourcis claviers), elle est donc plus courte.

Le joueur alien est automatiquement écarté du mur pour avoir assez de place pour évoluer au lieu d’avoir un message frustrant qui dit qu’il faut bouger !

Le canon lucifer vibre quand il charge ! En fait c’était déjà implémenté mais ça ne marchait pas ! Merci à bmorel d’avoir corrigé ça, parmi plein d’autres bugs.

Le drill peut désormais recharger les armes à énergie ce qui permet de recharger ces armes dans des bases avancées. Cela rend plus intéressant de dépenser de l’argent dans une arme à énergie en sachant qu’elle peut être rechargée sans revenir à la base principale. Cela étend les stratégies possibles comme le fait de préférer dépenser du crédit personnel dans une arme à énergie plutôt que de dépenser les points de construction de l’équipe dans la construction d’une armurerie dans une base avancée. Le répétiteur avait cette fonctionnalité avant mais quand il a été remplacé par l’extracteur (Drill) cette fonctionnalité n’a pas été transférée (par accident), ce qui était donc une régression.

Il devient possible de rejoindre la même équipe que d’autres joueurs même si le ratio joueur/bot est déséquilibré tant que l’équipe adverse n’est composée que de bots, tout en forçant l’équilibrage des équipes dès lors qu’il y a de vrais joueurs dans chacune des équipes. Cela permet à des joueurs de décider en début de partie de combattre ensemble contre des bots plutôt que d’être contraints à se battre l’un contre l’autre. Un vétéran peut ainsi choisir d’accompagner un nouveau venu plutôt que de le massacrer et le dégoûter du jeu (sans même en faire exprès, parfois).

Un humain avec un pistolet laser près d'un Drill

Un humain avec un pistolet laser près d’un Drill

Améliorations de l’interface et des mécaniques du jeu

Les icônes de l’inventaire ont été agrandies.

En cas de course rapide, l’interface l’indique avec une icône spécifique. C’est particulièrement utile pour les joueurs qui utilisent le mode de bascule à la place de l’appui de la touche pour la course rapide. Spéciale dédicace à Bob Vador pour ce travail sur les pictogrammes.

L’indicateur de mode de course

L’indicateur de mode de course

La capacité en oxygène est indiquée dans l’interface lorsque le personnage est sous l’eau. C’est aussi valable pour les Aliens.

L’indication de la réserve d’oxygène

L’indication de la réserve d’oxygène

Les messages de chargement de carte ont été rétablis. Ce sont principalement des messages humoristiques, mais ils indiquent la progression du chargement, et certains messages sont utiles pour l’utilisateur, comme le message qui indique que les shaders GLSL sont en train d’être compilés.

Messages de chargement des cartes

Messages de chargement des cartes

Il est toujours possible de voter quand on est seul dans un jeu.

Les instructions de tutoriel pour la vie faible et le manque de munitions sont affichées en orange pour être mieux remarquées par le joueur.

La description du battlesuit est désormais correcte et mentionne sa capacité à s’accroupir, celle du chaingun aussi et mentionne que le recul est plus faible quand on porte une battlesuit. La description et le tutoriel du granger avancé ont également été complétées pour mentionner la capacité d’immobiliser un ennemi et éteindre des feux.

Lorsqu’un bâtiment est placé, la projection holographique est affichée en jaune à la place du rouge lorsque le bâtiment ne peut pas être construit pour des raisons autres que celles liées à l’emplacement. Par exemple quand le Réacteur ou l’Overmind sont encore en cours de déploiement.

Le système de traduction du jeu a été ré-implémenté et couvre également les interfaces réalisées avec RmlUI, mais pour le moment les traductions n’ont pas été réalisées (et celles existantes sont fortement obsolètes). Les traductions ayant été délaissées pendant très longtemps le jeu n’est pas considéré comme traduit, mais il redevient possible de le traduire.

La musique sur l’écran d’accueil peut à nouveau être coupée en modifiant la variable 'audio.volume.music'.

Le maximum de FPS (même une fois débloqué) a été plafonné à 333 pour éviter des bugs (au-delà, ça peut générer des bugs à cause d’un manque de précision puisque les frames sont comptées en millisecondes). Les benchmarks basés sur la fonction 'timedemo' ne sont pas affectés par ces bugs et donc non-plafonnés.

Le code d’initialisation OpenGL a été refait et les messages de diagnostic sont désormais plus utiles pour comprendre ce qui se passe quand ça ne fonctionne pas (merci à papap pour les tests !). La compilation des shaders GLSL qui ne sont pas nécessaires pour le menu principal est retardée au premier lancement d’une partie. Quand le joueur utilise un matériel peu performant, cela lui permet d’accéder très rapidement au menu pour désactiver des options au lieu d’attendre longtemps que le moteur compile des shaders que l’utilisateur compte désactiver de toute façon.

Message d’erreur pour l’absence de OpenGL

 Message d’erreur pour l’absence d’OpenGL

Le bug de rendu qui affectait les utilisateurs de cartes Intel UHD sous Linux et certains utilisateurs avec des cartes graphiques Nvidia a été corrigé. Si vous observez des zones noires, vous devez désactiver les lumières dynamiques (dynamic lighting), puis les réactiver à nouveau.

Toutes les variables cvars de la logique de jeu (préfixes cg_ et g_) ont maintenant une description et une information sur le type.

les Bots

Un énorme travail sur les bots a été fait par bmorel !

Les bots humains peuvent désormais utiliser des grenades, peuvent patrouiller autour des médistations en attendant qu’elles se libèrent au lieu de faire la queue, peuvent acheter un pulse rifle au lieu d’un canon lucifer pour défendre s’ils sont proches du réacteur (moyen basique mais efficace de faire en sorte que le bot détecte qu’il est dans la base et utilise une arme qui ne va pas faire trop de dommages collatéraux à sa propre base…), alternent l’usage du lance-flammes et du pulse-rifle…
Ils vont aussi essayer de s’équiper (gilet pare-balles ou battlesuit, radar) avant de réparer une base. Les humains vont défendre leur base s’ils voient un ennemi pendant qu’ils se guérissent (mais encore faut-il qu’ils le voient !).

Les bots aliens évoluent uniquement s’ils ont assez de santé pour ne pas gaspiller leurs points d’évolutions et enrichir l’adversaire. Leur comportement par défaut est maintenant d’évoluer avant de se battre, ce qui fait qu’ils sont plus efficaces pour défendre leur base et enrichissent aussi moins les humains de cette manière.

Le code d’achat des bots a été réécrit, les bots humains peuvent acheter n’importe quelle combinaison d’équipements autorisés.

Les bots essaient de fuir plus rapidement, en courant pour les humains, en sautant (jump), bondissant (pounce) ou chargeant pour les aliens. Le déclenchement de leur fuite est moins prévisible, dépend à la fois de leur compétence (skill) et de leur distance d’avec les points de guérison, ce qui leur permet parfois de se rebiffer s’ils sont attaqués au mauvais moment, mauvais endroit. Leur attaque (rush) dépend de combien d’argent ils ont, leur compétence, et ce qu’ils pourraient s’acheter. Certains problèmes de bots qui n’arrivent pas à accéder à l’armurerie ont été contournés dans certains cas, ça peut encore se produire mais moins souvent.

Ils vont aussi aller se refaire une santé même s’ils ne sont plus en dessous de 50 %, selon leur niveau d’aptitude et la distance du point de remise en forme.

Sur la carte Chasm les bots ne trouvaient pas l’armurerie dans la configuration par défaut. Ce problème est causé par les bâtiments qui génèrent des blocages de navmesh quand ils sont assez gros. Du coup, quand un bâtiment est dans une enclave (comme dans la configuration par défaut de Chasm) aucun chemin ne peut être trouvé. bmorel a été obligé de faire un hack dégueulasse (dixit) parce qu’il ne savait pas exactement pourquoi il y avait ce problème. Le contournement fait que parfois les bots se heurtent sur leurs propres constructions, mais c’est acceptable parce qu’ils savent se débloquer dans ce genre de situation, et que cela ne devrait plus arriver dans la prochaine mouture.

Pour les administrateurs de serveurs

L’option pour paramétrer le « tir ami » (friendly fire) est désormais configurée par faction, et réduit de moitié par défaut pour les aliens pour rendre les dégâts d’équipe moins dévastateurs pour cette équipe. Les possesseurs de serveurs peuvent modifier ces paramètres avec g_friendlyFireAlienMultiplier et g_friendlyFireHumanMultiplier.

Des permissions additionnelles ont été données aux administrateurs qui ne sont pas des opérateurs de serveur. Le niveau 4 (« senior admins ») peut désormais utiliser les commandes pause, buildlog, revert, et bot. Les niveaux 2 et 3 (« junior admins » and « team managers ») peuvent désormais utiliser la commande bot. Pour que ce changement prenne effet sur un serveur préexistant, il faut malheureusement sauvegarder le fichier <homepath>/game/admin.dat, le supprimer, démarrer et éteindre le serveur, et insérer à nouveau vos administrateurs serveurs dans le fichier.

Le fichier autogen_server.cfg n’est plus exécuté au démarrage du serveur.

Les fichiers démo ont été renommés pour permettre un triage des fichiers par date et heure.

GeoIP n’est plus utilisé. Cette bibliothèque était utilisée par le serveur de jeu pour connaître d’où se connectaient les clients.

Changements de cvar:

  • Les cvars logs.logLevel.* ont été renommées en logs.level.* ;
  • g_autoPause est désormais désactivée par défaut, puisque cela gèle les joueurs mais n’empêche pas le temps de s’écouler. Cela met donc en jeu d’une façon qui casse le système de momentum et de point de construction :
  • De nombreuses commandes et cvars obsolètes ou cassées ont été abandonnées, le plus souvent parce qu’elles n’avaient tout simplement jamais été implémentées. Notamment g_botKickVotesAllowed et g_botKickVotesAllowedThisMap ont été remplacées par g_disabledVoteCalls.
  • 23 cvars inutilisées ont été retirées du code du jeu.
  • Les délais de suicide (commande /kill) peuvent désormais être ajustées avec la cvar g_killDelay.
  • g_teamForceBalance a un nouveau paramètre. Quand cette cvar est mise à « 2 », le serveur va désormais permettre à tous les joueurs de rejoindre la même équipe tant que l’autre équipe n’a que des bots.

La documentation des cvars a aussi été améliorée: toutes les cvars qui ont un impact en jeu ont désormais un texte explicatif. Cela signifie que vous pouvez utiliser la commande /listCvars pour y trouver de l’inspiration.

Intelligence artificielle

Les options pour contrôler les comportements des bots qui n’avaient pas été implémentées (toggle rush, toggle heal, group size, toggle build…) ont été retirées, et des options pour leur permettre ou les empêcher d’acheter un équipement donné ou une classe ont été ajoutées et intégrées à l’interface.

Il est aussi possible d’ajuster le nombre (en pourcentage) de radars que les bots veulent avoir dans leur équipe.

Il est possible de changer l’habileté (skill) par défaut des bots, ce qui signifie qu’il n’est plus nécessaire d’ajouter systématiquement l’option d’habileté en ajoutant les bots si vous voulez des jeux plus faciles ou plus difficiles.

Il n’est plus possible pour les bots d’avoir une habileté de niveau 10, puisque cela cassait beaucoup leur visée.

Il n’est plus nécessaire de créer un fichier .dpk pour fournir des « behavior tree  » ou des « _navmesh » personnalisées. Ces fichiers peuvent être personnalisés en plaçant une version modifiée dans le sous-dossier game/ du dossier utilisateur (homepath).

Pour les modeurs et les contributeurs

libRocket, la bibliothèque d’interface graphique utilisée pour implémenter pratiquement toute l’interface graphique utilisateur (GUI) et le HUD était abandonnée depuis longtemps par ses auteurs, nous avons terminé la migration vers RmlUi. Cette dernière est un fork maintenu de libRocket avec quelques nouvelles fonctionnalités. Cela devrait permettre d’implémenter des HUD/GUI plus agréables, par exemple, des contours de caractère pour rendre le texte plus lisible dans les zones très claires.

Le mécanisme de traduction a été réimplémenté et inclut les éléments GUI/HUD. Les anciennes traductions n’ont pas été utilisées, car elles sont pour la plupart obsolètes (d’où cette mise à jour dans la section « pour les contributeurs »).

De nombreux fichiers liés au gameplay ont été déplacés de divers dépôts vers unvanquished_src.dpkdir pour en faciliter la maintenance.

Suppression de nobuildsurface, noalienbuildsurface et nohumanbuildsurface rendus obsolètes par le contentparm nobuild (les surfaces héritent de la propriété du contenu).

Outils de débogage : cg_drawBBOX affiche la zone d’effet des flammes au sol (en plus des boîtes englobantes du joueur et de la construction). cg_drawDebugDistance affiche une sphère autour du joueur de la taille sélectionnée pour se faire une idée des distances.

Affichage de la sphère de distance avec l’outil de debug

Affichage de la sphère de distance avec l’outil de debug

Zone d’effet des flammes au sol avec l’outil de debug

Zone d’effet des flammes au sol avec l’outil de debug

Les fichiers .arena ne sont désormais plus utilisés pendant l’affichage de la liste des cartes pour éviter des ralentissements.

La commande /give permet maintenant de donner de la vitesse à une équipe spécifique.

Les bots peuvent désormais cibler directement le bâtiment ennemi ou allié le plus proche, des nœuds d’arborescence de comportement inversé ont été ajoutés et divers autres changements. Une page de documentation sur le travail en cours sur le mécanisme de l'arbre de comportement et sur l’API est disponible dans le wiki.

La commande /testmodel permet de tester des modèles avec squelette.

La nouvelle cvar cg_lazyLoadModels peut être utilisée pour accélérer le chargement de gamelogic pendant /devmap.

Pour améliorer la compatibilité avec les cartes Tremulous, le flag solid sur env_afx_gravity / trigger_gravity est supprimé automatiquement. Il est donc maintenant possible d’entrer dans une zone avec une gravité modifiée, celle-ci aurait été traitée comme des murs dans la version 0.52.1. De même, trigger_class et trigger_equipement devraient maintenant fonctionner comme ils le faisaient dans Tremulous.

Les paquets de carte doivent avoir un nom commençant par map-<nom_de_carte> et contenir un fichier maps/<nom de carte>.bsp.

Les paquets peuvent utiliser des fichiers DELETED (comme DEPS) pour ignorer des fichiers de leurs parents, qui peuvent être utilisés pour créer des paquets partiels supprimant des éléments du jeu officiel.

C++14 est désormais autorisé dans Daemon et la base de code est plus compatible avec la détection de failles addressSanitizer.

La compilation est plus facile à configurer grâce à des valeurs par défaut plus saines et à des descriptions d’options améliorées.

Capacités de benchmark

Pour les benchmarkers et ceux qui écrivent des logiciels de benchmark et veulent un benchmark Unvanquished, une « démo » (un fichier qui enregistre les positions et actions d’une partie en vue d’être réaffichés) est fournie à cette intention ici. Décompressez le fichier .dm_86, enregistrez-le dans le dossier <homepath>/demos/ et exécutez cette commande :

daemon -set demo.timedemo on -set common.shutdownOnDrop on +demo_play unvanquished-benchmark_0.53.0

Le jeu va démarrer, jouer la démo et quitter automatiquement. Quelques statistiques de ce genre peuvent alors être trouvées dans le fichier <homepath>/daemon.log :

6199 frames, 12.9s: 479.6 fps 
Demo completed

Le fichier démo fourni est spécifique à une version du jeu donc vous voudrez probablement télécharger le nouveau fichier démo quand une nouvelle version du jeu est publiée. Ce genre de fichier démo est fiable pour comparer la performance de divers matériels et logiciels en utilisant la même version du jeu, pas pour comparer la performance du même jeu au fur et à mesure de ses versions.

Mise à jour 0.53.1 et nouveau lanceur

Rapidement après la sortie de la version 0.53 certains joueurs ont commencé à remonter un bug pour le moins gênant et qui était resté sous-marin jusqu’alors : parfois le jeu se déconnectait du serveur après avoir réalisé une action (écrire dans le chat du jeu, ouvrir un menu). Ce qui était encore plus gênant était que le bug n’était pas reproductible quand le jeu était compilé en bibliothèque dynamique ou exécutable natif pour être exécuté dans un débuggeur. Et pour ajouter à l’inquiétude, le système breakpad devant générer des « crashdump » lorsque le code est compilé au format nexe (binaire indépendant du système d’exploitation pour la machine virtuelle NaCl) ne générait pas de crashdump pour ce crash précis (mais uniquement dans ce cas précis). Mais après une enquête demandant donc de relever de sacré défis, le bug a été identifié dans le « Garbage collector » Lua de la bibliothèque RmlUi, bug qui semble être déjà présent dans LibRocket que nous utilisions mais qui ne se manifestait pas. L’équipe Unvanquished a donc investigué en vitesse et publié une version 0.53.1 dans les 4 jours (le jeu affiche toujours la version 0.53.0 dans les menus car seul un petit composant a été modifié, c’est normal).

Au passage une nouvelle version du lanceur a été publiée qui corrige un bug pas bloquant mais gênant : à la fin de la mise à jour de 0.52.1 vers 0.53.0 un message d’erreur s’affichait et il fallait redémarrer le lanceur pour qu’il termine l’installation et lance le jeu comme il faut… Il semble que le lanceur était confus que la nouvelle version du moteur soit plus petite que la version précédente…

Plus de détails se trouvent dans un billet de blog dédié (en anglais).

Conclusion

Il nous reste beaucoup de travail à réaliser : beaucoup d’améliorations de l’IA sont encore possibles, il nous reste à mettre à jour la version de la lib de GUI/HUD que nous utilisons, ainsi que de développer de meilleures GUI et, plus important, nous avons l’espoir de remplacer notre intégration NaCl vieillissante avec Wasm, ce qui devrait nous permettre de prendre en charge plus d’architectures de matériel comme les systèmes ARM.

Nous savons aussi que les mécanismes et l’environnement dans le jeu ne sont pas parfaits, mais nous croyons que nous avons grandement amélioré l’expérience de jeu cette année de développements et de contributions intenses. Si vous rencontrez une difficulté ou quelque chose dont vous voudriez discuter à propos du jeu, de son environnement, n’hésitez pas à venir en parler avec nous, que ce soit via notre forum, l’outil de suivi ou encore via les messageries instantanées quand vous serez lassés de guerroyer.

Nous espérons que vous apprécierez cette version autant que nous.

Unvanquished a désormais plus de 10 ans ! Nous publierons dans les prochains jours une rétrospective détaillée de notre histoire. Restez à l’écoute !

Aller plus loin

  • # Tâche ou tache ?

    Posté par  . Évalué à 4.

    Le titre "Les gros bugs qui tâchent" pique vraiment les yeux…

    « tache » ou « tâche » ?

    • [^] # Re: Tâche ou tache ?

      Posté par  (site web personnel, Mastodon) . Évalué à 5.

      Corrigé, merci. On ne relit jamais assez les titres.

      « Tak ne veut pas quʼon pense à lui, il veut quʼon pense », Terry Pratchett, Déraillé.

      • [^] # Re: Tâche ou tache ?

        Posté par  (site web personnel) . Évalué à 4.

        C’est un lapsus qui fait tache.

        Il y a une malédiction qui veut que souvent lorsqu’on corrige quelqu’un, on laisse malencontreusement un faute dans la correction, ça marche peut-être aussi quand on évoque les bugs que l’on corrige. 😂️

        ce commentaire est sous licence cc by 4 et précédentes

        • [^] # Re: Tâche ou tache ?

          Posté par  . Évalué à 3.

          Si ça marche récursivement ça veut tout simplement dire que la perfection orthographique n’est pas de ce monde. Enfin si « perfection orthographique » a un sens à la base :p

  • # Bravo

    Posté par  (site web personnel) . Évalué à 7.

    Merci pour cette dépêche très détaillée. Je reste impressionné par la quantité de travail qui est mis dans le polissage et l'amélioration de ce jeu! C'est pas si courant les jeux 100% libres et bénévoles qui atteignent ce niveau de finition.

  • # Langue et écriture

    Posté par  (site web personnel) . Évalué à 6.

    Je viens de remarquer une faute de frappe dans le chapitre Les nouvelles d’Unvanquished 0.53 :

    - 29 févier 2022 !
    + 29 février 2022 !

    Sinon c’est amusant je n’avais pas repéré à la relecture dans le chapitre Les changements des interactions et de l’environnement du jeu cette formulation :

    sans même en faire exprès, parfois

    Il me semblait que les expressions consacrées sont « en faisant exprès » ou « le faire exprès », mais ce sont des idiomatismes, et « en faire exprès » avec un infinitif semble être une spécificité régionale. Une conversation sur le forum languefrancaise.net évoque même l’existence d’un belgicisme « le faire en exprès ». Je soutiens donc l’option du maintien.

    Cette dépêche sur Unvanquished est la première à être rédigée en français par quelqu’un d’autre que moi depuis très longtemps et c’est une étape importante pour Unvanquished. L’emploi d’idiomatismes et autres spécificités régionales qui ne sont pas les miens est donc un marqueur de succès. 😊️

    D’ailleurs cette fois-ci, quand bien même la dépêche LinuxFr succède à la sortie du jeu, cet article a d’abord été rédigé en français et c’est le brouillon en français qui a servi à rédiger l’article en anglais officiel du blog Unvanquished. Seules deux-trois parties qui ont été ajoutées directement en anglais lors de la phase finale de rédaction de l’article de blog en anglais ont été rétroportées ici et traduites en français. 80% de cette dépêche, le tronc commun, sa structure, etc. ont été pensés en français.

    ce commentaire est sous licence cc by 4 et précédentes

  • # Plus de 150 maps!

    Posté par  (site web personnel) . Évalué à 5.

    Si vous voulez un aperçu des maps qui ont été portées:

    https://users.unvanquished.net/~sweet/maps/

    Plus de 150 au moment où j'écris ces lignes.

    Pourquoi bloquer la publicité et les traqueurs : https://greboca.com/Pourquoi-bloquer-la-publicite-et-les-traqueurs.html

    • [^] # Re: Plus de 150 maps!

      Posté par  . Évalué à 4.

      En fait, la personne derrière cet effort de portage vise les 250 maps, aux dernières nouvelles (et est a plus de 200). Bon, à l'origine, elle parlait d'atteindre seulement les 100, donc, à voir la valeur qu'on accorde a cette "limite" :) (mais la valeur de l'effort, elle, est bien réelle, c'est une évidence).

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.