Il semble que les cookies ne soient pas activés dans votre navigateur. Veuillez activer les cookies pour garantir une expérience du site optimale.

You are here

Articles

Fermer

Mise à jour 9 - Voyage vers les lieux de quête : les coulisses

 

Mise à jour 9 - Voyage vers les lieux de quête : les coulisses

Par :  Nathan "NPComplete" Partlan

Bonjour à vous, la communauté ! Vous ne vous souvenez probablement pas de moi, mais j'ai écrit une introduction il y a quelques mois. Depuis la sortie des Cavaliers du Rohan, j'ai travaillé dur sur les nouvelles fonctionnalités et les correctifs qui vous sont destinés au sein de la Mise à jour 9. J'aimerais vous parler aujourd'hui d'une de ces nouvelles fonctionnalités, le "voyage vers un objectif de quête". J'espère vous donner un aperçu de la perspective d'un programmeur sur ce genre de chose, mais je suis bien obligé d'admettre qu'il est possible que je souhaite vous en parler tout simplement parce que je me suis bien amusé lors de sa conception.

 

Commençons par une explication de ce qu'est au juste cette nouvelle fonctionnalité sympathique, et comment vous pouvez l'utiliser :

Il y a dans le pense-quête une nouvelle petite icône (un petit cercle argenté contenant une flèche) qui apparaît à côté des quêtes pour lesquelles il est actuellement possible de voyager immédiatement vers l'objectif en cours. Ceci s'appliquera à la plupart des objectifs de quête (j'expliquerai dans un instant pourquoi cela ne s'appliquera pas à toutes les quêtes) qui requièrent que le joueur se rende auprès d'un PNJ pour lui parler. L'idée principale qui est à la base de sa conception est de faciliter le retour auprès d'un PNJ qui a confié une quête afin de pouvoir la terminer, mais cela peut également s'avérer utile au milieu de certaines quêtes qui imposent un déplacement lointain dont le but est d'aller parler à quelqu'un.

Si vous cliquez sur cette nouvelle icône, vous verrez apparaître une fenêtre de confirmation (pour éviter toute utilisation accidentelle). Vous constaterez que vous pouvez voyager instantanément auprès du PNJ en échange d'un "Écrit du voyageur". Il s'agit là d'un type de monnaie se trouvant dans la bourse d'échange et qui peut être acheté au magasin SdAO.

En cliquant "OK", vous vous téléporterez instantanément auprès du PNJ en question, sauf problème de dernière minute (par exemple, si vous vous trouvez déjà trop près de ce PNJ). Ne vous inquiétez pas ; si un problème survient, l'Écrit du voyageur ne sera pas utilisé. En raison de certaines difficultés techniques, que je vais expliquer ci-dessous, vous serez dans certains cas transporté jusqu'à l'emplacement exact du PNJ, mais dans d'autres vous vous retrouverez un peu plus loin.

Vous ne pouvez pas utiliser cette fonctionnalité lors d'un combat, ni au cours d'une instance, dans les Landes d'Etten ou pendant un voyage sur une monture d'écurie. Il est également possible qu'elle soit désactivée, qu'elle le soit déjà ou à l'avenir, pour certaines quêtes où son utilisation vous permettrait de passer outre certaines rencontres narratives ou de combat importantes.

 

Bien que je ne sois pas un concepteur, j'aimerais aussi partager avec vous les raisons pour lesquelles j'ai aimé travailler dessus, et les aspects que je trouve les plus intéressants. Je suis malheureusement un joueur très occupé, et aucun de mes personnages n'a atteint le niveau maximal. J'aimerais éviter à au moins un de mes personnages l'aspect répétitif des allers-retours auprès d'un PNJ qui confie une quête, pour que l'expérience de jeu soit plus axée sur l'histoire et le nouveau contenu sympathique. Je souhaite toujours découvrir le monde, mais après avoir traversé le même champ plusieurs fois, je commence à trouver cela un peu ennuyeux. Cette nouvelle façon de voyager me permet de profiter des paysages lorsque je le souhaite, mais aussi d'éviter de faire le même trajet trop souvent. Et j'imagine que pour les vétérans du jeu qui possèdent plusieurs personnages ayant atteint le niveau maximal, cela facilitera également l'essai d'une nouvelle classe ou race.

Passons maintenant à la partie technique.

En plus de vouloir l'utiliser moi-même, j'ai aimé travailler sur cette fonctionnalité parce que sa mise en place me confrontait à des défis techniques très intéressants. L'idée de base paraît simple : trouver le PNJ dans le monde, puis téléporter le joueur à cet endroit. Il y a toutefois beaucoup de complexité cachée. Comme c'était censé fonctionner de manière automatique pour des milliers de quêtes, il nous était impossible d'anticiper parfaitement chaque situation potentielle. Il nous fallait trouver des moyens de désactiver le système pour certaines quêtes, et même d'un instant à l'autre en cas de problème survenant après l'activation du système. Il nous fallait anticiper autant de problèmes que possible, et j'ai donc passé un certain temps à m'assurer que les types de quêtes à problèmes, comme les quêtes d'instances et les quêtes dotées de plusieurs lieux différents liés à des objectifs, n'auraient pas accès à ce système, ainsi qu'à effectuer diverses petites vérifications et réflexions intéressantes.

