JeuWeb - Crée ton jeu par navigateur
Création d'images --création de cache Pour affichage grandes Map - 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 : Création d'images --création de cache Pour affichage grandes Map (/showthread.php?tid=1861)



Création d'images --création de cache Pour affichage grandes Map - saluki - 08-10-2007

Bonjour,

Voilà, j'ai plusieurs cartes sur mon jeu et certaine, qui ne sont consultés que de temps en temps, mettent énormément de temps car elle affiche toutes la carte (qui fait quand même 250X200 cases) en images qui font 20x20 px .... Ce qui fait évidemment une quantité de requetes affolentes ...

j'aimerais crée une image complete de la carte avec un cron automatisé qui créerais une image nouvelle chaque jour. Ainsi le temps de chargement serait reduit à la taille de l'image et épargneras le serveur Smile Pourriez-vous m'aider ?


RE: Création d'images --création de cache Pour affichage grandes Map - Sephi-Chan - 08-10-2007

Je ne comprends pas ton problème.

Tu génères une image unique de ta grande carte via GD ? Ou bien est-ce que tu fais un conglomérat de petites images grâce à un tableau ?


Sephi-Chan


RE: Création d'images --création de cache Pour affichage grandes Map - saluki - 08-10-2007

Citation :.eauoccupe{ background-image: url("imageeau.gif"); width: 4; height: 4; }

<td class=eauoccupe> </td>


j'affiche cela pour chaque casse, ce que j'aimerais c'est transformer cette ensemble de td en une images fixes qui se crée une fois par jour.


RE: Création d'images --création de cache Pour affichage grandes Map - Sephi-Chan - 08-10-2007

C'est possible de créer une image fixe, mais il faudra la générer par GD, donc ce que tu gagneras à l'affichage, tu le perdras à la génération. Et pour l'utilisateur, il faudra quand même charger cette grosse image !

Le mieux est donc d'utiliser des images "génériques" qui se mettront en cache, ou bien de précharger tes images dans une page qui est chargée au moins une fois au début de chaque passage du joueur sur le jeu et qui se charge déjà assez rapidement.

Une autre méthode, à la fois classe et accessible :

Tu fais ta page normalement et tu ajoutes un événement onload qui remplace temporairement la zone d'affichage de ta carte pendant par exemple 10 secondes, avec un message "Chargement". Passé le délai, la carte est de nouveau affichée. Après tu peux améliorer ça en demandant leur débit de connexion dans leur profil pour augmenter ou diminuer ce temps.

En plus d'être pratique, ça fait pro, et on sait tous combien le paraître compte sur le net. Wink


Sephi-Chan


RE: Création d'images --création de cache Pour affichage grandes Map - Zamentur - 09-10-2007

Le mieux reste quand meme de reduire le temps de generation tout simplement!
J'ai une carte de 200 sur 200 et je la genere en 2 seconde pour chaque joueur (c'est vrai que je pourrais utilisé un chache mais elle change tout le temps) Par contre une case =1 pixel chez moi, mais peut etre que çà marcherais quand meme (enfin le hic c'est que çà serais plus lourd dans ton cas (enfin pas tellement non plus... rien n'empeche de precharger!)

Pour voir le resultat http://www.ragol-online.info/gps.php?t=500

Donc par contre surtout il faut se debrouiller pour enlever toutes les requetes à l'interieur des boucles qui genere le trucs c'est primordiale. Il vaut mieux faire les requetes avant et utiliser les resultats (çà peut demander plus de reflexion)

voilà juste pour dire que la generation d'une tel image ne serais pas si longue
Et aussi pour dire que la methode tableaux est plus lourde car la page pese plus lourd que l'image (sauf generation javascript)

Pour dire au depart on utilisais les tableaux 30 minute de generation
puis on a utilisais GD 30 secondes
Puis les requetes ont été optimisés 2 secondes de génération

Citation :Tu fais ta page normalement et tu ajoutes un événement onload qui remplace temporairement la zone d'affichage de ta carte pendant par exemple 10 secondes, avec un message "Chargement". Passé le délai, la carte est de nouveau affichée. Après tu peux améliorer ça en demandant leur débit de connexion dans leur profil pour augmenter ou diminuer ce temps.
Sur ce principe il est aussi possible de charger l'image avec javascript et XMLHttpRequest() (en gros ajax sauf qu'on demande une image et pas du xml)
Ca permet de savoir quand l'image est chargée totalement avec IE et FF.
Je dois avoir un code javascript tout fait qui fait çà tout seul!
si tu le veux demande...


RE: Création d'images --création de cache Pour affichage grandes Map - saluki - 10-10-2007

Je le veux bien avec plaisir Smile Merci pour vos renseignements Smile


RE: Création d'images --création de cache Pour affichage grandes Map - Sephi-Chan - 10-10-2007

Oui l'alternative était de passer par Ajax (enfin, un dérivé Wink) pour avoir l'affichage au moment où tout est généré, c'est même assez simple à faire, et puis si on le fait proprement ça reste accessible (pour peux qu'on renvoie un tableau et pas une image). M'enfin l'accessibilité dans un jeu c'est pas forcément facile, et pas forcément utilise non plus.


Sephi-Chan