Jour 031 : Turn-based ?

Une des réflexions que j’ai eu pendant ces longues semaines de silence et celle du game-play général. Ces temps-ci avec Clément on joue à Hades (que je vous recommande très très chaudement). C’est un rogue-like très bien fait. Très nerveux ! Plus j’y joue, et plus je me dis qu’il me sera très difficile voir impossible de réaliser un game play en temps réel fluide et maniable par moi-même.

Du coup, je me dis que le turn-based peut être la solution qui répondra à plusieurs problématiques :

  • C’est plus simple à programmer d’un point de vue navigation : Il n’est pas question de zone de collision, de vitesse, du gestion du temps et du lag, gestion de la vitesse en fonction de l’angle du mouvement, etc..
  • C’est plus simple à gérer d’un point de vue combat (surtout qu’on gère jusqu’à 4 personnages en même temps)
  • C’est plus simple à gérer d’un point de vue multi player (cette option est toujours envisagée, en contrôlant 1 à 2 personnages chacun)
  • C’est plus simple de programmer une IA qui ne doit pas s’adapter en fonction de plein d’événements qui peuvent se produire en même temps.
  • Ca demande moins de ressource processeur pour le joueur (le jeu est jouable sur des plus petits devices)
  • Ca demande moins de ressource Internet pour jouer en ligne à plusieurs (un lag voir une déco complète n’est pas du tout problématique dans la mesure où ça temporise simplement le tour en cours. Ca n’empêche même pas les autres de jouer ou regarder ce qu’il se passe en attendant)

En gros, il s’agit de mettre une grille par terre, et de dire au joueur où il peut aller (en fonction de la distance maximum parcourue par tour de son personnage), et sur qui il peut taper. Je pense que je suis capable de programmer ça.

Dans le cadre des scènes hors combat, ça ne change rien (à part qu’on est limité à une grille au sol). Dans le cadre des combats, ça permet de mieux contrôler ce qu’on fait. On prend le temps de choisir les attaques adaptées.

Le problème majeur, c’est que retire une notion d’agilité, de stress que je trouve inintéressante à avoir. Une notion d’urgence. Il peut alors être question de simplement ajouter un timer pour chaque tour (par exemple, on a seulement 5s pour choisir quoi faire, sinon on loupe son tour et l’ennemi peut alors faire deux actions).

Et un problème annexe, c’est qu’en multiplayer, on passe beaucoup de temps à attendre l’autre joueur.

Deux modèles de Turn Based

En ce qui concerne le game-play, j’hésite entre deux modèles :

Le plus naturel, serait que l’UI nous indique quand c’est notre tour et mettant en valeur notre personnage et qu’on puisse se déplacer et/ou attaquer. Au moment où on attaque, qu’on est allé aussi loin qu’on peut aller, ou que le timer est à zéro, alors c’est le tour de l’ennemi. C’est un format agréable je pense si on a un seul personnage à jouer. Mais si on a 4 personnage à jouer, ça veut dire qu’on passe notre temps à déplacer les personnages un par un chacun leur tour. Je ne sais pas à quel point ça peut être un peu longuet à force. Si les 4 personnages sont assez diversifiés et que certain peuvent commencer à attaquer à distance pendant que d’autres se déplacent, ça peut le faire. Dans ce cas, chaque personnage a droit à son tour (idem pour les ennemis du coup)

Le moins naturel (selon moi), c’est le format classique RPG-strategy : Quand c’est notre tour, on déplace tous nos personnages, on les envois attaquer, on peut même leur donner des missions sur plusieurs tours (par exemple un long déplacement), on peut annuler nos actions, et dès qu’on est ok avec ce qu’on a fait, on valide la fin du tour, et c’est alors à l’ennemi de jouer. Dans ce cas, chaque équipe a droit à son tour (le(s) joueur(s) contre les ennemis)

Dans le cadre d’un jeu multiplayer, ce dernier modèle convient tout à fait. Par exemple, si on joue à deux, on peut s’attribuer 2 personnages chacun et jouer avec nos deux persos comme deux petites armées à gérer chacun de son côté. Mais on doit patienter. Beaucoup patienter. Pire encore si on est 4.

