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) |
RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Sephi-Chan - 20-02-2011 Il faut utiliser Ajax et le Push en complément. Ici, quand on se déplace, ça envoie une requête Ajax à l'URL /characters/:character_id/move_to/:x/:y", qui exécute la méthode move que j'ai présenté. L'appel current_character.move_to lance la méthode move_to sur un objet Character, qui est mapé avec la base de données. Et oui, il y a un éditeur basique sur http://demo-vegetaland.heroku.com/map/edit, car je voulais t'illustrer le principe des sprites CSS : tout ça ne nécessite qu'une seule image (/images/sprite.gif). Note aussi que les feuilles de style sont générée avec SASS (en l'occurrence, j'utilise le moteur SCSS). Tu peux voir la veuille originale (/stylesheets/sass/map.scss) pour avoir une idée du potentiel de cet outil : j'ai accès à des variables, à des boucles, etc. Pour utiliser BeaconPush avec PHP, je te conseille plutôt d'utiliser un simple wrapper à cURL, tel que curl. Sephi-Chan RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011 Merci beaucoup, je regarde cela ! Si tu veux tester mon jeu à tout moment : http://vegetaland.yann-p.fr/testgame.php?key=b7t5d6d&site=jeuweb Je ne sais pas qui a cliqué sur le lien, mais celui ci se déplace drôlement vite ! :o Moi j'ai une intervalle de 3 secondes entre les cases (en même temps je suis à 33k/s en connexion...) Sephi Chan, ton éditeur de map est au dessus de mes espérences... je jubile... Tu es vraiment très doué Bon... par où commencer ? ^^ RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011 Bon... je vais commencer doucement. 1) Essayer de faire le script pour actualiser le div... Oulala je ne sais pas par ou commencer... JS est mon pire ennemi... De plus la structure de Vegetaland est différente : ce n'est pas x(num) et y(num) mais x(num)y(alpha) Donc la coordonnée ne sera pas 1 ; 1 mais a ; 1 Déjà un obstacle... Ensuite, on ne peut pas se déplacer sur toutes les cases mais sur les 4 cases alentours... Bref, je fonce dans le mur, je n'y connais rien à JS ! =( RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011 Bon je réfléchis à ca pendant les vac's. Merci beaucoup Sephi, tu m'apprends plein de trucs ! Moi je vais partir au ski. Tu pourrais laisser les pages dispo Sephi Chan, s'il te plaît, pour que je puisse les retrouver si j'ai un peu de temps sur le PC en vacances ? Merci d'avance ! RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Sephi-Chan - 20-02-2011 Effectivement, il va falloir apprendre à utiliser Javascript. Te devrais utiliser des coordonnées numériques, c'est plus efficace et simple en terme de traitement des données (surtout en PHP, qui ne permet pas de faire "A".next). A la limite, tu peux utiliser des lettres à l'affichage. Au lieu d'afficher le nombre pour l'axe Y, tu fais :
Je modifierai le script pour n'autoriser que les cases alentours, mais ça n'est pas bien difficile. Et ne t'inquiète pas, le site reste en place (Heroku powa). Sephi-Chan RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011 Merci beaucoup tu es génial ! Ce que je vais faire c'est donner un identifiant numérique unique à chaque case (1 => 170) et appliquer ton script (en plus les déplacement sont fluides, ultime summum !) Quand je pense à la petite chose qu'aurait été Vegetaland sans vous ! Et l'éditeur ! Rapide et puissant ! Franchement, je suis sco-tché Je vais donc réfléchir à cela. Seul truc : comment détecter que la connexion Beaconpush est établie ? C'est secondaire, mais il est bon de le savoir. Parce que moi j'actualisais pour que ca vienne ^^ J'ai aussi regardé les données transférées : pour 10 déplacements, moins d'1KO ! Moi j'arrivais à 1 MO en 15 mn sans toucher au jeu... Ca déchire le béton ca :p Bonne soirée sur ce. Bonnes vacances pour ceux qui le sont RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Sephi-Chan - 20-02-2011 Chaque case a un identifiant, un X, un Y et un typ de terrain. L'éditeur est tout à fait basique !? Qu'est-ce que tu utilises pour faire tes cartes ? :o Je ne sais pas s'il est possible de déterminer quand la connexion est établie. D'après mes tests, c'est très rapide (moins d'une seconde). Et comme je te l'expliquais, actualiser plusieurs fois ne change rien. Certains navigateurs semblent charger la page jusqu'à ce qu'un mouvement survienne : c'est un effet lié au long polling, il ne faut pas s'y fier. Sephi-Chan RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Cawrotte - 20-02-2011 Moi pour faire mes cartes je fais deux boucles emboitées : boucle de 1 à 17 donne abscisse; boucle de a à j donne ordonée abscisse.ordonnee donne coordonnee recupere les infos de la map (sous forme 000_111_222_333_444 dans 170 champs de la BDD) découpe les infos de la map avec elles, génère les textures, objets, etc... chaque donnée a un rôle précis on met ca dans un tableau, on génère les possibilités de move, on affiche les autre joueurs... finboucle finboucle Voilà en gros RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Sephi-Chan - 20-02-2011 Peux-tu montrer le script qui génère ta map ? Sephi-Chan RE: Vitesse d'un RPG AJAX : la faute au serveur ? - Zack - 24-02-2011 Comme on parlait de beaconpush à un moment donné, je me permet de demander si leur serveur n'avait pas un problème depuis mercredi ? Parce que dès que j'essai d'ouvrir un canal ou d'envoyer quelque chose, j'ai le droit à 504 Gateway Time-out. 2 jours que ça dure, c'est pas vraiment sérieux leur truc. Ou alors c'est moi, mais j'ai pourtant rien changer depuis. Donc vegetaland, je commence à comprendre pourquoi tu disais que t'arrivais pas à le faire fonctionner ^^ |