Veuillez patientez...

Forge Domaine #07 – Les scripts 2/2

Bonjour tout le monde !

Je suis Erydhil et je reviens pour un septième numéro de la chronique Forge Domaine ! Vous pouvez par ailleurs retrouver le précédent numéro en suivant ce lien : Forge Domaine #06 – Les scripts (1/2)

Vous ne l’avez sûrement pas manqué, la dernière mise à jour en date « Monitor’s Bounty » (non pas les barres à la noix de coco, on parle de Halo là) a apporté sa part de nouveautés en forge. Y compris de gros changements et ajouts au niveau des scripts, ce qui a quelque peu changé ce qui était initialement décris dans le numéro précédent.

Je mettrai prochainement à jour le premier numéro sur les scripts, qui sera spécifique aux scripts liés aux objets. L’article présent se présente comme sa suite.

En effet, cette mise à jour a ajouté la possibilité d’interagir sur les joueurs ou le score via les scripts et c’est précisément ce dont nous allons parler, ainsi que du nouveau mode « mini-jeux ». Le début de ce numéro sera purement descriptif, j’aborderai les scripts en profondeur au travers d’un exemple à la fin. Il y a énormément de paramètres que je mettrai en évidence et que j’expliquerai. Je vous conseille donc d’y apporter une attention toute particulière.

Je vous informe par ailleurs que le format de cette chronique va quelque peu changer. Celle-ci ne se présentera plus comme une chronique bimensuelle mais comme une chronique plus ponctuelle qui fera entre autre un point détaillé sur les mises à jour de la forge ou sur d’autres sujets pertinents qui me viennent à l’esprit.


Les scripts liés aux joueurs et au score


Pour commencer, nous allons nous intéresser aux scripts permettant d’interagir sur les joueurs et le score, qui sont ceux-ci :

Conditions :

Nombre : vérification : Permet de vérifier la valeur d’un canal. Cette condition est sans doute la plus importante.
Score : vérification : Permet de déclencher une action lorsque le score d’une équipe atteint une certaine valeur.
Limite : vérification : Permet de détecter lorsqu’un joueur entre ou sort des limites d’un objet.

Actions :

Nombre : modifier : Permet de changer la valeur d’un canal, action liée à la condition « nombre : vérification ».
Caractéristique : appliquer : Permet d’attribuer les caractéristiques « alpha », « beta », « charlie » ou « delta », propres aux mini-jeux.
Caractéristique : supprimer : Permet de supprimer les caractéristiques « alpha », « beta », « charlie » ou « delta », propres aux mini-jeux.
Score : modifier : Permet de modifier le score d’une équipe.
Effets d’écran : réglage : Permet de modifier les effets visuels de la carte pour tous les joueurs.
Son : jouer : Permet de lancer un son pour un joueur, le principe est le même que pour le réglage d’effet d’écran.
Marqueur de navigation : changer : Permet de mettre un marqueur sur un joueur que les autres joueurs pourront voir en jeu.

Vous remarquerez que ces scripts diffèrent beaucoup de ceux que nous avons pu voir dans le premier numéro sur les scripts. En effet, vous pouvez régler bien plus de paramètres et ils sont assez complets.


Le mode « mini-jeux »


 Quand l’utiliser ?

Une fois vos scripts paramétrés, il vous faut bien évidemment créer le mode de jeu qui va avec pour finaliser votre carte. En fait vous pouvez utiliser n’importe quel mode de jeu, tant que vous n’avez pas utilisé les scripts « caractéristique : appliquer » et/ou « caractéristique : supprimer » qui modifient des caractéristiques qui ne sont liées qu’au mode « mini-jeux ».


Quel est son intérêt ?

Ce mode de jeu se présente de cette manière :

Bien évidemment, il y a un petit problème au niveau de l’affichage sur les lignes « configuration de caractéristiques du joueur ». En version originale voilà à quoi correspondent ces lignes :

Vous l’aurez deviné, les quatre lignes « configuration de caractéristiques du joueur » correspondent à quatre caractéristiques de joueur  « alpha », « beta », « charlie » et « delta » que vous pouvez paramétrer.

Ce mode de jeu est spécialement conçu pour les créateurs de cartes funs.


Si vous forgez une carte compétitive avec les modes de jeu « classiques » comme de l’assassin, du « capture du drapeau » ou du « base » par exemple, je vous déconseille de l’utiliser. En effet, il vous faudrait paramétrer tous vos objectifs pour les rendre utilisables en mini-jeux. D’une part, ça vous compliquerait beaucoup la tâche car votre carte serait dépendante de ce mode de jeu et d’autre part, les modes de jeu adaptés à la compétition le sont forcément plus que les mini-jeux ce qui exclurait de facto votre carte de toute compétition par ailleurs.

Là où ce mode de jeu est intéressant, est quand vous voulez ajouter un mode de jeu impossible à réaliser autrement (comme du « roi de la colline » ou du « VIP » par exemple, modes que vous ne pouvez créer que grâce aux mini-jeux).

 

