13-02-2012, 12:43 PM
Je ne connais pas le framework ... et je parle donc dans le vide.
Une synchro semble un bon plan, mais uniquement tous les X secondes. (une fois par minute par exemple, en fonction de la consommation en ressource).
Ensuite, un système d'évenement est une méthode pas trop lourde pour gérer ce type de problèmatique. Selon la manière de procéder, ça peut même être très léger.
L'idée principale étant d'enregistrer dans une table, toutes les actions de manière minimaliste :
1 - joueur toto - heure - deplacement - coordonnée X, coordonnée Y, X_origine, Y_origine, id_animation
2 - joueur titi - heure - deplacement - coordonnée X, coordonnée Y, X_origine, Y_origine, id_animation
3 - joueur toto - heure - deplacement - coordonnée X, coordonnée Y, X_origine, Y_origine, id_animation
4 - joueur toto - heure - lance un sort - coordonnée X, coordonnée Y, NULL, NULL, id_animation
5 - monstre - heure - apparait spontanément - coordonnée X, coordonnée Y, NULL, NULL, id_animation
Ensuite, chaque joueur récupère la liste des évènements et en déduit les actions à afficher.
1°/ suis-je concerné (en fonction des coordonnées) ?
2°/ Je joue l'animation correspondant aux évènements me concernant (celle qui sont donc visible)
3°/ Ok : j'ai récupéré toutes les actions jusqu'à l'étape 5. Dans une seconde, je vais chercher les actions supérieur ou égale à l'étape 6 et je recommance à l'étape 1°
Resynchroniser pourrait alors être fait toutes les minutes, et à chaque déplacement.
Un tel système ne devrait pas poser de problème, même avec 2000 joueurs simultané, car le requêtage est très léger (une table qui ne fait que s'incrémenter à chaque action + un index léger. Pas de requêtage pour déterminer l'ensemble des éléments visibles, sauf à l'initialisation et à la synchro toutes les minutes)
kéké
Une synchro semble un bon plan, mais uniquement tous les X secondes. (une fois par minute par exemple, en fonction de la consommation en ressource).
Ensuite, un système d'évenement est une méthode pas trop lourde pour gérer ce type de problèmatique. Selon la manière de procéder, ça peut même être très léger.
L'idée principale étant d'enregistrer dans une table, toutes les actions de manière minimaliste :
1 - joueur toto - heure - deplacement - coordonnée X, coordonnée Y, X_origine, Y_origine, id_animation
2 - joueur titi - heure - deplacement - coordonnée X, coordonnée Y, X_origine, Y_origine, id_animation
3 - joueur toto - heure - deplacement - coordonnée X, coordonnée Y, X_origine, Y_origine, id_animation
4 - joueur toto - heure - lance un sort - coordonnée X, coordonnée Y, NULL, NULL, id_animation
5 - monstre - heure - apparait spontanément - coordonnée X, coordonnée Y, NULL, NULL, id_animation
Ensuite, chaque joueur récupère la liste des évènements et en déduit les actions à afficher.
1°/ suis-je concerné (en fonction des coordonnées) ?
2°/ Je joue l'animation correspondant aux évènements me concernant (celle qui sont donc visible)
3°/ Ok : j'ai récupéré toutes les actions jusqu'à l'étape 5. Dans une seconde, je vais chercher les actions supérieur ou égale à l'étape 6 et je recommance à l'étape 1°
Resynchroniser pourrait alors être fait toutes les minutes, et à chaque déplacement.
Un tel système ne devrait pas poser de problème, même avec 2000 joueurs simultané, car le requêtage est très léger (une table qui ne fait que s'incrémenter à chaque action + un index léger. Pas de requêtage pour déterminer l'ensemble des éléments visibles, sauf à l'initialisation et à la synchro toutes les minutes)
kéké