Journal Unvanquished toujours sur les rails !

28
25
avr.
2018

Sommaire

Note : ceci est une traduction du dernier billet de blog que j’ai écrit pour le site d’Unvanquished, Unvanquished est un jeu vidéo de stratégie en temps réel à la première personne qui a été traité plusieurs fois dans ces colonnes. Le titre original est : « Unvanquished still on (space)tracks! », spacetracks étant l’une des plus anciennes cartes officielles.

Ça fait désormais un an que la dernière entrée de blog a été publiée et ça fait désormais deux ans que la version 0.50.0 est sortie ! Il est temps de dire quelques mots doux. :-)

Un grand merci à kharnov!

Tout d’abord, nous remercions profondément notre très grand ami kharnov pour toutes les années qu’il a passé auprès de nous à travailler à ce fantastique projet ! kharnov a dû prendre du recul pour se focaliser sur d’autres sujets dans sa vie, et nous souhaitons lui faire un grand hommage.

kharnov vodka, l’expérience hallucinantel
Si vous voyez cette affiche dans le jeu, levez votre verre

kharnov aimait se décrire comme un rédacteur et il aimait rappeler qu’il avait été recruté pour cela, mais il était bien plus et nous souhaitons lui dédier quelques mots chaleureux.

Sans lui ce projet ne serait pas ce qu’il est, et nous ne regrettons pas seulement ce qu’il faisait, nous ne regrettons pas seulement sa qualité, nous regrettons plus que ça : nous regrettons un ami, nous regrettons un homme: kharnov est vraiment un super gars, de ceux qu’on ne peut pas voir partir sans avoir des sentiments profonds. Ayons donc un grand merci pour kharnov pour son dévouement toutes ces années parmi la direction du projet, pour sa bonne humeur et pour lui-même. Il mérite tant !

Ça bouge encore

Si vous avez parcouru le site web récemment vous avez probablement repéré une nouvelle page nommée « Development Activity », c’est une page qui résume l’activité du développement à travers tous les dépôts parce que nous en avons désormais bien plus qu’un. Certaines personnes s’inquiétaient pour la santé du projet parce qu’ils regardaient l’historique du dépôt originel sans avoir connaissance de tous les autres. Cette nouvelle page d’activité de développement est très pratique pour qui veut jeter un coup d’œil à ce qui se passe.

Donc on peut dire que le développement est actif et que même si on a vu rythme plus effréné, ça bouge encore. :-) L’adresse pour suivre tous ces changements est facile à retenir: unvanquished.net/activity.

un dragoon avancé toisant un battlesuit
Faisons connaissance

Pour suivre le développement et garder le contact, vous pouvez jeter un œil sur cette page d’activité. Vous connaissez peut-être les canaux IRC #unvanquished et #unvanquished-dev sur FreeNode (voir la page de chat) mais nous avons aussi configuré un salon discord avec des passerelles.

Tracer les données

Attendez, j’ai dit qu’il y avait désormais plus d’un dépôt… En effet à l’époque de l’alpha 50, il n’y avait qu’un seul dépôt pour le moteur de jeu, le code de jeu, et une partie du paquet de données de base. Rien d’autre n’était correctement tracé : parfois certaines personnes avaient quelques dépôts personnels et ce n’était que partiel et enregistrés à des endroits différents si ce n’est de manière locale, et la majeure partie n’était pas tracée sur aucun système de gestion de version. Depuis la dernière version publiée, le dépôt Unvanquished a été divisé en trois parties : le dépôt Dæmon (le code du moteur de jeu), Unvanquished (le code du jeu), et unvanquished_src.dpkdir, le paquet principal.

Puisque le moteur et ce paquet de donnée sont des sous-modules, si vous clonez récursivement le dépôt Unvanquished et compilez le tout vous serez à même de démarrer le jeu suffisamment pour rejoindre un serveur et télécharger automatiquement ce qui manque.

Les textures de Vega
Les textures et autres données de carte sont maintenant tracées dans des dépôts officiels

Pour le dire simplement, il y a eu de gros chantiers de fait sur Unvanquished en tant que projet. Une organisation GitHub spéciale nommée UnvanquishedAssets a été créée afin d’héberger les dépôts de données avec une attention toute particulière sur la reproductibilité, parce que la reproductibilité est au moins aussi importante que d’avoir des sources ouvertes et libres.

