C'est une idée intéressante que d'autres ont effectivement eue aussi. Un jour on m'a dit "oui mais non ça sera pas bien parce que patati patata". Mouais. Je pense que ça reste faisable.
Toute la difficulté sera de déterminer quelles sont les features communes à tous les jeux auxquels tu voudrais jouer avec un tel outil, quelles features annexes peuvent être implémentées sans que ça gène les jeux qui n'en ont pas besoin, tout en se limitant pour rester un jeu "papier crayon" libre plutôt qu'un MMO abstrait.
Voici quelques idées qui me viennent là comme ça en réponse à ton post.
- On a un espace de jeu potentiellement infini dans lequel évoluent les joueurs.
- Le MJ peut à tout moment dessiner sur cet espace pour faire joli, ainsi que placer des murs. Un peu comme quand un MJ "papier crayon" prend un papier pour griphoner un vague plan pour montrer aux joueurs l'agencement des lieux.
- Le MJ peut dézoomer pour avoir une vue globale de la partie, ou de l'endroit qui l'intéresse. Facile à implémenter si les dessins du MJ ne sont composés que de quelques traits vectoriels.
- Les paroles des joueurs sont locales. Si le joueur A dit "Bonjour les enfants !", les joueurs proches voient une petite bulle au-dessus du joueur A avec marqué "Bonjour les enfants !", les joueurs plus loins voient une bulle avec marqué "Bauur é fan !", et les joueurs qui sont trop loin ne voient même pas la bulle. Avec de la technologie moderne, les bulles sont remplacées par les joueurs et leur casque-micro.
- A tout moment le MJ peut "drag & drop" un joueur pour le téléporter ailleurs. Ca permet au MJ de changer de décor, de faire des ellipses...
- Le MJ peut changer la vitesse de déplacement des joueurs à volonté. Ca permet de simuler un moyen de transport ou une blessure. Bien sûr comme de toute façon le MJ peut téléporter les joueurs, il peut à tout moment dire "non en fait tu peux pas aller là parce que tes trois jambes ont brûlé tout à l'heure", et remettre le joueur là où il est sensé être. Le fait de pouvoir changer la vitesse de déplacement du joueur n'est qu'un outil qui peut favoriser l'immersion puisqu'alors le MJ n'aura pas à systématiquement dire aux joueurs qu'ils vont trop ou pas assez vite, ou à les déplacer à la main.
- Rajoutez à ça un système permettant aux joueurs de communiquer anonymement à leur MJ pour tout ce qui est question sur l'univers, tentative de manipulation secrète, ou, d'une façon générale, tout ce qui n'est pas gérable dans le modèle ci-dessus.
Tout ça permet, en quelques traits du MJ sur le terrain, de gérer automatiquement les déplacement et les groupes, et ainsi de gérer automatiquement les trahisons et compagnie. Mais il ne faut pas aller trop loin. Par exemple, on pourrait se demander comment, dans ce modèle de jeu, les joueurs pourraient se parler par télépathie. Je propose que le joueur A dise au MJ (dans un canal privé) "je dis télépathiquement au joueur B qu'il est moche" et le MJ dit au joueur B (dans un autre canal privé) "tu entends A te dire que t'es moche par télépathie". Je crois qu'il ne faut pas essayer d'implémenter ce genre de détails autrement.
Evidemment, dans un jeu où on est des entités divines qui n'ont pas de présence physique et donc pas de position dans l'espace, ce système ne servirait à rien... Cet exemple montre qu'il n'y a pas de point commun à tous les jeux de rôle et qu'il faut faire très attention dès qu'on implémente une feature, car elle va peut-être réduire le champ des possibilités...
Mais pour résumer : avec un espace infini, griphonable par le MJ, dans lequel peuvent se déplacer les joueurs, les MJ pouvant forcer leurs déplacements, et avec un système de voix locales et de canal privé pour parler au MJ, je pense qu'on a déjà une bonne partie de ce dont on a besoin. Et surtout, ce n'est techniquement pas très éloigné d'un paint collaboratif, et ça on sait que ça existe et que ce n'est pas très dur à programmer. Donc ça serait un outil tout à fait faisable.
Après on peut envisager des bonus genre des langages de script pour édicter des règles de combat, afin de gérer des statistiques des joueurs et de lancer les dés automatiquement. Mais je pense que c'est loin d'être la priorité. Un exemple de script :
function tour_de_combat(a, b) =
let perdant =
if a.force > b.force then b else a
in
if perdant.dexterite < 2d10 then
begin
perdant.vie <- perdant.vie - 1;
afficher (perdant.nom, " s'est pris un coup")
end else
afficher (perdant.nom, " a esquivé")
Ensuite le MJ peut appliquer cette fonction quand il le veut, sans que les joueurs le voit. Mais bien sûr c'est juste pour faciliter la vie du MJ s'il veut automatiser certains calculs. Sinon il peut tout simplement avoir un papier et un crayon devant son écran
Est-ce qu'un langage de script est facile à intégrer, me direz-vous ? Pour moi oui, programmer des interpréteurs ou compilateurs est mon dada, je fais ça très vite.
Edit : bon je m'aperçois que j'ai fait un post très décousu et que rolistik implémente certainement une bonne partie de ces idées. Je m'en excuse, d'habitude je fais plus d'efforts quand je post, mais là j'ai pas le temps