Journal Une impression de déjà vu [Unvanquished / Tremulous]

Posté par  (site web personnel) . Licence CC By‑SA.
16
24
août
2015

Sommaire

J’ai publié récemment pour le jeu Unvanquished un pack de cartes comprenant les cartes originelles de Tremulous, voici une copie d’écran prise lors d’une récente partie :

Arachnid 2

Note: cet article est une traduction libre de mon article en anglais « A Tremulous déjà vu feeling… » publié pour le blog du jeu.

Ces cartes peuvent être téléchargées en cliquant sur le lien suivant: lien suivant ;-).

C’est un pack de cartes communautaire, ce ne sont pas des cartes officielles, et elles ne sont pas du tout représentatives de l’état de l’art actuel d’Unvanquished. Ces cartes sont là uniquement pour le fun et la nostalgie.

Le pack complet fait environ 60Mo, ces cartes sont basées sur les paquets de la dernière version beta 1.2 Gameplay preview de Tremulous, et profondément retravaillés. Beaucoup de changements ont été apportés :

Le gros du travail

  • Toutes les textures ont été dé-dupliquées et un shader a été ajouté en repli pour chaque fichier dé-dupliqué (les fichiers *_compat.shader pour les curieux).
  • Les mots clés d’entités obsolètes ont été mis à jour.
  • Chaque carte a vu ses couleurs ré-étalonnées (colorgrading), cela a servi principalement à reprendre le gamma et faire des corrections d’éclairage, mais parfois ça a aussi servi à faire de sympathiques petits changements de couleurs.
  • C’est un port binaire, pas une seule carte n’a été recompilée (la plupart n’ont même pas de sources), j’ai utilisé mon grtoolbox pour cela.
  • Toutes les cartes utilisent désormais des lightmaps externes, cela permet de les compresser toutes, et certaines ont été reprise (parfois redessinées) à la main comme celles de Transit qui sont très pixelisées (c’est une carte très ancienne).
  • Toutes les textures sont compressées dans le format crunch (DXT) ou en WebP pour celles qui ne peuvent pas être crunchées.
  • Tous les sons sont désormais compressés en Opus.
  • Une image de prévisualisation en très haute résolution a été refaite pour chaque carte, donc maintenant vous êtes accueillis par une jolie image toute propre lorsque la carte charge (c’est fini les images en 800x600).
  • Toutes les cartes dépendent d’un paquet nommé res-tremulous qui contient toutes les textures communes de Tremulous (et quelques autres objets).
  • La carte ATCSHD remplace la carte ATCS et c’est la seule qui distribue ses textures elle-même puisqu’elles ne font pas partie du paquet Tremulous originel. Si une carte publiée après la Beta 1.2 Gameplay Preview dépend de ces textures, il suffit d’utiliser cette carte comme dépendance.
  • La skybox «  Wasteland  » (utilisée par la carte ATCSHD) est désormais distribuée sous forme de fichiers WebP de grande qualité compressés depuis les PNG originaux, et non plus les très horribles JPEG qui avaient été distribués précédemment.
  • Le paquet res-tremulous distribue les textures d’ATCS même si cette carte n’est pas distribuée et si ATCSHD ne s’en sert pas, cela permettra de futurs ports de compter dessus (comme la carte ATCS Zone Alpha).
  • Énormément de problèmes ont été corrigés, comme des chemins de fichiers en majuscule quand le nom du shader est en minuscule (et inversement), ou des chemins de sons qui utilisaient des backslashs comme séparateur (façon Windows). Cette publication corrige donc également des problèmes qui sont aussi vieux que Tremulous.
  • Tous les sons et les textures utilisent désormais des chemins indépendant de leur extension.
  • Et plein de choses encore…

ATCSHD
Je ressens une troublante impression de déjà-vu.

Toutes les cartes sont téléchargeables automatiquement sur un serveur nommé « { tremulous memories } » (cliquer pour jouer) qui possède une rotation de carte de Tremulous exprès pour les joueurs nostalgeeks.

