Quelques astuces qui aideraient à développer des mods S:AD plus complexes.
Utiliser le contrôle de version
Le système de contrôle de version permet de suivre toutes les modifications apportées à votre travail, permet de revenir à des versions stables antérieures en cas de problème et, surtout, permet à plusieurs développeurs de travailler facilement sur le même projet.
Une solution de contrôle de version très populaire est GitHub. Il fournit l'hébergement de projets en ligne, permettant ainsi à plusieurs moddeurs de développer un seul mod complexe.
Une autre solution est TortoiseSVN, un wrapper de sous-version graphique, qui pourrait être utilisé pour héberger le projet sur votre propre ordinateur ou votre serveur. C'est très simple à faire, il y a de la documentation disponible en ligne.
Les deux solutions proposées sont bien entendu gratuites (ou disposent d'une version gratuite).
Une fois que le contrôle de version fonctionne, vous pouvez suivre toutes les modifications apportées à votre mod. Par exemple, juste avant de télécharger la nouvelle version de votre mod, après avoir enregistré le mod, toutes les modifications pourraient être vérifiées. C'est une étape incontournable, car très souvent il y a des choses foirées au dernier moment. L'éditeur de mod lui-même aurait des bogues.
Après le téléchargement sur Steam, les modifications locales doivent également être «validées» dans le référentiel de contrôle de version.
Les dossiers de mod qui doivent être sous contrôle de version sont situés dans :
%appdata%\Stranded - Alien Dawn\Mods
Surveillance des erreurs d'exécution
Le journal de sortie du jeu, où les éventuelles erreurs peuvent être trouvées, est enregistré dans un fichier qui se trouve dans :
%appdata%\Stranded - Alien Dawn\logs
Le problème est que le jeu doit se terminer pour vider le journal de jeu généré. Ce n'est pas pratique pour le débogage car il est difficile de relier les erreurs du journal à des événements spécifiques du jeu. Il existe un moyen simple de surveiller le journal du jeu en temps réel en dehors de la carte de modding. Tout ce dont vous avez besoin est l'IDE Visual Studio. Lorsqu'il est attaché au processus de jeu depuis le menu Debug - Attach To Process (ou raccourci Ctrl-Alt-P), tous les journaux de jeu, erreurs incluses, seront visibles en temps réel dans la fenêtre "Sortie". Le processus de jeu à rechercher lors de l'attachement doit s'appeler "StrandedSteam.exe". Pour ceux d'entre vous qui ne connaissent pas Visual Studio, il existe une version gratuite nommée "Community" qui peut être téléchargée sur le site de visualstudio.
Code du mode d'écriture
Le moteur de jeu S:AD utilise Lua comme langage de logique de jeu, bien qu'il ne s'agisse pas de la version vanille, mais d'une version modifiée - il existe de nombreuses fonctionnalités supplémentaires, modifiées ou supprimées dans les bibliothèques standard. Le code de modding "item" est également en Lua, bien que la version mod n'utilise pas l'original, mais un environnement limité, où certaines fonctions sont mises sur liste noire. Le langage Lua lui-même est très simple, toute personne familiarisée avec JavaScript ou Python pourrait l'utiliser sans problème. Il existe de nombreux IDE qui peuvent être utilisés pour éditer des fichiers Lua. Les plus populaires sont Visual Studio Code et Sublime, les deux sont gratuits. Notez que Steam pourrait considérer que le jeu est toujours en cours d'exécution après sa fermeture, si l'IDE Lua a été démarré à partir de l'environnement de modding. Si tel est le cas, fermez simplement l'IDE.
Utiliser la console de jeu
Par exemple, lorsqu'un objet est sélectionné, une variable globale nommée SelectedObj a l'objet sélectionné comme valeur. Taper cela dans la console imprimerait le contenu de l'objet, qui pourrait être un texte très volumineux. Il est donc bon de rechercher des informations spécifiques à l'intérieur de l'objet. Si un point (.) est tapé après SelectedObj (car c'est ainsi que l'on accède aux membres dans Lua), appuyer sur la touche TAB affichera le contenu de l'objet dans une liste qui peut être sélectionnée.
UIPlayer est une autre variable globale importante qui pourrait aider au débogage. Il s'agit d'un espace de noms de nombreuses valeurs de jeu importantes. Par exemple, UIPlayer.labels.Buildings contient une liste avec tous les bâtiments placés, tandis que UIPlayer.labels.Survivors est une liste avec tous les survivants engendrés. Les taper dans la console enregistrerait cependant une très grande quantité de texte, ce qui n'est pas très pratique. Il existe une fonction d'assistance nommée ValueToStr, qui pourrait être utilisée pour afficher plus de texte lisible par l'homme. Exemples : ValueToStr(SelectedObj), ValueToStr(UIPlayer.labels).
La console prend également en charge la saisie semi-automatique via la touche TAB. De cette façon, il n'est pas nécessaire de connaître le nom exact d'une variable globale donnée ou d'un membre d'objet.
Pour effacer l'écran du texte imprimé, utilisez la touche F9.
Travailler avec les données du jeu
Quoi qu'il en soit, il est utile d'avoir un moyen d'inspecter les données du jeu d'une manière ou d'une autre. Une façon consiste à utiliser la console de jeu pour vérifier le contenu des préréglages var globaux. Il contient presque toutes les données du jeu, regroupées par classe prédéfinie. Comme décrit dans la section précédente, en tapant le point (.) après chaque nom dans la console, une liste avec le contenu du contexte actuel serait affichée. Ce faisant, niveau par niveau, tous les contenus pourraient être analysés.
Mais l'utilisation de la console a ses limites, car le contenu des données est trop complexe pour être inspecté comme un gros morceau de texte. Il est plutôt nécessaire de comprendre quelles classes prédéfinies sont enregistrées dans le jeu, afin d'invoquer un outil explicite pour chacune d'entre elles. Il existe une commande de console acceptant la classe prédéfinie qui ouvre une interface de données d'interface utilisateur :
OpenPresetEditor("<PresetClass>")
où doit être remplacé par la classe spécifique à inspecter. Par exemple, taper dans la console OpenPresetEditor ("FXPreset") ouvrirait l'éditeur FX, qui contient l'un des éléments de données les plus mystérieux - les effets visuels et sonores.
By injto4ka
Plus de guides :
- Stranded Alien Dawn : Guide de base et astuces
- Stranded Alien Dawn: Guide de toutes les réalisations (25/25)