Bonjour à tous,
je travaille un projet de jeu de société pour 3 ou 2 joueurs sur plateau (Chifoomix) avec une approche tactique paradoxale (type Pierre-Ciseaux-Feuille). J'ai codé un prototype monoposte et j'aimerais l'étendre à un vrai multl-ijoueurs sur un site responsive.
Techniquement le site se présentera comme une application SvelteKIt,avec un échange de données bidirectionnel avec SocketIO et un back-end NodeJS avec base de données PostgrSQL ou SQLite.
Ma question porte sur le mécansisme de validation des règles du jeu par les différents joueurs dans un souci de minimiser lle charge CPU et mémoire sur le servcur.
Le moteur de règles du jeu est en cours de développement (d'apres un prototype) et se présente comme une lib JS indépendante, utilisable aussi bien sur le navigatreur que sur le serveur (module UMD); j'aimerais que le serveur ne s'occupe que du strict minimumu en ce qui concerne la validation d'un tour de jeu et qu'il ne serve que de "passe-plats".
J'imagine un système de "validation par les pairs", un peu comme dans la vie réelle, on valide sa partie/grille de jeu de lettres ou ses plies de tarot/belote par les gens autour de la table de jeu, sans avoir à nécessiter d'arbitre à chaque fois qu'on joue dans sa cuisine...
Imaginons 3 joueurs A, B et C chacun sur son portable avec une situation de jeu 'NOW'
* A joue PLY et applique les règles à NOW et calcule NEXT = rules(NOW, PLY)
* B qui stocke NOW recoit PLY et NEXT[A] calcule NEXT[B] et envoie PLY et NOW[B] au joueur C
* C qui stocke aussi NOW recoit PLY et NEXT[C] et calcule NEXT[C] qu'il envoie à A
Le joeur A compare NEXT[A] à NEXT[C] s'ils sont égaux envoie l'ordre de patching à B qui met à jour son état de jeu et le propage à C, qui met à jour son état interne et envoie confirmation à A.
Ensuite on peut passer au tour suivant et c'est à B de jouer et le cycle peut recommencer
A-B-C, B-C-A, C-A-B, et on recommence !
Le serveur lui se contente de passer les plats et n'historise que le mouvementeffectué et n'interviendrait qu'en cas de désaccord flagrant ou de triche pour ihnterrompre la partie le cas échéant.
QUESTIONS:
* Qu'ne pensez vous ?
*Faudrait il que je révise le fonctionnement d'anciens protocoles tels que les token rings pour les réseaux ?
* Est-ce qu'une telle mécanique de jeu est elle formulée quelque part sur le net ?
Partager