*Note: I created the most of the tutorials using the Roboblitz and Gears of War editors. Based on the engine, and the version, some properties specified may be in slightly different locations than what is displayed in the screenshots.

If you need to learn how to create a basic map I would reccomend:
For UT99, UT2K3 & UT2K4: the Unreal Wiki.
For UT3: Waylon's Tutorials.



Prologue - Débuguer Kismet



J'ai créé une simple map de test consistant en un peu de BSP, une skylight, un playerstart, un skydome et une DirectionalLight.

Je vais seulement utiliser des éléments de base de l'éditeur qui se trouvent dans les packages officiels.

Il y a deux méthodes de débugage qui peuvent être utilisées ensemble.

Comments:

Chaque entité dans Kismet peut être commentée, et ce commentaire peut être affiché en tant que texte, dans le coin gauche en bas, n'importe quand. Commentez simplement l'entité et quand un signal l'atteindra, cela s'affichera à l'écran si vous avez coché bOutputObjCommentToScreen comme montré ci-dessous. Cela vous permet de surveiller chaque entité que le signal atteint au moment où ça se produit, ce qui peut vous permettre de savoir où le signal s'est arrêté.





• Si Object Comment ne marche pas : (ce s'applique aussi aux logs) si vous suivez les instructions et qu'aucun message n'apparaît à l'écran, votre éditeur est sûrement réglé pour ne pas afficher ces messages lors du jeu. Pour corriger ce problème, vous pouvez avoir à essayer plusieurs choses :
* Note: Les étapes suivantes impliquent de modifier des fichiers .ini du jeu. Cela peut causer de gros problèmes dans certains cas, donc soyez sûr de bien faire des copies de sauvegarde de vos fichiers .ini avant de faire vos modifications.
1) Trouvez le DefaultEngine.ini. Ce fichier sera situé dans des répertoires différents selon les jeux concernés. Ouvrez le et faites une recherche sur "Kismet". Un des premiers résultats sera 'bOnScreenKismetWarnings=FALSE'. Vous aurez à le changer en 'bOnScreenKismetWarnings=TRUE', sauvez le fichier et vérifiez si cela fonctionne.
2) Si cela ne fonctionne pas, après la ligne 'bOnScreenKismetWarnings=FALSE', ajoutez cette ligne 'bEnableKismetLogging=TRUE'.
3) Cela peut fonctionner mais n'est généralement pas recommandé puisqu’il peut s'agir d'un fichier "Cooked" suivant le jeu. Cherchez le fichier xxxengine.ini, où xxx est le nom du jeu et faites les mêmes changements que précédemment.
4) Si cela ne marche toujours pas, vous ne pouvez que compter sur les logs lorsque vous jouer depuis l'éditeur (mais pas depuis le jeu lui-même). Ajoutez des Logs à votre système en suivant les instructions ci-dessous. Cependant, vous ne pourrez les voir que dans l’onglet Logs du Generic Browser, et seulement si vous avez coché bIncludeObjComment. Le texte apparaîtra dans le Log du Generic Browser mais pas à l’écran.
5) Si au final, tout ça n'a pas marché, il ne reste qu'une solution. A la place d'utiliser un log, prenez un emitter et placez le là où vous pouvez le voir lors de vos tests. Utiliser une action Toggle pour le mettre en route lorsque le log s'arrête. De ce fait, si l'emitter s'arrête, vous saurez que telle partie fonctionne. N'oubliez pas de couper la propriété AutoActivate de l'emitter.
.

Logs:

Vous pouvez relié un log à à peu près n'importe quoi. Vous pouvez brancher un signal à un log, le nommer avec ce que vous testez dans ses commentaires, cocher ‘bOutputObjCommentToScreen’, et vous aurez un message à l'écran lorsque le signal le touche. Vous pouvez aussi les associer à des références ou des variables que vous voulez surveiller, par exemple si un compteur compte correctement. Dans les exemples ci dessous, le MaxTriggerCount est mis à 0.

Debugging signal throughput: J’ai créé un trigger et un log pour vérifier que mon trigger se déclenche. J’ai décoché ‘bOutputToScreen’ et coché ‘bOutputObjectCommentToScreen’ dans le log. Quand le trigger se déclenchera, le commentaire saisi dans ObjComment du log apparaîtra à l'écran.
Note : Vous pourriez tout aussi bien faire ceci en commentant le trigger et lui ordonnant d’afficher un message à l’écran.




Débuguer des variables : Je vais créer un log qui enregistrera une valeur "Int" (entier), et l'afficher à chaque fois que le log est appelé. Premièrement, je dois démasquer la sortie Int du log. Je fais ceci en cliquant droit sur le log et en sélectionnant Expose Variable / Int – Int*.




L'étape suivante est de l'insérer dans le système. Dans le screenshot ci-dessous, j’ai crée un Int Counter. Je vais surveiller la valeur de A et le log me donnera la valeur de A à chaque fois que A sera égal à B dans le counter. J’ai décoché bOUtputObjCommentToScreen’ du log parce que je n’ai pas besoin des commentaires, mais j’ai coché ‘bOutputToScreen’ pour que ca affiche la valeur Int à l’écran.