J’ai un vrai gros projet qui me trotte dans la tête, dont je connaît les concepts généraux, mais j’aimerais quelques conseils/idées pour avoir des mécanismes multijoueurs intéressants, si vous le voulez bien. Attention, le texte est (très) long. (Et je n’ai ne sais pas quand ce projet sera fini, ni même s’il se concrétisera, alors il se peut que tout ça soit inutile.)
Voilà : je veux écrire un moteur de fiction interactive à la StoryNexus/Fallen London, mais avec une plus grosse part multijoueur.
Pour ceux qui ne savent pas, Fallen London se joue de la façon qui suit. Chaque joueur possède un certain nombre de variables (appelées « qualités ») qui débloquent ou verrouillent des « étapes » (storylet en anglais). Chaque étape propose des options et quand le joueur en choisit une, ses qualités changent, ce qui débloque ou verrouille d’autres storylets et ainsi de suite. De multiples histoires de déroulent donc au fur et à mesure. Pour que ça n’aille pas trop vite, le joueur possède un certain nombre d’actions qui diminue à chaque choix, et qui reviennent après un temps d’attente.
Cependant, tout ceci, bien qu’en ligne, reste une expérience solo. Fallen London propose quand même certaines actions entre deux joueurs, comme offrir un objet, soigner les blessures ou attaquer. Dans ce cas, un message est envoyé au second joueur, qui accepte ou refuse la demande (ou bien elle est acceptée automatiquement, dans le cas d’une attaque-surprise par exemple).
Mais ça ne fonctionne pas comme dans un MUD : on ne voit pas les gens arriver, faire des actions, partir, tout ça en temps réel ; on ne peut pas discuter en temps réel avec les gens présents. Quand on veut interagir avec quelqu’un dans Fallen London, on choisit un contact dans la liste parmi ceux ayant les qualités requises, et un message est envoyé. Le second joueur verra le message — possiblement des jours plus tard —, l’acceptera, ou peut-être n’y répondra jamais et l’action n’aura jamais lieu.
Maintenant, j’aimerais qu’il y ait des interactions multijoueurs plus intéressantes qu’offrir un cadeau ou attaquer quelqu’un et on sait directement si on a gagné ou perdu (pas de stratégie ou quoi, c’est juste un lancer de dés). Mais je ne veux pas de temps réel, je veux que ça puisse se passer en différé, comme expliqué plus haut. Il faut que le joueur sente qu’il fait partie du monde, mais qu’il puisse aussi profiter des histoires qui peuvent se jouer en solo s’il ne veut pas faire du multijoueur.
Bon, en fait, il peut y avoir du temps réel, mais simplement pour créer des délais entre les événements. Par exemple, si un joueur fait tel choix, par exemple il fête l’anniversaire de son personnage en jeu, il recevra un message une (véritable) semaine plus tard pour lui dire qu’il vient de recevoir un cadeau d’un oncle lointain. Ça ajoute des surprises et ça rend le jeu plus vivant, mais ce n’est pas vraiment du temps réel ; c’est juste un délai.
Première chose, je pense virer le système de contact. À la place, le jeu proposera un certain nombre de personnes éligible prises au hasard. Comme ça, il y aura une barrière en moins et ça favorises des rencontres différentes. Dans Fallen London, je ne fais aucune action multijoueur et je me contente de l’expérience solo car je ne connais personne et ça ne m’intéresse pas trop de demander sur leur forum pour trouver des contacts. (Venez jouer à Fallen London avec moi, je suis tout seul ! )
Les joueurs pourraient aussi faire partie d’une faction (mais une seule), ce qui leur permettrait d’avoir des objets spéciaux. Pour avoir un objet provenant d’une faction qui n’est pas la sienne, il faut qu’un autre joueur le donne. Comme ça, ça favoriserait les échanges. (On peut aussi penser à un système d’enchères, mais ça encouragerait peut-être la compétition au détriment de l’entraide.)
Mais ensuite, que faire ?
J’ai pensé à des « efforts de guerre », où tous les joueurs doivent coopérer pour faire avancer une histoire. Par exemple, il faut apporter un million d’âmes à une porte pour qu’elle s’ouvre (tout le monde est comptabilisé : que ce soit une personne en donnant un million ou mille personnes en donnant mille chacun, la porte s’ouvre) ; une fois qu’elle est ouverte, tout le monde peut passer sans avoir à donner d’âmes et l’histoire peut continuer (on donne un petit achievement au passage pour tous ceux qui ont contribué, car cela n’arrivera qu’une seule fois dans toute l’histoire du jeu). On peut aussi penser un unique objet dans tout le monde du jeu (un seul joueur le possède), mais il faut le charger de l’essence de 500 personnes différentes, alors il faut faire passer l’objet de joueur en joueur. Le genre de trucs amusants, qui font se sentir important le joueur, sans que ce soit contraignant.
Pourrait-il y avoir l’équivalent de combats ou de donjons, mais en différé ? On pourrait faire du combat au tour par tour, mais il faudrait attendre que l’adversaire fasse son tour et ainsi de suite, alors le combat pourrait durer des jours (ce ne serait pas très amusant). Pour les donjons, les joueurs pourraient former un groupe, et chaque action de chaque joueur fait avancer le donjon. Tout le monde gagne dès que quelqu’un réussit l’action finale (du coup, ça ferait comme un mini effort de guerre, mais spécifique à un groupe et refaisable). Il pourrait y avoir un donjon où il faut allumer une torche, mais elle s’éteint au bout d’un certain temps (réel) après quoi il faut la rallumer…
On pourrait faire des trucs moins drôles comme un joueur qui est piégé à un endroit et il faut qu’un autre joueur l’en sorte, mais le premier pourrait rester bloqué indéfiniment…
Voilà, je n’ai pas beaucoup plus d’idées ! Ou bien ces histoires d’échanges d’objets et d’actions de groupes seraient suffisantes si elles sont bien utilisées et que les histoires sont intéressantes ? J’attends vos suggestions !
Désolé si c’était un peu long, mais c’est important. Il faut que je m’assure que la structure de la base de donnée soit bien dès le début, alors il faut que je spécifie tout avant de me lancer dans le code.
Merci !