05-12-2007, 03:54 PM
normalement tu peux utiliser les sockets avec Flash sans installer rien du tout chez le client (à part bien sur le plug in flash...)
Dofus est en effet installé chez le client, cependant si ils voulaient ils pourraient ne pas le faire, le seul hic c'est que çà ferais beaucoup de bande passante pour leur serveur! Voilà pourquoi Dofus s'installe
Perso je suis en train de bosser sur une jeu en temps reel par socket en Flash. Je prévois cependant l'installation d'un pack graphique permetant d'alleger la charge du serveur.
A noter qu'il est possible de creer un pack graphique avec des technologie autre que Flash, çà peut etre une bonne methode pour aléger sa bande passante sans devoir passer à une offre superieur
Pour ce qui est du rafraichissement avec AJAX faut se rendre compte que c'est pas tip top car çà prend 2 fois plus de temps que les sockets:
- demande de page joueur 1 (0s)
- generation et acquisition page serveur (2s)
- nouveau délai de rafraichissement joueur 2 (3s max)
- generation et acquisition page serveur (2s)
Ce qui nous fait entre 4s et 7s de decallage entre les joueurs, et là le serveur n'est pas surchargé loin de là(pourtant tout les joueurs connecté demande une page toute les 3s déjà). Dans certains cas ce sera moins dans d'autre plus.
En tout cas avec 7s de decallage impossible de faire un jeu de shoot par exemple...
J'ai déjà fais le test il y a plus de 2 ans c'était marant de voir les perso bouger mais comme j'avais peu de joueur personne n'était connecté en meme temps, j'ai donc jugé çà assez inutile...
Celà dit le temps de 3s d'actualisation peut etre modifier selon des parametre, comme la distance entre joueur etc...
Avec les sockets, on peut faire:
transmission d'info joueur au serveur (2s)
transmission d'info serveur au joueur 2 (2s)
donc 4s environ si il y avais beaucoup à ecrire dans la bdd çà peut etre moins çà peut etre plus
NB: en tout cas le serveur sera moins surchargé car il n'aurra pas plein de joueur qui demanderont si il y a du nouveau... Ce sera lui qui le previendra directement ce qui est extrement plus efficace.
Je me demande meme si c'est pas possible de prevenir les autres joueurs dés le debut de l'info donné par le joueur faisant une modif ce qui ramene ce temps dans les 2 secondes grand max(puisqu'on avertit avant l'enregistrement en bdd)...
Enfin 2 secondes çà me semble beaucoup quand meme pour un jeu de shoot, mais pour certain jeu ou on concidere que l'important c'est de voir ce que font les autres, çà devient tout de meme très interressant.
Donc voilà pourquoi je me suis tourné vers une technologie proprietaire: elle est très efficaces et propose des trucs qu'acune autre techno largement accessible ne possede...
NB: ce que je viens de dire là c'est basé juste sur mon observation, peut etre y a t'il des methodes qui permette d'aller plus vite?
Dofus est en effet installé chez le client, cependant si ils voulaient ils pourraient ne pas le faire, le seul hic c'est que çà ferais beaucoup de bande passante pour leur serveur! Voilà pourquoi Dofus s'installe
Perso je suis en train de bosser sur une jeu en temps reel par socket en Flash. Je prévois cependant l'installation d'un pack graphique permetant d'alleger la charge du serveur.
A noter qu'il est possible de creer un pack graphique avec des technologie autre que Flash, çà peut etre une bonne methode pour aléger sa bande passante sans devoir passer à une offre superieur
Pour ce qui est du rafraichissement avec AJAX faut se rendre compte que c'est pas tip top car çà prend 2 fois plus de temps que les sockets:
- demande de page joueur 1 (0s)
- generation et acquisition page serveur (2s)
- nouveau délai de rafraichissement joueur 2 (3s max)
- generation et acquisition page serveur (2s)
Ce qui nous fait entre 4s et 7s de decallage entre les joueurs, et là le serveur n'est pas surchargé loin de là(pourtant tout les joueurs connecté demande une page toute les 3s déjà). Dans certains cas ce sera moins dans d'autre plus.
En tout cas avec 7s de decallage impossible de faire un jeu de shoot par exemple...
J'ai déjà fais le test il y a plus de 2 ans c'était marant de voir les perso bouger mais comme j'avais peu de joueur personne n'était connecté en meme temps, j'ai donc jugé çà assez inutile...
Celà dit le temps de 3s d'actualisation peut etre modifier selon des parametre, comme la distance entre joueur etc...
Avec les sockets, on peut faire:
transmission d'info joueur au serveur (2s)
transmission d'info serveur au joueur 2 (2s)
donc 4s environ si il y avais beaucoup à ecrire dans la bdd çà peut etre moins çà peut etre plus
NB: en tout cas le serveur sera moins surchargé car il n'aurra pas plein de joueur qui demanderont si il y a du nouveau... Ce sera lui qui le previendra directement ce qui est extrement plus efficace.
Je me demande meme si c'est pas possible de prevenir les autres joueurs dés le debut de l'info donné par le joueur faisant une modif ce qui ramene ce temps dans les 2 secondes grand max(puisqu'on avertit avant l'enregistrement en bdd)...
Enfin 2 secondes çà me semble beaucoup quand meme pour un jeu de shoot, mais pour certain jeu ou on concidere que l'important c'est de voir ce que font les autres, çà devient tout de meme très interressant.
Donc voilà pourquoi je me suis tourné vers une technologie proprietaire: elle est très efficaces et propose des trucs qu'acune autre techno largement accessible ne possede...
NB: ce que je viens de dire là c'est basé juste sur mon observation, peut etre y a t'il des methodes qui permette d'aller plus vite?