serverlobby.io

Personnalisation d’Orbis - Partie 2 : Aventure, Création de quêtes

Publié le Écrit par

Bienvenue dans la seconde partie de notre série consacrée à la personnalisation d’Orbis. Si vous n’avez pas lu la partie 1 consacrée à la génération du monde, nous vous encourageons fortement à la lire !


Avertissement: Ceci n'est pas un blog post Hytale officiel mais une tentative de vous donner plus de détails sur les possibilités de personnalisation d'Hytale. Toutes les informations présentes ici sont soit déjà confirmées soit très vraisemblables.


Dans l’épisode précédent, nous nous étions réjouis des opportunités de personnalisation de la génération du monde. Cette fois-ci nous nous intéressons aux mécanismes qui régissent l’aventure du joueur dans Orbis, et plus particulièrement des quêtes et des objectifs. Comme toujours, nous évoquerons tout cela du point de vue d’un moddeur ou d’un serveur souhaitant personnaliser le jeu.

Quelques mots sur les quêtes

Les quêtes sont un élément phare de tous les jeux d’aventures. Et c’est d’autant plus excitant dans les jeux à monde ouvert : Comme le monde est vaste, il y a énormément de lieux à explorer, une histoire riche, et des quêtes en grand nombre. Par exemple savez-vous combien il y a de quêtes dans World of Warcraft ? 29 000. Si, si, vous avez bien lu 29 000. C’est un des élément du jeu que j’ai beaucoup apprécié.

Les quêtes, lorsqu’elles sont bien conçues et suffisamment variées procurent du plaisir au joueur. D’une part, la quête vous fixe un objectif à atteindre, ce qui est une source de motivation. Puis lorsque vous vous êtes donné pour compléter une quête, il émerge alors un sentiment de satisfaction, souvent accompagné d'une récompense bien méritée dans le jeu !

Trork objectif

Notons ici que nous parlons de quêtes au sens large, et pas uniquement du scénario principal du jeu. En effet, dans la plupart des jeux à monde ouvert, les quêtes faisant partie du scénario principal représentent la minorité des quêtes disponibles dans le monde.

Alors creusons un peu plus le sujet en commençant par nous intéresser sur ce qu'est une quête et notamment de ce qui la compose.

De quoi est constitué une quête ?

  • Des pré-requis (conditions pour pouvoir obtenir la quête, par exemple avoir un certain niveau, avoir terminé une autre quête préalablement)
  • Un élément déclencheur, qui va démarrer la quête (en parlant à un PNJ ou en entrant dans un lieu par exemple)
  • Un scénario ou une histoire (typiquement tout le bla-bla du PNJ qui vous a donné la quête)
  • Des conditions de réalisations (les objectifs à atteindre dans la quête : ennemis à tuer, ressources à récolter, objet à trouver…)
  • Une ou des récompense : valeur monétaire, ressources, équipement, expérience…

Faisons maintenant le pont avec Hytale.

Les quêtes dans Hytale

Y aura-t-il des quêtes dans Hytale ?

Oui, il y aura des quêtes dans Hytale. Sans pour autant avoir fait l’objet d’un article dédié, les quêtes ont été mentionnées plusieurs fois sur le blog d’Hytale. A commencer par le blog post présentant l’interface du jeu : on y apprend qu’on pourra utiliser la carte du Monde pour trouver des quêtes : exactement comme dans un MMORPG.

Carte du monde dans Hytale La carte du Monde permettra de trouver de nouvelles quêtes

On peut aussi s’attendre à la présence d’un livre de quête, rassemblant toutes les quêtes que vous avez commencé. C’est ce que suggère l’icône d’un livre également présente dans l’interface du jeu (à moins qu’il s’agisse de tout autre chose, comme un livre de compétences !).

Hytale Quest Journal L'icône d'un livre dans l'interface du jeu : Peut-être un journal de quêtes ?

Hytale disposera également d’un système d’objectifs que nous avons vu à l’oeuvre dans cette vidéo :

Notez le nombre de squelettes à tuer qui apparaît au moment où les joueurs entrent dans la pièce. Ce type d'objectifs ce déclenche lorsque le joueur pénètre dans une certaine zone. On sait aussi que ces objectifs seront réalisables en groupe, et seront donc partagés avec les joueurs à proximité.

Enfin, ces objectifs pourront être chainés entre eux (c'est à dire qu'une mission pourra être composée de plusieurs objectifs). Tout ce système d'objectifs sera vraisemblablement mis à profit dans les quêtes du jeu, et notamment dans le scénario principal.

Des quêtes aux objectifs variés

Nous évoquions un peu plus tôt de l’importance de la variation dans les quêtes. C’est bien sûr important pour ne pas ennuyer le joueur et pour l’inciter à adopter des stratégies originales et différentes face à des objectifs variés et complexes. C’est également important pour les créateurs de mods et de serveurs : Une grande souplesse dans les quêtes implique plus de possibilités, donc plus de façons d’exprimer sa créativité et d'être original.

De par la nature « bac à sable » d’Hytale, on peut imaginer une grande variation dans le gameplay des quêtes, chacune pouvant d'appuyer sur les nombreuses mécaniques du jeu. Voici quelques exemples d’objectifs que l'on peut s'attendre à trouver dans des quêtes :

  • Donjons: Vaincre le boss d’un donjon
  • Combat: Tuer des créatures
  • Ressources: Récolter du minerais, du bois, etc…
  • Exploration: Découvrir une nouvelle zone
  • Agriculture: Mettre en place une exploitation agricole
  • Artisanat: Crafter un équipement légendaire
  • Construction: Construire sa première maison
  • Factions: Venir en aide aux Kweebecs

