JeuWeb - Crée ton jeu par navigateur
Vitesse d'un RPG AJAX : la faute au serveur ? - 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 : Vitesse d'un RPG AJAX : la faute au serveur ? (/showthread.php?tid=5268)

Pages : 1 2 3 4 5 6


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Argorate - 20-02-2011

Quel problème as-tu rencontrer avec beacon push?

sinon ajax c'est fait pour rafraichir ponctuellement et précisément, j'avoue que l'AJAX déclencher toute les secondes c'est ce qu'on fait quand on c'est pas faire autrement je dirais...


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - niahoo - 20-02-2011

Le long polling yabon, c'est juste Apache le problème.


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011

@Sephi-Chan : le problème de Beaconpush où il faut actualiser 5 fois la page doit venir de mon FAI. J'ajoute que ca ne fonctionne pas au lycée ^^

Mais plus sérieusement, pourriez-vous me donner une vague idée de la manière de faire pour que ma map interprète des données de Beaconpush ?
Je n'ai aucune idée pour les lier... et ca doit être compliqué de faire ca en javascript !
A moins qu'il existe une solution toute simple ?

En tout cas, merci pour votre aide.

Vegetaland (profite de la rapidité de son jeu le matin quand les serveurs sont dispo => - de 100 ms) ^^
P.S : j'ai essayé d'ouvrir 20 onglets avec le jeu, ca ralentit sévèrement (+500ms) :$
Mais attention : je ne suis que sous l'offre perso à 1.50/mois d'OVH ! Et là, c'est plutôt pas mal la qualité de jeu pour le prix, non ?
Ca ne doit pas être si gourmand après tout... vous ne pensez pas qu'un petit "level up" dans les serveurs arrangerait la chose en toute simplicité ?


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - php_addict - 20-02-2011

(19-02-2011, 10:05 PM)Vegetaland a écrit : Ca s'indexe une table ? oO
Je ne comprends pas le problème de requêtes.

il ont certainement raison pour le push, d'ailleurs ils ont presque toujours raison Wink

sinon pour l'indexage de tes tables: http://www.vulgarisation-informatique.com/optimiser-mysql.php


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Sephi-Chan - 20-02-2011

Je suis en train de te développer un exemple. Tu l'auras probablement dans l'après midi.

En fait, ça devrait vraiment te gêner de savoir que tes tonnes de requêtes Ajax ne servent à rien dans la plupart des cas. Le système n'est pas vraiment viable, il faudrait le rendre plus sain plutôt que de pousser la crasse sous le tapis en utilisant un meilleur serveur, qui repoussera un peu l'échéance.


Sephi-Chan


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011

@Sephi-Chan : tu as tellement raison... et merci de me développer un exemple, ca c'est vraiment très sympa ! Smile Si ca se trouve c'est plus simple que ce que je pense Smile

En attendant, pour économiser les ressources et le temps, j'ai mis un rafraîchissement faible, une fonction pour avancer de plusieurs cases et des packs de téléporteurs en boutique ^^


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Sephi-Chan - 20-02-2011

Me revoici avec la page d'exemple : http://demo-vegetaland.heroku.com/.

Il faut que tu y ailles avec 2 navigateurs différents, que tu choisisses 1 personnage par navigateur (pas le même, forcément).

Une fois la carte affichée, attends un peu (regarde ta console Javascript, tu sauras quand commencer, le temps que le client détermine quelle technique utiliser pour communiquer avec le serveur). Ce processus n'est fait qu'une fois puisque la technique utilisée est conservée sous forme d'un cookie.

Ensuite, tu cliques sur une case du plateau et tu devrais voir ton personnage bouger sur les 2 navigateurs.

Note qu'il y a un petit bug sur IE9 à la sélection d'un personnage (ce n'est pas lié au push). C'est un bug de jQuery 1.5. Tant pis !


Sephi-Chan


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011

Je teste ca...

Waow c'est superbe !!!!! Temps réel absolu , en plus y'a une belle transition !
Mais comme à son habitude j'ai du faire 15x CTRL F5 pour que Beaconpush s'initialise ;(

J'éudie le script. Merci beaucoup Sephi-Chan.
Et super simple à mettre en oeuvre ! Smile
A part le bug Beaconpush c'est EXACTEMENT ce qu'il me faut !

Par contre faudra m'expliquer 2-3 trucs à part ca c'est super (sauf ce cancre de Beaconpush qui ne s'initialise pas) è_é
Y'a même un éditeur !


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Sephi-Chan - 20-02-2011

En fait, il ne faut pas actualiser 15 fois, il faut le laisser s'initialiser une bonne fois pour toute. Il est intéressant de mettre le Beacon.connect sur toutes les pages du site, comme ça le client détermine la technique à utiliser avant d'en avoir besoin.

Côté serveur, voici la méthode appelée en Ajax quand on clique sur une case :


def move
if current_character.move_to(params[:x], params[:y])
RestClient.post(
"http://api.beaconpush.com/1.0.0/256bf7fd/channels/map",
{
:type => :character_move,
:character_id => current_character.id,
:x => params[:x],
:y => params[:y]
}.to_json,
{ 'X-Beacon-Secret-Key' => '27456...9f6' }
)

render :json => true
else
render :json => false
end
end


Et la méthode move_to, qui effectue le déplacement (ou pas, si les coordonnées ne correspondent à aucune case) et retourne un booléen.


def move_to(x, y)
tile = Tile.find_by_x_and_y(x, y)
!!tile && update_attributes(:tile => tile)
end


Sephi-Chan


RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011

Tu ne penses pas que je pourrais le faire en Push pour les actualisations et en AJAX pour les déplacements ? Parce que tout ca est lié à une BDD Wink

L'éditeur aussi : AJAX pour poser, Beacon pour voir le résultat en temps réel, non ?
Et à chaque changement de map, AJAX aussi.

Q'en penses-tu ?

Après, il faut pas un serveur en chamallow non plus...
@Sephi-Chan : je viens de voir ton post.

C'est du RUBY, très très flou pour moi, mais j'ai compris que tu faisais la liaison avec la BDD non ?
Ce script est déjà prêt chez moi Smile
J'ai trouvé une classe beaconpush sur GIT. Pas de problème pour l'envoi des données à Beaconpush. Faudra que je me remette dans ce code.