Si en revanche vous forgez une carte fun, les mini-jeux prennent alors tous leur intérêt car ils permettent de personnaliser au maximum les caractéristiques de joueur, ce qui est très appréciable.


Un exemple de mini-jeux


Le mieux pour saisir le fonctionnement et l’intérêt de ces nouveaux scripts reste de voir des exemples d’utilisation. Pour se faire, je vais vous expliquer comment on peut paramétrer un mode de jeu roi de la colline. Je vous préviens par ailleurs que cet exemple est relativement compliqué et ce malgré l’apparente simplicité de ses mécaniques de jeu.

Cet exemple a pour seul but de mettre en évidence les différents paramètres réglables et si possible vous permettre de comprendre leur logique d’utilisation et ce pour une raison particulière : les nouveaux scripts offrent des possibilités absolument énormes mais leur principal défaut (du moins pour nous autres non-anglophones) est qu’ils ne sont pas du tout clairs. Leur traduction est vraiment très mauvaise et leur utilisation assez alambiquée par moment, sans compter le fait que certaines options pourtant capitales sont presque « cachées » tant ce n’est pas explicite.

C’est pour cette raison que, si je vous présente un exemple si compliqué, c’est avant tout parce qu’il a le mérite d’utiliser quasiment toutes les fonctionnalités de ces nouveaux scripts. Il permet de vous présenter les choses et de mettre en évidence toutes ces options que vous n’aviez pas forcément remarqué ou dont vous ne compreniez pas l’intérêt. Voyez donc cet exemple comme un « exemple-vitrine », si vous ne comprenez pas tout le script ce n’est pas grave, essayez plutôt de comprendre chaque action individuellement.

Si je vous dis tout ça, c’est parce que, même si je ne cautionne pas vraiment l’utilisation des préfabriqués, j’ai constaté que des forgerons ont créé des objectifs de mini-jeux en préfabriqué tout à fait fonctionnels. Je conseille aux personnes qui n’y arrivent pas du tout par leurs propres moyens et qui voudraient recréer un mode connu (comme le roi de la colline par exemple) de les utiliser, vous gagnerez beaucoup de temps. Néanmoins, ceci n’est pas possible si vous voulez créer un nouveau mode de jeu, qui va nécessiter une compréhension plus globale des scripts et c’est là je pense tout l’intérêt de ce dont je vais vous parler.


Le roi de la colline


Pour présenter brièvement le mode et mettre tout le monde d’accord, le mode roi de la colline consiste à capturer une colline qui change de place ou non durant la partie. Il faut que les membres d’une seule équipe la contrôle, si la colline est contestée elle ne rapporte des points à aucune équipe.

Nous allons voir comment gérer ce mode pour deux équipes, c’est le cas de figure le plus courant et le plus simple, autrement ça se complique vraiment et je ne suis pas certain moi-même de réussir à vous l’expliquer.

Dans les faits comment allons-nous « scripter » tout ça ?

Pour chaque objectif, nous utiliserons un objet conception de script. Il a l’avantage d’être invisible et il est prévu pour ça, ce qui en fait l’objet tout désigné pour remplir le rôle de colline. Nous aurons en plus une autre conception de script qui servira à tous les coordonner (un script pour les gouverner tous) que j’appellerai le script principal (et dans les ténèbres les lier).

Chaque colline a les mêmes paramètres, ce qui simplifie beaucoup de choses. Pour chaque colline, nous allons « scripter » l’aspect visuel :

  • Elle vérifie le contrôle de la colline
  • La colline devient rouge si elle est tenue par l’équipe rouge
  • Elle devient bleue si c’est l’équipe bleue qui la contrôle
  • Elle devient blanche si aucune des équipes ne la contrôle

Concernant le script principal :

  • Il changera le score de l’équipe en fonction de la vérification des collines
  • Il lancera les vérifications de collines

 Le script principal

Nous allons commencer par le script principal et sa fonction première : gérer le score de chaque équipe :

  

Pour se faire, nous allons créer un premier script qui va incrémenter (ou non) le score de chaque équipe en fonction du contrôle de la colline. On utilise la condition « Décompte : vérification » avec un délai de répétition de 1 seconde. En fait, ce script va fonctionner perpétuellement, chaque seconde, les actions vont être effectuées.

Pour les actions, nous allons utiliser l’action « score : modifier » afin d’augmenter le score de l’équipe rouge en fonction de la variable « nombre » du canal « alpha ». Nous l’indiquerons en éditant le « générateur de score », si l’équipe est en train de marquer, la valeur du canal alpha sera égale à 1 et leur score augmentera donc, tandis que si elle ne contrôle pas la colline, son score sera augmenté de 0 et restera donc inchangé. C’est exactement la même chose pour l’équipe bleue.

   

A présent, nous créons un second script pour commander le contrôle de la colline. La condition est similaire, à ceci près que maintenant le but est d’avoir la période la plus courte possible pour mettre à jour le plus vite possible le score.

Concernant les actions, nous allons envoyer un message sur « zoulou » (différent du canal « alpha ») qui servira à commander le contrôle de colline.