Hytale Farming Le système d'agriculture dans Hytale sera très avancé : alors pourquoi pas des quêtes secondaires dans ce thème ?

A cette variété d’objectifs possibles viennent se greffer les interactions riches. Et les derniers blog posts officiels nous ont montré qu’Hytale devrait bien être fourni en la matière, notamment grâce aux comportements avancés des créatures peuplant Orbis. Alors que dans de nombreux jeux, attaquer est la seule option disponible face à un ennemi, Hytale vous proposera d’autres alternatives telles que la diversion ou la discrétion. On peut alors imaginer des objectifs de quêtes ou des défis intéressants tels que :

  • Pénétrer dans un campement de Trork sans vous faire remarquer
  • Traverser un marécage de la zone 3 sans aucune arme (et on a vu que les torches seraient un atout précieux)

Saurez-vous profiter du sommeil de ces Trork pour envahir leur campement?

Créer ses propres quêtes dans Hytale

Les serveurs Hytale pourront-t-ils créer leurs propres quêtes ?

A priori, oui. Il a été confirmé que le système d'objectifs du jeu serait extensible par les créateurs de serveur. Sachant cela, on s’avancera à affirmer sans trop de risque que les créateurs de serveurs pourront créer leurs propres quêtes et leur propre scénario d'aventure. Il reste à déterminer quel choix technique les développeurs du jeu feront pour la création de quêtes. Je vais faire un peu de spéculation ici. Il y a deux approches qui me paraissent plausibles : soit les quêtes seront décrites au format JSON, ou bien elles seront scriptables en Javascript.

Possibilité #1: JSON

Il se pourrait bien que les quêtes puissent se définir au format JSON. Il y a deux arguments venant appuyer cette hypothèse : D'une part on sait que ce format est déjà utilisé pour définir les comportements des PNJs. De plus, tout comme pour les comportements de PNJs, ce format s'adapte très bien à la déclaration de quêtes, tout en restant simple et lisible !

Bien souvent, les quêtes n'ont pas besoin d'être « programmés », mais peuvent simplement être « décrites ». On l’a vu au début de l’article, les quêtes peuvent être décrites par un ensemble de propriétés : pré-requis, liste d’objectifs, récompenses… Si les quêtes partagent toutes une structure commune, alors un langage tel que JSON convient très bien pour leur création.

Si JSON était effectivement retenu pour ça, voilà à quoi pourrait ressembler la définition d'une quête simple, consistant à tuer 10 Trorks. La quête ne serait donné que si le joueur n'a pas sympathisé avec la faction des Trorks et la récompense serait une épée en bronze et 100 points d'expérience.

{
  "id": 1,
  "title": "Kicking Trork' butts",
  "requirements": {
    "FACTION_NOT_IN": ["Trork"]
  },
  "objectives": [
    {"type": "KILL", "entity": "Trork", "amount": 10}
  ],
  "rewards": {
    "items": {"BRONZE_SWORD": 1},
    "xp": 100
  }
}

Possibilité 2: Scripting Javascript

La seconde possibilité serait de pouvoir créer des quêtes de la même façon que l’on moddera le jeu. On sait que Javascript sera probablement le langage retenu pour le live scripting. Par rapport au format JSON, le scripting a l'avantage d'être plus souple. En contrepartie, il est un peu moins intuitif. Si les quêtes sont définies à l’aide de Javascript, cela se fera probablement via de la programmation évènementielle. C’est à dire que chaque quête sera une classe Javascript qui réagira à différents évènements pertinents dans le jeu. Dans notre exemple précédent, notre quête réagirait chaque fois qu'une entité est tuée, pour vérifier s'il s'agit d'un Trork.

Voilà à quoi la même quête ressemblerait en Javascript :

class KickTrorkButtQuest extends Quest
{

  constructor(player, state) {
    super("Kicking Trork's butts", player, state) 
  }

  static canStartQuest(player) {
    return !player.isAmicalWith("Trork")
  }

  function onEntityKill(killer, killedEntity) {
    if(killer != this.player || killedEntity.type.name != "Trork")
       return;

    this.state.killCount += 1
    this.checkCompletion();
  }

  function checkCopletion() {
    return this.state.killCount == 10;
  }

  function onQuestCompleted() {
    this.player.addExperience(100)
    this.player.giveItem(new Item("BRONZE_SWORD"))
  }
}

En conclusion, les quêtes seront indispensables à tout serveur Roleplay dans Hytale et j'ai hâte d'en apprendre plus à leur sujet dans un blog post officiel. Avec son environnement bac à sable doté d'interactions riches, Hytale a le potentiel de voir naître de nombreux MMORPG, crées par sa communauté. Les quêtes devraient être l'un des piliers principaux de ces aventures.

Voilà qui achève le second volet de notre série « Personnalisation d’Orbis ». J’espère qu’il vous aura plu ! Si vous avez appris des choses, n’oubliez pas de partager cet article, cela nous aide beaucoup et rejoignez notre Discord pour rester au courant de la sortie de nouveaux articles.