Audit légal

Puisque nous parlons de sources ouvertes et libres, un grand travail a été fait sur le plan des données.

Nous avons fait un très profond audit de nos données (et la création des dépôts de données a été utile pour cette tâche), ça a pris beaucoup de temps, mais il semble que nous pouvons désormais placer un nom et une licence en face de chaque fichier que nous avons. Pour les données de base (modèles de personnage, d’arme ou de constructions…), quelques fichiers sont soumis à une clause NC (non-commercial, donc non-libre), et tout le reste utilisent une licence compatible avec la licence CC By SA. Il en va de même du côté des textures et des cartes : quelques-unes utilisent des licences avec clause NC, et tout le reste utilise des licences compatibles CC By SA. Nous avons donc des données reproductibles, un statut légal clair pour elle, et la grande majorité sont libres. C’est vraiment un très très grand pas qui a été fait. Oh, et Supertanker a relicencié toutes ses cartes en CC By SA 3.0, c’est excellent !

Bon, j’ai dit « en face de chaque fichier », les exceptions restantes sont les sons : nous utilisons encore beaucoup les sons de Tremulous. Nous avons créé un paquet spécial nommé res-legacy pour eux et ce paquet n’a pas d’autre vocation que d’être purgé un jour. Nous sommes à un point ou pratiquement tout ce qui venait de Tremulous a été remplacé excepté les sons, et c’est difficile de tracer la paternité de ces sons dont nous voulons vraiment les remplacer, pas seulement pour avoir notre identité sonore mais pour être plus confiant dans nos données. Si vous aimez faire des bruits étonnants, nous avons besoin de vous pour Unvanquished ! Si vous aimez composer des musiques épiques et futuristes, vous êtes bienvenu !

Toujours sur l’aspect licences, un très gros travail a été fait pour retirer la clause NC du wiki d’Unvanquished (sérieux, qui a eu l’idée de mettre une clause NC sur le wiki ? C’est quoi l’intérêt de mettre une clause non-commerciale sur la connaissance ?). Nous sommes désormais à un point où une seule permission de la part d’un seul contributeur est manquante, nous espérons obtenir cette permission parce que réécrire les choses serait très barbant. Si vous savez comment contacter Darren Salt, vous pouvez nous sauver. :-)

À partir de maintenant et pendant que nous attendons pour cette permission, nous demandons aux nouveaux contributeurs du wiki de donner la permission de retirer la clause NC sur ce qu’ils écrivent.

Fait pour être modé

Vous avez probablement remarqué l’extension .dpkdir dans une phrase précédente, DPK est le nouveau nom de notre format de paquet. Années après années nous avons amélioré le bon vieux système de fichier virtuel pk3 de Quake Ⅲ Arena, et il nous faut regarder la vérité en face : ce n’est plus du pk3 depuis longtemps. Le problème est apparu quand nous avons voulu implémenter nos améliorations dans les éditeurs de données et les outils associés : nous avions à implémenter une manière de dire aux outils tierces ou compilateurs de cartes que nos paquets étaient bien plus que des pk3 alors nous avons choisi l’extension .dpk. Comme les pk3 et pk3dir pour les moteurs qui prennent cela en charge, une archive dpk peut être extraite en un dossier dpkdir et chargée par le moteur de la même manière qu’un archive le serait. À la différence du vieux format pk3, le format DPK prend en charge la gestion de version et les dépendances, et le jeu ne charge que ce dont il a besoin. Vous pouvez en lire plus à ce sujet sur la page wiki dédiée au format DPK.