Toutes les cartes distribuent des navmesh et une minimap donc elles sont prêtes à être utilisées et jouables avec des _bots (mais c’est mieux avec vos amis) !

Tout le travail effectué est versionné et enregistré sur un dépôt git par paquet. Vous pouvez trouvez tous les liens pour chaque dépôt à la page de mon initiative Interstellar Oasis.

Et les autres ?

Ces cartes ne sont probablement pas celles qui sont le plus attendues (d’autres arrivent), mais ce sont les premières qui devaient être portées (spécialement le paquet res-tremulous) afin de pouvoir porter les autres, bien meilleures, plus belles et plus excitantes.

Cela m’a pris environ huit mois pour concevoir des outils utiles et réutilisables et à réfléchir à « qu’est ce qu’un port réalisé correctement » et à corriger des problèmes d’Unvanquished révélés par ce projet et à ajouter des fonctionnalités nécessitées par ce projet. Donc, ce port signifie aussi et surtout que le moteur Daemon est plus robuste qu’avant et qu’il est plus pratique pour les mappeurs de travailler avec.

Après huit mois à réfléchir, concevoir des outils et à définir de bonnes pratique et à traquer les bugs d’Unvanquished, cela m’a pris seulement trois jours pour porter la totalité du paquet original de Tremulous et j’ai seulement attendu quatre jours de plus pour prendre le temps de peaufiner quelque détails avec plus de recul. Et en fait l’essentiel du temps à été passé à faire de beaux commits avec des changements cohérents et pratiques à suivre (en gros, de la paperasse).

Cela signifie donc que porter les autres cartes ne prendra pas huit mois. ;-)

Uncreation
OK, c’est bien joli, mais ce n’est pas sur cette carte que je veux jouer !

Crash Test

Le premier objectif de ce projet n’est pas de porter des cartes, c’est de tester le moteur Daemon en quête de régressions et de soumettre à un crash test les outils de développement ainsi que la façon dont ces outils attendent d’être utilisés par les gens (q3map2, je pense à toi). Parce vous ne pouvez pas contourner sans cesse des défauts de conception quand vous portez des dizaines de cartes, le seul moyen de voir ces cartes portées est de corriger ce qui n’est pas bon ou pas aussi bon que cela devrait l’être.

Expérimentations

Ce port est aussi l’opportunité d’expérimenter quelques trucs, par exemple sur les lightmaps. La carte Transit Station de Stannum est une très vieille carte (née dans les années 2000, petit) et si la dernière publication est plus récente, c’est un build d’au moins dix ans. Cette carte a des lightmaps vraiment moches, donc j’ai essayé de voir ce que je pouvais faire sans les recompiler. À gauche avant, à droite après :

Transit
Maintenant les gens veulent les mêmes filtres à la compilation…

Puisque toutes les données devaient être compressées, c’était l’occasion de comparer quelques formats de fichiers. Le moteur Daemon prend évidemment en charge les vénérables et anciens formats JPEG et TGA, mais il prend aussi en charge les formats PNG, CRN (compression DXT) et WebP. Entretemps, le format CRN est bon à utiliser (fort taux de compression, qualité potable, et format directement envoyable à la carte graphique sans décompression), mais pas dans tous les cas. Donc, quel format utiliser quand ce n’est pas une bonne idée (ça rend trop moche) ou quand ce n’est pas possible ?

Voici un comparatif que j’ai fait avec la skybox « Wasteland » utilisée par la carte ATCS HD. Ce type de skybox avec plein d’étoiles est un cas d’usage parfait pour rendre fou l’algorithme de compression JPEG. Comme vous voyez dans l’image ci-après, le format WebP gagne sur toute la ligne : la moitié de la taille du fichier JPEG pour une incroyable meilleure qualité. La différence avec le PNG original est visible pour l’œil attentif mais le bruit est vraiment faible et tolérable pour un septième de la taille du fichier original :

Comparaison JPEG WebP

