Le problème
J'ai écrit cinq mods pour Brotato, le roguelite d'arène : deux nouveaux objets (la Doom Pearl donne un jeton de bannissement supplémentaire en boutique, la Void Pearl maudit l'objet de votre choix), un système de sauvegarde automatique, un suivi des victoires par arme et un juke-box pour votre propre musique. La mise à jour 1.2, Primal Dread, a changé le jeu sous leurs pieds : sauvegarder une partie plantait, la boutique plantait à l'ouverture, et les objets ajoutés par les mods n'étaient plus enregistrés.
Ce que j'ai construit
Un portage complet des cinq mods vers Brotato 1.2 et la version 6.3 de son chargeur de mods, avec une règle stricte : aucune rustine autour de l'ancien code. Chaque mod passe désormais par le mécanisme prévu par le jeu, comme si les développeurs l'avaient écrit eux-mêmes. Les perles s'enregistrent comme des ensembles d'objets, exactement comme les mises à jour officielles, la Void Pearl seulement si le DLC Abyssal Terrors est possédé ; les sauvegardes réutilisent l'état de partie et le chargeur du jeu ; les records d'armes reprennent le format de score du jeu et sont rangés à côté de chaque profil.
Défis techniques
- Cartographier la mise à jour. J'ai d'abord comparé, fonction par fonction, chaque script du jeu que les mods étendent entre l'ancienne version et la 1.2, avec une liste de risques classés.
- Cohabiter avec d'autres mods. Plusieurs mods étendent les mêmes scripts : chaque surcharge appelle donc l'original et vise la fonction la plus précise possible.
- Sans compilateur sur qui compter. Chaque chemin, script hérité, fonction et signal du jeu utilisés a été vérifié dans les scripts de la 1.2, avec fichier et ligne à l'appui dans un rapport par mod.
- Corriger l'existant. Le portage a aussi réglé des bugs plus anciens, comme un lecteur WAV qui lisait mal plusieurs formats ou une malédiction de la Void Pearl qui acceptait des objets interdits.
Résultat
Les cinq mods sont en version 1.1 et se déclarent compatibles avec Brotato 1.2.0.0 et 1.2.0.1. Un plan de test en jeu en dix étapes, en solo et en coopération, avec et sans les DLC, encadre la publication.