Peut-être avez-vous entendu des rumeurs autour d’Unity ayant amélioré le format crunch. Nous utilisons aussi ce format d’image compressée optimisé pour les cartes graphiques et nous avons découvert que leur outil amélioré réduisait le temps de compression de notre corpus de plusieurs heures à quelques minutes tout en réduisant la taille significativement. Ils disaient « jusqu’à 2.5 fois plus rapide » mais j’ai vu certaines textures être compressées 6 fois plus rapidement, et la moyenne de l’ensemble est 4.3 fois plus rapide, et oui l’outil compresse plus de 10% fois plus. Les résultats sont vraiment impressionnants et nous apparaissent vraiment bons. La mauvaise nouvelle c’est qu’ils ont cassé la compatibilité avec l’ancien format et il semble qu’ils n’ont fait aucun effort pour identifier si un fichier utilise l’ancien format ou le nouveau, nous avons donc décidé de faire le grand saut et de tout recompresser, mais puisque nous avons désormais des dépôts avec construction reproductible, c’est à portée de main de make.

NetRadiant chargeant les sets de textures en fonction du fichier DEPS
Chargement spécifique de set de textures dans NetRadiant

Si vous êtes modeleur de niveau et désirez voir votre carte prête pour la prochaine version, ce fil de forum vous dira tout ce dont vous avez besoin, spécialement les choses à savoir concernant le format DPK. Si vous voulez utiliser crunch, nous vous recommandons notre fork qui corrige quelques bugs de compilation (il semblerait qu’Unity n’ait conduit aucun test ailleurs que sous Windows…) et ajouter une option pour renormaliser correctement les cartes normales. Vous serez probablement heureux d’entendre qu’Unvanquished est désormais pleinement pris en charge par l’éditeur de niveau NetRadiant (incluant la gestion du format DPK avec prise en charge des dépendances, etc.) si vous êtes prêt à compiler la branche master !

Nous avons donc créé des dépôts de données (ce qui élève le nombre de dépôts à plus de 30, d’où le besoin d’une page d’activité), et tout y est maintenant tracé excepté quelques cartes (niveaux) qui arrivent bientôt. L’historique a été reproduit quand c’était possible et nous pouvons remercier pour cela notre format de paquet avancé qui nous avait permis de distribuer des mises à jour incrémentales même quand les données n’étaient pas tracées par aucun gestionnaire de version.

Un gros travail de purge des données désormais inutilisées a été fait. Notre système de paquet permet les ajouts incrémentaux mais après 50 versions alpha distribuées nous avions à nettoyer beaucoup de bazar… Vous pouvez vous attendre à une réduction de 30% de la taille des fichiers distribués.

En approche

Tous les modèles de personnages et de constructions héritées de Tremulous sont aujourd’hui remplacées, quelques changements de gameplay ont eu lieu, notamment sur la partie gestion de ressources : le jeu se concentre désormais beaucoup plus sur la capture de territoire que sur la défense de bases. Des serveurs hébergent quelques rétroportages jouables avec la version 0.50 donc vous pouvez déjà jouer avec le nouveau dragoon et apprécier que les bots quittent le jeu lorsque vous entrez dans le combat. Oh, et les bots savent désormais se débloquer tout seul lorsqu’ils sautent ou tombent accidentellement en dehors de leurs zones de navigation. Bon, je ne vais pas tout vous raconter pour garder quelques trucs à dire pour la note de publication. ;-)

Il semble que nous soyons proches d’une nouvelle publication, ce qui nous y empêche sont nos vies très actives et très occupées, c’est triste, mais ce n’est rien que ça. Il y a assez de force de travail pour corriger des trucs jour après jour mais danser toute le ballet de publication demande plus de ressources que ça. La prochaine version sera encore une alpha parce que la marquer comme bêta après tant de changements ne ferait pas beaucoup sens, mais vous pouvez vous attendre à une version alpha aussi stable que l’était la version 0.50.

Un gros travail a été fait sur l’updater et il deviendra le moyen officiel d’obtenir le jeu à partir de la version 0.51. L’updater deviendra le lanceur lui-même : vous n’aurez qu’à cliquer sur l’icône Unvanquished et s’il y a une mise à jour il la téléchargera avant de charger le jeu, ou bien il lancera le jeu directement. C’est vraiment très pratique pour les joueurs pour être toujours à jour sans avoir à s’en soucier.