Une victoire écrasante pour WebP…

Interstellar Oasis, Granger's toolbox

Vous pouvez parcourir le projet Interstellar Oasis où vous trouverez d’autres cartes dès maintenant et bien d’autres bientôt, il y a un dépôt git par carte et chaque change est largement détaillé.

Si vous aimez hacker des vieux trucs ou juste pour voir comment ça marche, vous pouvez jeter un œil au projet Granger's toolbox, la boîte à outil que je développe pour porter ces cartes. Cela peut aussi intéresser d’autres projets basés sur des technologies d’Id Software ainsi que leurs formats de fichier.

Et après ça ?

Et bien, il y a d’autre cartes à porter, et de bien meilleures. Certaines cartes vont probablement recevoir une plus grande attention et être recompilées depuis les sources. Par exemple il serait bon de réactiver les escalators mobiles dans la carte Métro qui avaient été désactivés pour cause de problème de performance huit ans plus tôt. Honnêtement, les ordinateurs actuels sont si puissants qu’ils peuvent faire le rendu du bon vieux Tremulous avec un rendu logiciel uniquement basé sur le processeur généraliste… Cela signifie qu’il est temps de réactiver les trucs qui n’effraieront plus jamais votre ordinateur.

Tyrant sur ATCSHD
Comment je me sors de cet enfer  ?

Et surtout n’oubliez pas, un Community game est programmé officiellement chaque dimanche à 20h UTC (quelque chose comme 22h en France à cette période là de l’année), c’est une super opportunité pour essayer des trucs à venir. Ce Community game est actuellement hébergé sur mon serveur gg.illwieckz.net, donc si vous êtes en France, vous aurez le meilleur ping de la planète.

Come on !

  • # dans la plupart du temps ?

    Posté par  (site web personnel) . Évalué à 2. Dernière modification le 25 août 2015 à 01:28.

    In the meantime ? Entretemps, donc. :-)

    Je dois dire que c'est un excellent boulot !
    8 mois ORLY !?

    J'adore votre interaction entre eingousef< et toi< (oui, ça s'est vu) ; nous avons TuxFamilyGames qui manque un peu de ressources mais que vous pourriez faire vivre aux côté de cacatoes< qui est motivé par OpenArena.
    Cela m'a toujours épaté que DebianGames ne s'y joigne que peu :/
    En plus, je suis sûr qu'organiser une LAN-party aux événements du libre rassemblerait du monde (et en attirerait), cela s'est vu aux RMLL régulièrement (même malgré le -nc o_O). D'ici les JDLL, le Paris-Summit et autres événements, il y a de quoi faire (au Fosdem, je n'ai jamais trouvé la salle où se réchauffer à faire un bon FPS !).

    Je pense que ce que propose rootix< est réutilisable pour discussion en live

    • [^] # Re: dans la plupart du temps ?

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

      Ah oui…

      s/Dans la plupart du temps/La plupart du temps/
      s/et à réfléchir ç/et à réfléchir à/
      

      En fait je me disais en éditant ce journal qu’il serait vraiment cool d’avoir l’éditeur de dépêche pour les journaux et qui permet d’éditer paragraphe par paragraphe. Jongler la relecture entre la prévisualisation et la zone d’édition (qui est constamment re-réduite à chaque soumission) est vraiment douloureux.

      8 mois ORLY !?

      En même temps je n’ai pas que cela dans la vie. :-)

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

    • [^] # Re: dans la plupart du temps ?

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

      Je pense que ce que propose rootix< est réutilisable pour discussion en live

      Oui tout à fait, en fait mon serveur héberge aussi un serveur mumble (il est visible publiquement avec le même nom que le serveur de jeu) mais pour le moment il n’y a qu’un salon avec mot de passe pour mes amis. Et je confirme ça marche très bien pour de la discussion en live. Seul point noir, le système de mot de passe pour rejoindre un salon privé sur un serveur public est étonnant et perturbant pour les débutants.

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

Suivre le flux des commentaires

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