Salut !
Je suis en train de créer un jeu de survie multijoueur en 2D en java. Le but final serait de survivre le plus longtemps à des vagues d'ennemis.
Un screen sera sans doute plus parlant 

C'est la première fois que je fais de la prog réseau, et donc j'ai quelques questions à propos de l'architecture client/serveur et celle d'un jeu, modèle/vue.
En fait j'arrive à un point où je sais vraiment pas à quel endroit je dois mettre à jour mes entités.
Est-ce que c'est le serveur qui doit tout mettre à jour ou le client doit aussi actualiser mes entités ?
En l’occurrence pour le premier cas, le serveur doit tout mettre à jour :
Ca voudrait dire que lorsque je me déplace, quand j'appuie sur ZQSD donc, je demande en fait au serveur de me déplacer, ce qu'il va faire, puis il enverra à tous les clients , y compris moi, ma nouvelle position ?
Ou alors, second cas et quand j'appuie sur les touches je me déplace réellement côté client, et je vais envoyer au serveur ma nouvelle position.
Actuellement j'ai un peu des deux, l'IA est mise à jour côté serveur et la position de chaque joueur côté client. Du coup j'ai des mises à jour des deux côtés et ça me semble pas propre 
Puis le serveur est assez gourmand et utilise 40/50% de mon proco (i5 de portable assez costaud, 4200h). Ca me semble énorme pour un jeu 2D, quoique une IA c'est assez lourd (pathfinding A*), mais quand je vais rajouter le reste ça risque de lag et ramer sévère...
Je vais bientôt arriver à l'ajout du système de vie et de tir, et actuellement je sais pas vraiment comment je dois m'y prendre.
Est-ce que quand le joueur tir, il créer ses propres projectiles, les met à jour (tout côté client donc) et envoie les coordonnées au serveur pour que les autres clients reçoivent les infos ?
Ou alors quand je tir, je demande en fait de tirer, donc le serveur va créer les projectiles, les mettre à jour et envoyer les données aux clients ?
Pareil pour la vie. Chaque joueur met à jour sa vie ou c'est le serveur qui détecte si les joueurs se font toucher par les ennemis et donc met à jour les vies des joueurs 
J'aurais tendance à mettre à jour la plupart des entités côté serveur, gérer le déplacement du joueur côté client mais actuellement rien qu'avec l'IA c'est assez pompeux. Et à partir d'un certain nombre d'ennemis, on ressent du lag. Pourtant il me semble que le pathfinding A* est pas spécialement lourd 
Bref, si quelqu'un aurait quelques infos sur une architecture client/serveur pour un jeu, ça serait vraiment génial 
Merci d'avance, et bonne fin d'aprem ! 