La version alpha 51 sera une grosse étape sur le plan de la méthode de travail. Garder en vie un gros projet comme Unvanquished demande parfois de faire du ménage dans le bazar et de faire la poussière. Si les bidouilles sont bonnes pour commencer quelque chose et obtenir des résultats visibles rapidement, elles ne montent pas à l’échelle, spécialement quand vous avez à tracer des milliers de fichiers divers dans des formats divers avec des règles de construction ésotériques comme le nom du dossier grand-père. Comme nous n’avons pas l’intention de lâcher un jeu buggé qui serait mort le jour de sa publication, nous avons à nettoyer les choses pour s’assurer que le jeu est toujours maintenable et que la marche de contribution n’est pas trop haute. Mettre le focus sur la modabilité est vraiment très sain pour un projet indépendant et passionnant comme le nôtre.

Sur le plan communautaire quelques belles cartes sont apparues, vous pouvez les tester sur les serveurs ou en apprendre plus sur les forums.

Nous avons joué de chouettes devgames mais nous avons découvert un vilain bug qui nous empêche de tester plus de paquets rétroportés, donc nous n’avons pas d’autre choix : si nous voulons tester des nouvelles choses pendant les devgames, nous avons à publier une nouvelle version. :-)

Unvanquished est toujours sur les rails, sur des rails intergalactiques !

  • # salon discord

    Posté par (page perso) . Évalué à 2 (+0/-0).

    Je me rend compte que j’ai oublié le lien vers le salon discord, il faudrait lire :

    mais nous avons aussi configuré un salon discord avec des passerelles

    Le diff:

    - mais nous avons aussi configuré un salon discord avec des passerelles
    + mais nous avons aussi configuré un [salon discord](https://discord.gg/pHwf5K2) avec des passerelles

    ;-)

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

    • [^] # Re: salon discord

      Posté par (page perso) . Évalué à 2 (+0/-0).

      Et une faute de frappe:

      - La prochaine version sera encore une alph parce
      + La prochaine version sera encore une alpha parce

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

      • [^] # Re: salon discord

        Posté par (page perso) . Évalué à 3 (+0/-0).

        Corrigé, merci.

        • [^] # Re: salon discord

          Posté par (page perso) . Évalué à 2 (+0/-0).

          Merci ! J’ai trouvé quelques erreurs supplémentaires (je pensais pourtant avoir fait une revue avec grammalecte), il y a aussi au moins deux espaces insécable manquantes mais ça serait du pinaillage…

          - placer un nom et une license en face
          + placer un nom et une licence en face
          
          - quelques unes utilisent des license avec clause
          + quelques-unes utilisent des licences avec clause
          
          - que nous soyons proche d’une nouvelle publication
          + que nous soyons proches d’une nouvelle publication
          
          - L’updater deviendra le lancer lui-même
          + L’updater deviendra le lanceur lui-même
          
          
          - La version alpha 51 sera un grosse étape
          + La version alpha 51 sera une grosse étape

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

    • [^] # Re: salon discord

      Posté par (page perso) . Évalué à 4 (+2/-0).

      C'est plus une dépêche qu'un journal non ?

      • [^] # Re: salon discord

        Posté par (page perso) . Évalué à 2 (+0/-0).

        oui!

        • [^] # Re: salon discord

          Posté par (page perso) . Évalué à 2 (+0/-0).

          c’est pas une mauvaise idée, j’avoue que j’ai toujours un peu de mal à cerner entre le journal et la dépêche…

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

          • [^] # Re: salon discord

            Posté par (page perso) . Évalué à 2 (+0/-0).

            Bien à partir du moment où le texte est fouillé, approfondi et qu'il y a de belles photos, qu'il y a de la matière quoi,ça mérite une dépêche, voire un article dans une revue.

          • [^] # Re: salon discord

            Posté par (page perso) . Évalué à 2 (+0/-0).

            Le journal est plus court ou plus subjectif (mon coup de gueule, je pense que), je dirais

            • [^] # Re: salon discord

              Posté par (page perso) . Évalué à 2 (+0/-0).

              Ah bah justement je trouvais mon écrit trop subjectif pour une dépêche _^

              Pour la longueur, je suis d’accord :-)

              En fait je crois que c’est un petit complexe de fausse humilité : j’ai l’habitude d’écrire des dépêches pour les projets des autres. Mais c’est vrai que si je projette ce journal sur un autre logiciel et une autre personne, ça ferait carrément une dépêche.

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

Envoyer un commentaire

Suivre le flux des commentaires

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