Bonjour tout le monde,
je viens vous voir avec un problème d'optimisation me semble-t-il sur lequel je plante complètement depuis des mois...
Pour y voir plus clair, j'ai fait une page test (sur laquelle j'ai désactivé toutes les fonctions sauf le déplacement) :
-http://yui-aventure.jeux-lothi.com/test1.php
Mon problème est en 2 parties, l'une "urgente" dans le sens où c'est la plus problématique et de loin, l'autre est un effet auquel j'aimerais arriver, mais dont je ne suis pas certaine que ça soit possible en js/php/html/css.
La partie "urgente" :
A l'heure actuelle, sous firefox et sur opera, le déplacement est "fluide", dans le sens où la seule saccade est celle du rechargement de la div de carte.
Mais sous chrome autant que sous IE (que ça soit le 9, le 10 ou le 11), le site saccade complètement, comme s'il chargeait à chaque fois toute la structure; et ce malgré un cache existant assez complet.
Comment est-ce que je pourrais échapper à ce soucis ? Une autre fonction que .reload(), pour recharger la carte ?
Notez que la carte est bien sûr généré en PHP et que je doute que charger juste la div puisse marcher sans que je doive faire un changement global.
La seconde question est plus "sensible" à mon goût. J'aimerais en effet pouvoir rendre le déplacement vraiment fluide, à la manière des jeux flash / téléchargeable.
Je sais qu'il existe la fonction animate en jquery, qui me permettrait de déplacer de manière fluide mon bg et les monstres...
Yuimen-rpg est un jeu en multi-joueur. Et donc lors du déplacement, je dois vérifier si les monstres, les autres PJs et les drops sont toujours là et si de nouveaux sont pas apparus entre temps.
Hors, là je bloque totalement. Comment le faire pour que ça soit optimisé et fluide ?
Et est-ce que JQuery est vraiment capable de gérer de manière fluide dix, quinze voire même 20 ou 30 objets différents en même temps ? Sachant que je vais devoir utiliser du animate(), des changement de source, de background, de la suppression de noeuds dans le dom et de l'ajout de noeud. Le tout avec une transmission ajax et JQuery (que je trouve déjà lourd à l'heure actuelle avec 2 transactions ajax coup sur coup).
Peut-être une autre bibliothèque de fonction que JQuery me permettrait de le faire plus aisément...
Et si ce n'est pas faisable; est-ce qu'il y a moyen d'utiliser un module flash (qui ne gèrerait que la carte) dans un code php/js/html/css/mysql ? Est-ce qu'il y a moyen de communiquer entre le mysql/flash ? Bref, est-ce que ça serait possible de faire juste cette partie-là du jeu en flash en laissant le reste dans mes langages habituels ?
Sinon, est-ce qu'il y aurait un autre langage qui pourrait gérer cette partie du jeu et qui soit compatible avec mes langages classiques ?
(je ne cherche pas à être jouable sur smartphone et j'y connais rien à actionscript, mais apprendre un langage me fait pas peur ^^)
Voilà donc le soucis, si vous avez des pistes, que ça soit pour la première ou la seconde question, n'hésitez pas...
Merci d'avance ^^
Modifié par Lothindil (22 May 2014 - 10:56)
je viens vous voir avec un problème d'optimisation me semble-t-il sur lequel je plante complètement depuis des mois...
Pour y voir plus clair, j'ai fait une page test (sur laquelle j'ai désactivé toutes les fonctions sauf le déplacement) :
-http://yui-aventure.jeux-lothi.com/test1.php
Mon problème est en 2 parties, l'une "urgente" dans le sens où c'est la plus problématique et de loin, l'autre est un effet auquel j'aimerais arriver, mais dont je ne suis pas certaine que ça soit possible en js/php/html/css.
La partie "urgente" :
A l'heure actuelle, sous firefox et sur opera, le déplacement est "fluide", dans le sens où la seule saccade est celle du rechargement de la div de carte.
Mais sous chrome autant que sous IE (que ça soit le 9, le 10 ou le 11), le site saccade complètement, comme s'il chargeait à chaque fois toute la structure; et ce malgré un cache existant assez complet.
Comment est-ce que je pourrais échapper à ce soucis ? Une autre fonction que .reload(), pour recharger la carte ?
Notez que la carte est bien sûr généré en PHP et que je doute que charger juste la div puisse marcher sans que je doive faire un changement global.
La seconde question est plus "sensible" à mon goût. J'aimerais en effet pouvoir rendre le déplacement vraiment fluide, à la manière des jeux flash / téléchargeable.
Je sais qu'il existe la fonction animate en jquery, qui me permettrait de déplacer de manière fluide mon bg et les monstres...
Yuimen-rpg est un jeu en multi-joueur. Et donc lors du déplacement, je dois vérifier si les monstres, les autres PJs et les drops sont toujours là et si de nouveaux sont pas apparus entre temps.
Hors, là je bloque totalement. Comment le faire pour que ça soit optimisé et fluide ?
Et est-ce que JQuery est vraiment capable de gérer de manière fluide dix, quinze voire même 20 ou 30 objets différents en même temps ? Sachant que je vais devoir utiliser du animate(), des changement de source, de background, de la suppression de noeuds dans le dom et de l'ajout de noeud. Le tout avec une transmission ajax et JQuery (que je trouve déjà lourd à l'heure actuelle avec 2 transactions ajax coup sur coup).
Peut-être une autre bibliothèque de fonction que JQuery me permettrait de le faire plus aisément...
Et si ce n'est pas faisable; est-ce qu'il y a moyen d'utiliser un module flash (qui ne gèrerait que la carte) dans un code php/js/html/css/mysql ? Est-ce qu'il y a moyen de communiquer entre le mysql/flash ? Bref, est-ce que ça serait possible de faire juste cette partie-là du jeu en flash en laissant le reste dans mes langages habituels ?
Sinon, est-ce qu'il y aurait un autre langage qui pourrait gérer cette partie du jeu et qui soit compatible avec mes langages classiques ?
(je ne cherche pas à être jouable sur smartphone et j'y connais rien à actionscript, mais apprendre un langage me fait pas peur ^^)
Voilà donc le soucis, si vous avez des pistes, que ça soit pour la première ou la seconde question, n'hésitez pas...
Merci d'avance ^^
Modifié par Lothindil (22 May 2014 - 10:56)