JeuWeb - Crée ton jeu par navigateur
Machines à états : gérer les cas d'erreurs ou laisser ça a la charge du client ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Machines à états : gérer les cas d'erreurs ou laisser ça a la charge du client ? (/showthread.php?tid=7949)

Pages : 1 2


RE: Machines à états : gérer les cas d'erreurs ou laisser ça a la charge du client ? - Argorate - 10-12-2018

Pour moi il faut un Controller, qui fait interface entre les event reçu par les WS (sorte de router) et ta state machine (modele), pour moi c'est là que ça devrait se passer...

C'est forcement le serveur qui check les règles du jeu hein ^^ je comprends pas que tu le demandes, tu le sais très bien. Tu peux faire une vérif client pour éviter des échanges mais c'est tout.


RE: Machines à états : gérer les cas d'erreurs ou laisser ça a la charge du client ? - Sephi-Chan - 10-12-2018

Evidemment, le middleware évoqué est bien côté serveur. La state machine aussi puisque c'est un process Erlang (un genre de thread qui vit longtemps et auquel tu peux envoyer des messages, l'entité à la base du modèle de concurrence d'Erlang).

Actuellement je fais comme décrit Xenos, ce middlware effectue des contrôles basiques, il vérifie qu'il reçoit bien en paramètres les types attendus, sans pour autant faire respecter les règles (il ne les connait pas, c'est la state machine du jeu qui les connait).

En aparté, je ne considère pas la BDD comme une state machine, son interface étant infinie.


RE: Machines à états : gérer les cas d'erreurs ou laisser ça a la charge du client ? - niahoo - 14-12-2018

Avec gen_statem, faire un catchall pour chaque event pour éviter de chrasher le process n'est pas "mal" en soi, c'est pas grave d'avoir un peu de code défensif.