29-03-2007, 08:45 PM
Draedrus a écrit :...Je pense que cette requete est nécessaire
Ensuite deux images générées, la premiére re-demande une position:
SELECT x,y FROM players WHERE id='id_du_joueur'
Draedrus a écrit :Puis les objets environnants ( forets, maisons, rivieres, routes... ):Les objets environnants ne devraient (a mon avis) pas changer souvent. On ne pourrait pas en faire une image fixe, qui servirait de base pour générer les autres images? (une pour le jour, une pour la nuit)
SELECT type,x,y FROM obstacles WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue'
la vue varie selon le jour et la nuit ( 2 le jour, 1 la nuit ).
Draedrus a écrit :Suivie d'une requette cherchant tout joueur dans les parages:ceci aussi me semble indispensable
SELECT race,classe,x,y FROM players WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue' AND etat!='mort'
Draedrus a écrit :La deuxieme image génére donc l'entourage du joueur en pixels:ces requetes me semblent tres proche des requetes précédentes... tu ne pourrais pas utiliser les requetes précédentes plus intelligemment?
SELECT x,y FROM players WHERE id='id_du_joueur'
Puis les objets environnants ( forets, maisons, rivieres, routes... ):
SELECT type,x,y FROM obstacles WHERE SQRT(('x_joueur'-x)^2+('y_joueur'-y)^2)<='vue'
la vue varie selon le jour et la nuit ( 2 le jour, 1 la nuit ).
Draedrus a écrit :Voilà pour mes requettes au nombre de 7. J'avais pensé passer la position du joueur en sessions pour supprimer les deux requettes.Pour le joueur courant, ok. Par contre, tu dois quand meme faire un update pour que les autres joueurs puissent voir en direct tes propres mouvements
Draedrus a écrit :Et le reste je ne sais pas encore si je peux l'optimiser plus. Merci à tous pour vos réponsesparfois, ce n'est pas une optimisation qu'il faut, mais une refonte de la logique ;-)
Draedrus a écrit :PS: l'image en cache ne serait pas plus lourde ? sachant qu'il faudrait vérifier à chaque fois si l'image a bougé, qu'il faut la remettre en cache à chaque fois et que se déplacer est l'une des choses que l'on fait souvent dans mon jeu ( de bourrins faut dire ). Sinon, comment le mettre en place ? Je ne me suis jamais posé la question.il me semble que tu pourrais avoir une table avec les données de l'image, que tu comparerais avec les données dans la base de donnée (moins couteux en ressource que de manipuler l'image).
Et donc, tu re-génererais l'image que si tu en a réellement besoin (c'est une piste, je ne prétends pas que c'est LA meilleure solution )
Draedrus a écrit :[édit]: aprés essai, ma page s'affiche aux alentours de 0.5 secondes si je le mets dans une boucle s'effectuant 100 fois de suite, 0.03 pour une seule fois. Au bout de 500 fois la page ne s'affiche plus, mais déjà arriver à 100 joueurs actifs et d'un coup me parait peu probable .c'est pas mal du tout... p-e que tu pourrais encore doubler ce nombre avec les bonnes optimisations
Je signale que je ne détiens pas la vérité unique et absolue, je peux me tromper. La critique peut aussi être constructive. Critiquez moi!
La quête d'Ewilan
http://easy2hack.ma-soiree.be
La quête d'Ewilan
http://easy2hack.ma-soiree.be