Jeu multijoueur avec JavaScript backend et frontend. Quelles sont les meilleures pratiques?

Je pense à la création d'un site web de jeu multijoueur en Node.js. Cela signifie que je vais être en utilisant la même langue dans le backend et le frontend. Il serait en temps réel et d'environ 20 personnes max dans chaque chambre, donc j'ai quelques réflexions:

  1. Comment puis-je compenser le délai entre tous les utilisateurs, de sorte que tout le monde voit la même chose en même temps? Je pense que je vais le suivi de la moyenne du temps de réponse de chaque joueur, trouver la plus lente, et en informer les autres clients de la durée (en millisecondes) ils doivent être retardée de chacun afin que tout le monde il est synchronisé que possible.

  2. Je pense à l'exécution de code du jeu dans le backend ainsi que dans le frontend (puisque c'est le JavaScript sur les deux extrémités), et se contenter d'un mécanisme de correction d'erreurs de synchronisation avec le "vrai jeu" dans le backend. De cette façon, le jeu doit s'effectuer en douceur sur le frontend et avec seulement quelques petits problèmes lors de la synchronisation se passe. Également à minimiser frontend JavaScript piratage depuis les tricheurs seraient synchronisés vers le bas à l'arrière-plan de jeu.

  3. Devrais-je recevoir des actions du joueur par le biais de la prise (combinaisons de touches), de les informer de tous les autres clients de la les actions des autres joueurs, et en même temps de "jouer" le jeu dans le backend et d'envoyer des informations de synchronisation à chacun de l'ensemble de l'état de jeu à chaque fois dans un certain temps pour les synchroniser?

Qu'en pensez-vous? Il y a plus de trucs que je devrais envisager ou de prêter attention à?

S'il vous plaît poster des idées ou des liens vers de la documentation ou des articles concernant les jeux multijoueurs.


EDIT: elles sont utiles: