Actualités

Introduction au comportement des créatures

Dans l’article d’aujourd’hui, nous allons vous donner un aperçu de la manière dont nous nous y prenons pour amener les PNJ et les créatures d’Hytale à la vie. Pour ce faire, nous allons vous montrer quelques aspects du comportement des Trorks, la manière dont ils réagissent face au joueur, à l’environnement, et entre eux. Bien sûr, ces principes s’appliquent également aux autres créatures, et chacune d’entre elles sera moddable.

Article original publié sur le site d’Hytale, traduit par Matthieu.

Toutes les images présentes dans cet article représentent des projets en cours, et sont donc sujets à des changements.

Après qu’une créature ait été designée, modélisée et animée, les développeurs tâchent de lui donner vie en utilisant le système de script de comportement.

Le système utilise des scripts JSON qui font appel à des éléments de comportement qui nous permettent de spécifier comment un PNJ perçoit le monde qui l’entoure et comment réagir dans une multitude de situations. Ces scripts peuvent déclencher des animations, des changements d’états, et bien plus… Un exemple très simple serait un script déterminant si une créature ayant été attaquée doit fuir ou se défendre. Des scripts plus sophistiqués peuvent lancer les PNJ à la poursuite du joueur, ou bien les envoyer en quête de choses intéressantes, comme des feux de camp ou de la nourriture.

«Nous utilisons des blocs pour créer la base d’un PNJ» nous fit le développeur Ioseff Griffith. «Nous avons des détecteurs qui permettent d’évaluer comment un PNJ interprète le monde autour de lui, et c’est ainsi qu’il décide ce qu’il souhaite faire. Nous avons donc des actions et des déplacements qui correspondent à la manière dont ils interagisseront avec le monde ou bien leur cible. Nous combinons tous ces éléments pour créer des composants et des modèles dont les variantes peuvent facilement et rapidement permuter entre elles.

Dans cet exemple, vous pouvez voir un morceau du script qui décrit le comportement que doit adopter un Trork lorsqu’il voit le joueur. Le script gère plusieurs éléments de cette interaction. Il active une animation ‘alerté’, qui aide le joueur à comprendre qu’il est repéré. Il lance aussi une ‘balise’ qui permet aux autres Trorks présents dans un certain rayon d’être alertés de la présence du joueur. Les détails exacts de cette interaction peut être modifiée de manière précise, mais l’implémentation globale est basée sur un modèle commun à tous les PNJ.

Cette approche précise du comportement rend plus facile l’implémentation de nouveaux PNJ ou créatures. «Quand vous scriptez un PNJ, vous n’avez pas besoin de spécifier des choses telles que ‘manie une épée’ ou ‘avance de X mètres sur la droite’» explique Ioseff. Appliquer un composant abstrait tel que ‘fuir’ ou ‘chercher’ est suffisant. Le système de comportement gère les bases du déroulement de l’action souhaitée.

«Au niveau le plus basique, le moyen le plus simple de créer un PNJ est d’utiliser des modèles» nous dit-il. «Ces modèles sont faits de composants que nous crééons à partir de détecteurs, d’actions et de mouvements pour les rendre simples à la réutilisation à travers de multiples scripts.» Un exemple de composant est la détection de bruit, explique Ioseff. Il utilise une combinaison de détecteurs qui permettent à un PNJ d’interpréter son environnement. «Quand vous mettez un nouveau PNJ dans loe monde, il devrait être capable de s’adapter avec des environnements avec lesquels il n’a pas été spécialement scripté pour, du moins jusqu’à un certain point» dit Ioseff.

«Une fonctionnalité importante de ce système est le haut degré de réutilisation» nous dit le développeur Eric Reinhart. «Il est facile de modifier des comportements existants, en remplacer quelques parties, tout aussi facile que de créer quelque chose de nouveau.»

«Pour quelqu’un qui veut modder ou créer du contenu, l’avantage est qu’il est très facile d’apporter des modifications simples» poursuit Eric. «Mais cela permet aussi aux modders de tout changer jusqu’à d’infimes détails.»

Voici un exemple. En ajoutant quelques paramètres supplémentaires au comportement du chasseur Trork, nous pouvons ajouter les ours en tant que créature qui les fait entrer en état d’alerte.

Maintenant le chasseur Trork hurle devant un ours ! Il s’agit d’un simple exemple, ils ne le feront pas forcément dans le jeu final. Même si cela donne un exemple de la manière dont l’ajout de nouveaux détails au comportement des créatures est poussé.

Bien souvent, le comportement d’un PNJ sera défini par l’équipe de design avant même qu’il soit implémenté. Parfois, cela implique l’ajout de nouvelles fonctionnalités au système de comportement qui permet ainsi d’étendre les possibilités de ce dernier. Cependant, quelques imprévus lors de la phase de développement mèneront à l’ajout de nouvelles bizarreries comportementales.

«Quelques petits éléments sont ajoutés pendant le développement» explique Ioseff. «Par exemple, les Trorks peuvent parfois s’entraîner et donc se battre entre eux. Quand j’ai implémenté ça, un Trork vaincu pouvait changer d’état. Parfois ils passaient directement à l’état de ‘endormi’, c’était drôle car on dirait qu’il avait été mit K.O. J’ai implémenté ça proprement, et des Trorks s’entraînant pourront se mettre K.O après un combat.»

L’intention de l’équipe est de créer des créatures et des PNJ qui contribuent à l’immersion du joueur dans le monde en agissant indépendamment de ce dernier. En apprenant comment chaque créature réagit, les joueurs peuvent donc trouver des manières créatives d’interagir avec. Par exemple, les Trorks ont une certaine attirance pour la viande :

Prenez cette information comme il vous semblera !

L’équipe a trouvé que la combinaison de plusieurs comportements peuvent donner des résultats plutôt réalistes. «J’avais crée un script pour l’archer Trork, et j’essayais de tester comment l’archer tirait» dit Eric. «C’était la première fois que nous avions la possibilité de faire changer d’arme à une créature. C’était incroyable d’essayer de poursuivre cet archer, et dès que nous étions assez proche de lui, il se retournait et sortait une arme de mêlée. Ces simples actions combinées entre elles étaient vraiment satisfaisantes.

Dans l’image ci dessus, vous pouvez voir que le Trork se repose à l’extérieur lorsqu’il commence à pleuvoir. Ce déclencheur change l’état de ce dernier de ‘endormi’ à ‘éveillé’, puis le Trork décide de se mettre à l’abri à la chaleur. Il se déplace donc vers le feu de camp le plus proche et s’assoit. Différents éléments du comportement des Trorks sont impliqués dans cette action. Notre but avec le système de comportement est de pousser plus loin l’immersion du joueur, et nous avons hâte de voir ce que nous réservent les moddeurs !

Voici quelques exemples des comportements que vus pourrez rencontrer lors de votre exploration d’Orbis :

Les Kweebecs n’ont pas besoin de manger ou boire, en tant que plantes, ils chercheront des coins de lumière et prendront joyeusement un bain de soleil pour se nourrir de tous les nutriments dont ils ont besoin !

Les gobelins adorent lancer des bombes pour résoudre leurs problèmes. Ils peuvent détruire des blocs et créer des trous, ce qui est un problème en soit. Bien joué les gobelins.