Le tooling, ce mal sous-estimé

Je traîne régulièrement sur le subreddit /r/gamedev. Un conseil revient en boucle : “J’ai sous-estimé le tooling.” On ne va pas se mentir, ça fait peur. Alors on a décidé de prendre le problème à bras-le-corps pendant que Hytale se fait attendre.

Résultat : deux outils maison qui changent tout.

Le problème des données partagées

Avant de parler des outils, parlons du vrai problème. On a des données de jeu : les rôles, les items, les points de spawn, les équilibres… Ces données doivent être identiques sur trois projets différents : le site, l’outil d’édition et le futur jeu.

On a envisagé plusieurs solutions :

  • Maintenir les mêmes fichiers sur trois dépôts ? Cauchemar garanti.
  • Créer une base de données centralisée ? Trop lourd pour notre usage.

La vraie bonne idée : un sous-module Git contenant tous nos fichiers JSON de game design. Un seul endroit, trois projets qui y piochent. Simple, efficace, versionné.

Tools : l’éditeur de données

Notre premier outil s’appelle sobrement “Tools”. C’est un site web qui permet de modifier notre référentiel de données de manière transparente.

Concrètement, l’outil connaît la structure de nos fichiers JSON et sait comment commit les modifications. Pas besoin de toucher au code pour changer :

  • Les rôles disponibles sur le site
  • Les items de départ de chaque personnage
  • Les points de spawn
  • Les paramètres d’équilibrage

Mais Tools va plus loin. Il génère des courbes et des schémas pour nos systèmes complexes : l’assignation des rôles, la gestion des arcs narratifs au fil de la partie. On peut simuler et calculer des scénarios sans lancer quoi que ce soit.

L’outil est volontairement “vibe codé”. Traduction : c’est du code jetable, fait pour être efficace maintenant. Les devs et game designers lancent le site en local, font leurs modifications, et basta. L’objectif reste quand même de permettre une gestion long terme du projet.

Des automatismes font ensuite remonter les données fraîchement modifiées vers le site et le jeu. Zéro friction.

CLI : le faux Hytale

C’est bien beau d’avoir un éditeur de données. Mais comment tester nos systèmes complexes sans le jeu ?

On est un peu fous : on a recréé Hytale. Enfin, une version CLI de notre gamemode. En quelques soirées de vibe coding.

C’est une interface en ligne de commande qui simule des parties complètes : connexions de joueurs, déconnexions, kills, récupération d’items… Le prochain devlog parlera du domaine et de l’architecture hexagonale qui rend ça possible. Pour l’instant, retenez juste que cette CLI deviendra notre gamemode final.

L’intérêt ? Jouer des dizaines de parties en accéléré pour repérer les déséquilibres.

Typiquement, lors de nos premiers tests, j’ai eu une surprise désagréable : beaucoup trop de loups-garous, zéro bûcheron, zéro mineur. Notre game design avait des trous. On a pu corriger ça rapidement, sans attendre un vrai playtest avec de vrais joueurs.

Et maintenant ?

Nos deux petits outils nous préparent à la sortie du jeu. Il nous reste encore tant à outiller. On n’a pas tout montré non plus… notre gestionnaire de tickets attend son heure.

On a hâte de voir si notre approche tiendra la route quand Hytale sortira enfin. En attendant, on continue de construire dans l’ombre.

Belle journée !

— Prakkmak