Chacun des plateaux de jeu a été conçu selon une prise de vue verticale descendante. La taille de l'interface utilisateur, ainsi que la nécessité de faire rentrer tous les éléments dans le cadre et de ne pas présenter de PNJ trop petit, limitaient la taille maximale de chaque plateau de jeu. La taille des plateaux devait donc être d'environ 4 x 6 carrés. La caméra en vue du dessus ne permettant pas de voir l'orientation des PNJ en raison de leur petite taille à l'écran, une flèche apparaît autour du PNJ lorsque celui-ci s'arrête de bouger.
Vous devez tenir compte de trois facteurs lors de la conception des plateaux :
Créer des plateaux compacts
Introduire de nouveaux concepts un par un
Faire réfléchir les joueurs
Une surface de 4 x 6 carrés présente certes quelques limites, mais permet d'éviter de créer des plateaux incontrôlables et donne aux joueurs l'impression de progresser rapidement dans le jeu. Les joueurs doivent pouvoir observer le plateau et trouver rapidement une solution, mais compte tenu de la nature des commandes, ils doivent également réfléchir aux différentes étapes avant d'appuyer sur le bouton d'exécution. Les cinq plateaux ont été conçus pour avancer progressivement dans le jeu, en introduisant un nouveau concept par plateau avant d'atteindre le plateau final nº 5.
Ce plateau est entièrement linéaire : le joueur doit se diriger dans une seule direction avec la commande « Avancer ». L'objectif du joueur est donc extrêmement simple. Il a par ailleurs le temps de tester les différentes commandes et leurs effets. | |
Ce plateau introduit le virage, obligeant le joueur à utiliser les deux types de commandes de virage pour passer au niveau suivant. | |
Ce plateau introduit des obstacles sous forme de barrières. Bien que le plateau soit une boucle, l'itinéraire à emprunter est linéaire en raison de l'emplacement des barrières. Cela oblige le joueur à interagir avec le déclencheur d'obstacles, en lui apprenant à connaître les barrières et à les franchir. Ce plateau nécessite également plusieurs commandes d'exécution, le nombre de commandes nécessaires pour franchir les obstacles étant supérieur à la limite maximale de la file d'attente des commandes. | |
Ce plateau ajoute plusieurs barrières, obligeant le joueur à emprunter un itinéraire avec de nombreux changements de direction pour atteindre les deux déclencheurs d'obstacles. Le déclencheur d'obstacle orange a dû être déplacé dans un coin en raison de problèmes de trajectoire avec le PNJ. | |
Ce plateau est semblable au plateau 4 en ce sens qu'il comporte plusieurs déclencheurs et qu'il requiert un itinéraire long et sinueux. Des problèmes de navigation de PNJ ont considérablement limité la conception de ce plateau, car le PNJ tentait souvent de contourner les murs pour aller de l'autre côté, ce qui le faisait sortir de la grille du plateau de jeu. Cette conception a dû être retravaillée plusieurs fois et a mis en évidence certaines des limites de l'API actuelle de navigation des PNJ. |
Bien que les plateaux de cet exemple soient relativement simples, leur conception permet d'importantes variations. Il est en effet possible de créer des plateaux comportant des pièges ou des téléporteurs, des plateaux avec différentes caméras, des plateaux à plusieurs niveaux, etc. Vous pouvez donc personnaliser ce modèle comme bon vous semble. Travailler dans les limites d'un concept simple peut souvent vous donner de nouvelles idées que vous n'auriez jamais imaginées auparavant.
## Concevoir en fonction des limites
Une grande partie du code de déplacement de ce modèle a été conçue en tenant compte des limites actuelles de navigation des IA. Il est actuellement impossible de contrôler directement les PNJ : vous devez en effet leur affecter des cibles de navigation à l'aide de l'interface navigatable. Bien que vous puissiez désigner n'importe quelle position comme cible de navigation, c'est au PNJ de décider comment s'y rendre.
Les IA utilisent le maillage de navigation, qui leur permet de décider des trajectoires à prendre et leur désigne les endroits où il est possible et impossible d'aller, pour se déplacer dans l'environnement. Ces décisions ne correspondent pas toujours à ce que vous attendez de votre expérience de jeu, par exemple lorsqu'une IA tente de traverser un mur plutôt que de sauter par-dessus un obstacle.
Étant donné que le PNJ de ce modèle se déplace d'un carré à la fois, il était très important de l'aligner sur le plateau de jeu. Cela ne posait aucun problème dans la plupart des cas, mais comme les PNJ tentent systématiquement d'emprunter l'itinéraire le plus court vers leur destination, ils cherchent souvent à contourner les murs ou les barrières au lieu de s'en tenir à la grille. De plus, dans la mesure où les barrières ont des propriétés de maillage de navigation différentes de celles des murs, les PNJ se heurtaient régulièrement aux barrières et continuaient à tenter de les traverser au lieu de s'arrêter. Il a donc été nécessaire de placer de nombreux appareils de modification de navigation des IA dans chaque niveau afin de bloquer le maillage de navigation et de créer des « couloirs » dans lesquels les PNJ pouvaient se déplacer. Les IA ne pouvant pas atteindre ces zones, les PNJ pouvaient rester alignés sur la grille, ce qui les empêchait de prendre des décisions de navigation inattendues, comme tenter de traverser les barrières ou de contourner les murs.
Le changement de direction posait également problème. Actuellement, lorsqu'une cible de navigation se trouve directement à leur droite ou à leur gauche, les PNJ suivent une trajectoire légèrement incurvée pour s'aligner sur la cible, puis se dirigent vers elle. Cela posait problème, car les PNJ se heurtaient souvent aux murs ou avaient du mal à s'orienter dans les coins, ce qui les faisait dévier du plateau de jeu après quelques virages. De nombreux types de déplacements ont également dû être supprimés des IA, notamment la capacité de sauter ou d'escalader, car cela leur permettait de sortir des limites du plateau.
Étape suivante
Vous avez créé cinq niveaux pour que le personnage puisse progresser dans le jeu. Dans l'étape suivante, vous définirez les données de commande génériques et les commandes spécifiques utilisées par le personnage.