Mais le premier véritable défi n'est probablement pas évident pour ceux qui n'ont jamais travaillé sur la programmation d'un MMO. Si aucun joueur ne se trouve à proximité d'un PNJ qui confie une quête, il est possible que la zone autour de ce PNJ ne soit même pas active sur le serveur ! Après tout, pourquoi laisser une zone activée si aucun joueur n'est là pour s'en servir ? Cela peut rendre les choses difficiles pour le programme, qui peut ne pas comprendre où il doit téléporter le joueur ; la zone en question peut lui sembler ne pas exister.

Nous disposons en revanche du Guide de quêtes. Celui-ci connaît les coordonnées que nous utilisons pour afficher les anneaux de quête et les indicateurs de distance que vous utilisez tous les jours. Dans le cas de quêtes où il n'existe qu'un seul emplacement associé à un PNJ donné, il peut être supposé que le PNJ se trouve au moins très près de cet endroit. Il s'avère que cela fonctionne très bien dans presque tous les cas, sauf pour les PNJ dont le rayon de déplacement est important.

Une fois que nous avons réussi à obtenir une version de base qui fonctionnait, nous nous sommes mis à la peaufiner. Je me suis assuré que les boutons seraient grisés lorsque vous seriez en train de combattre, de voyager par le biais de montures d'écurie, dans une instance ou lorsque votre panneau serait déjà ouvert à l'objectif d'une autre quête. Dans chacun de ces cas spécifiques, j'ai pu apprendre ou innover en termes de l'interface avec les systèmes associés. J'ai ajouté d'autres notifications d'erreurs et s'adressant au joueur, et nous avons amélioré l'apparence de l'IU. Nous avons également rencontré et corrigé des situations intéressantes de conflits d'exécution de tâches lorsque nous avons tenté d'activer différentes manières de voyager en même temps.

L'un des moments les plus mémorables, selon moi, fut celui où nous nous sommes rendus compte qu'il était un peu idiot d'être téléportés à chaque fois à l'endroit exact où se tenait le PNJ. Nous avons décidé d'éviter cela autant que possible. Nous nous sommes dits qu'il serait bon que vous arriviez à côté du PNJ. Mais que faire dans le cas de quêtes où le PNJ qui confie la quête extrait du minerai d'une paroi rocheuse, se tient au bord d'une falaise ou est enfermé dans une cellule de prison ? Chacune de ces situations s'accompagne de ses propres défis au niveau du placement de votre personnage à un endroit raisonnable. En fait, il aurait été beaucoup plus simple d'abandonner cette idée avant même de chercher à la mettre en pratique. Mais les problèmes comme celui-ci sont ceux auxquels nous autres ingénieurs adorons réfléchir avant de nous endormir la nuit, et qui nous donnent envie de nous rendre au travail le matin suivant, donc... nous n'avons pas été capables d'y résister.

Pour venir à bout de ces problèmes, nous avons dû faire preuve de créativité. Nous avons tout d'abord dû nous assurer que le fait de vous téléporter là où se trouve le PNJ garantirait que la zone serait active. Nous avons ensuite fait de notre mieux pour vous déplacer un petit peu, utilisant le système de physique et les vérifications de ligne de vision pour faire en sorte que vous puissiez voir le PNJ de l'endroit où vous arriveriez, et que vous vous trouviez à un endroit auquel il est possible de marcher. Nous avons aussi fait en sorte que vous soyez téléporté à l'endroit où se trouve le PNJ si les conditions précédentes ne pouvaient être remplies. Et cela a plutôt bien fonctionné dans la plupart des cas ! Dans certains autres, il a fallu vous faire arriver à l'endroit exact où se tient le PNJ. Et il a fallu dans quelques situations désactiver la fonctionnalité pour un objectif de quête spécifique. Vous savez maintenant pourquoi l'option permettant de voyager vers un PNJ ne sera pas toujours affichée.

J'imagine que tout ceci doit être un peu difficile à saisir sans le voir de vos propres yeux, et peut-être la plupart d'entre vous ne trouverez-vous pas cela très intéressant. Dans le cas contraire, peut-être devriez-vous envisager le développement de jeux comme plan de carrière !

Profitez bien des voyages vers vos objectifs de quête, et n'hésitez pas à me communiquer vos questions ou commentaires ! Bien que je ne puisse évidemment pas promettre que chaque suggestion soit appliquée au jeu (n'oubliez pas qu'il est possible que tout le monde ne partage pas votre opinion, et que certaines choses ne peuvent tout simplement pas être réalisées en raison des contraintes de temps auxquelles nous sommes sujets), je sais que les concepteurs aiment définir et circonscrire chaque élément jusqu'à ce qu'il soit excellent.

 

Fermer

La session de ce formulaire a expiré. Vous devez recharger la page.

Recharger