Que choisir ?

Mais je me demande si un modèle plus collaboratif peut fonctionner. Un genre de mix entre les deux. Un format dans lequel :

  • le tour est lié à l’équipe et non pas au personnage.
  • Quand c’est notre tour, on est invité à se déplacer/attaquer avec chaque personnage individuellement chacun leur tour dans un délai court. Chaque joueur peut donc jouer en même temps dans la mesure où chaque joueur est associés avec 1 ou 2 personnages.
  • Quand le(s) joueur(s) ont terminé, le tour est automatiquement clôturé et c’est au tour de l’ennemi d’agir (et ça va très vite pour l’ennemi car sa réponse est instantanée)

Et quand il n’y a plus d’ennemi, alors on repasse dans un mode semi-temps réel, dans lequel chaque joueur peut switcher de personnage (s’il gère plusieurs personnages). Quand il n’y a pas d’ennemi, un lag n’a pas d’incidence sur le jeu et peut donc être ignoré).

Conclusion

Mode libre

Il y aurait donc le mode Libre (pas de combat) dans lequel on clique sur le personnage qu’on veut contrôler. Une fois qu’il est activé, on a juste à cliquer là où on veut pour qu’il y aille. Dans le cas d’une manette, il s’agit de faire quelque chose du genre L1/R1 pour switcher parmi les personnages et ensuite de naviguer simplement avec le joystick.

Le fonctionnement serait identique en multijoueur avec une latence acceptable qui peut être ignorée et qui ne sera pas perceptible par le joueur.

Mode combat

Et il y aurait le mode Combat dans lequel le joueur actif nous est imposé, on a quelques secondes pour faire une action avec le personnage, jusqu’à ce que les 4 personnages aient fait une action. Ensuite on regarde l’ennemi bouger ses troupes en réaction à ce qu’on vient de faire.

En multijoueur, ça fonctionne exactement pareil sauf qu’on est invité à ne choisir les actions que du(des) personnage(s) qui nous est(sont) attribué(s). Le tour est donc plus court, mais se passe de la même façon. Et là, il n’est pas question de lag. Quand les deux joueurs ont choisis leurs actions, on attend simplement que l’info soit passée de l’un vers l’autre, et c’est seulement à ce moment là que le tour de l’ennemi commence. Il peut donc arriver qu’il y ait quelques secondes d’attente à la fin de notre tour. Mais ça pourra être déguisé en quelque chose du genre “L’ennemi se prépare à réagir !” ou bien plus sincèrement un message du genre “En attente des autres joueurs”.

Avec ce fonctionnement, on garde l’urgence et le stress. La musique pourra faire son effet et changer en fonction des passages (notre tour, pas notre tour, plein de vie, pas de vie, etc..)

En bonus

Pour pimenter le tout, j’aimerais que le jeu ne soit pas basé uniquement sur la stratégie, mais aussi beaucoup sur l’agilité. En tour par tour, il n’est évidement pas question de ça. Alors je pense qu’en plus de mettre en place un timer, je vais mettre des mini jeux d’agilité qui permettront de définir la performances des attaques ou de donner une chance de faire une esquive par exemple. Des jeux aussi simple que de presser un bouton au bon moment (en fonction d’un timing ou d’un réflexe), mais aussi des combinaisons ou séquences de boutons/touches à faire dans un temps imparti. Je pense que ça permettrait vraiment d’avoir un gameplay qui ressemble à du temps réél, sans en être un.

N’oublions pas que nous sommes surtout là pour raconter une histoire. Mais je tiens à ce que le joueur soit imprégnié de l’histoire par ces séquences de jeu plus ou moins difficiles qui feront vraiment appel à son attention. Et d’un point de vue multiplayer, la collaboration sera du coup très importante et aidera aussi à se plonger dans le jeu.

A réflechir encore un peu, mais je pense que c’est une bonne piste.


Tags :

Catégories :

Mis à jour :