Dans un second temps, nous réinitialisons le score de chaque équipe du canal en définissant les paramètres inclus dans « nombre » du canal « alpha ». Pour sélectionner les deux équipes, nous l’éditons en y ajoutant les deux équipes. Cette dernière action est très importante, elle définie en permanence la valeur du canal « alpha » à 0, de manière à ce que celui-ci ne puisse changer qu’en cas de prise de la colline par une équipe, si nous ne le faisons pas, le canal va conserver la valeur du joueur même s’il en sort et donc continuer la capture même en dehors de la colline, ce que nous ne voulons pas.


Le script colline

Nous allons commencer par le plus important pour la colline : vérifier qui la contrôle :

  

La condition pour vérifier l’occupation de la colline est la réception du message lançant le contrôle, ce qui correspond au second script paramétré dans le script principal que nous venons de voir.

Lorsque la colline reçoit un message, elle va modifier la valeur « nombre » de l’objet qui va nous servir de valeur intermédiaire à la modification du score en fonction du joueur qui est dans la colline.

La variable « portée » définit la zone physique dans laquelle la colline peut être capturée, ici nous choisissons « objet ». Concernant l’opération, il faut définir trois cas de figure : personne ne prend la colline, l’équipe rouge prend la colline (on fixe nombre = 1) ou l’équipe bleue la prend (nombre = -1), ces trois situations correspondent respectivement aux trois actions.

Par conséquent, il faut préciser quelle action correspond à la prise de l’équipe rouge et celle de l’équipe bleue. Nous définissons dans l’action 2 ce que la variable « nombre » va prendre en entrée, en l’occurrence les joueurs vivants et rouges :

La ligne « sélectionner premier » permet de dire au jeu que seul le premier joueur entrant dans la zone sera comptabilisé.
Ce sera exactement la même logique pour l’équipe bleue et l’action 3 :

Il nous reste à gérer l’aspect visuel qui va changer en fonction de l’équipe qui tient la colline ; si l’équipe rouge la tient, elle deviendra rouge, si c’est la bleue, elle deviendra bleue et si personne ne la tient ou si ce sont les deux simultanément, elle sera blanche. Il s’agit donc de scripter les changement de couleur sur le HUD des joueurs en fonction de ces diverses conditions :

   

La condition pour que la colline devienne rouge est que seule l’équipe rouge la prend, c’est-à-dire que nombre = 1.
Une première action consiste à modifier la couleur de la colline en rouge.
Ensuite, on veut afficher sur le HUD des joueurs un marqueur. Si le joueur est bleu, on lui affichera un marqueur avec l’ordre d’attaquer (action 2) :

Si le joueur appartient à l’équipe rouge, on lui affichera un marqueur avec l’ordre de défendre (action 3) :


(Ne pas tenir compte de la troisième étiquette qui est de trop sur l’image)

A présent, nous allons paramétrer une 4ème action sur le canal « alpha » qui va donner la valeur du « nombre » du canal « alpha » (voir premier script du script principal).


Pour cela, il faut déjà définir de quelle équipe nous parlons, ici c’est l’équipe rouge :

Comme dans les actions précédentes, il faut définir ce que la variable nombre prend en entrée :

Il faut refaire la même chose pour l’équipe bleue dans un 3ème script.

Et pour finir nous avons besoin d’un 4ème script pour le cas où personne ne prend la colline :

 

Dans ce cas, la colline redevient blanche pour tout le monde et on supprime le marqueur du HUD de tous les joueurs :

Une fois ceci fait, vous avez en théorie une colline fonctionnelle. Il suffit de la dupliquer pour qu’elles fonctionnent toutes de la même manière. Pour faire en sorte qu’il n’y ait qu’une seule colline active à la fois, il faut ajouter un timer et une variable aléatoire définissant la colline suivante qui va apparaître. En soit, il y a énormément de possibilité pour customiser vos objectifs mais la tâche est longue et assez compliquée.

Le mode de jeu course repose sur un principe un peu semblable, mais il est moins compliqué à paramétrer.


Pour conclure

J’en ai terminé de ce numéro. J’espère avoir été le plus clair possible et que je vous aurai permis de mieux comprendre le fonctionnement des nouveaux scripts qui n’est, je pense, pas vraiment clair au premier abord.

Et vous, que pensez-vous des nouveaux scripts ?

 

Partager
Partager

Sur le même sujet

S’abonner

Poster en tant qu'invité

Un patch vient d'être déployé pour résoudre le soucis de connexion aux commentaires. Si vous venez de vous connecter, une actualisation de la page peut être nécessaire. Si le problème persiste n'hésitez pas à nous le signaler.

Notifier de
guest
3 Commentaires
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
MajorDaan48

Merci , c’est bien pratique .

Mr Speed

Super. 🙂
J’ai à peu près bien compris l’ensemble, du coup je me relancerais peut être sur certains projets que je n’ai pu faire sur halo 2 anniversary. 😀

Erydhil

Merci pour vos commentaires, heureux de savoir qu’elle vous sera utile !