30-08-2008, 04:35 PM
Je commence à me pencher un peu sur l'utilisation des sessions et je me pose diverses questions...
Tout d'abord, un petit topo sur le contexte qui m'a poussé à lire deux trois articles sur ces sessions et finalement à me poser plus de questions encore...
Le personnage joueur est sur un site (prenons une forêt). Il a la faculté de fouiller cette forêt. Un personnage peut fouiller plusieurs fois la forêt avant de ne plus pouvoir le faire (consommation de points d action)
Dans différentes tables (et peut être un fichier de référence) j'ai la liste des choses qui peuvent être trouvées dans cette forêt.
Pour trouver une chose (ou plusieurs), le personnage doit réussir un jet. On considère donc qu'une fouille correspond à un jet croisé avec la liste des choses qui sont dans la forêt
Je m'imagine, pour optimiser un peu tout ça, qu'il suffit de faire les requêtes qui génèrent cette liste à la première fouille, de la stocker dans une variable de session, puis si de nouvelles fouilles apparaissent sur ce site, de lire la variable de session (on évite donc des appels mysql, des calculs, etc...)
Maintenant mes questions...
[Optimisation] Est ce que vous confirmer que ce système serait plus performant (rapidité, cpi, bdd, etc..) que relancer les requêtes à chaque fois ? (avec on va dire, beaucoup d'objets dans la bdd)
[Utilisation] Comment stocker une liste à travers les sessions ? On peut faire des tableaux de tableaux ? ou je stocke cela sous forme de chaine de caractères que j'interpréterai ?
[Sécurité] Evidemment je veux éviter que le petit malin sache s'il est intéressant ou pas de fouiller plusieurs fois le lieu où il se trouve. Or quand j ai cherché un article sur google sur sécurité + session, je me suis retrouvé avec un tutoriel qui mélange sessions + mysql, du coup je me pose la question de l'intérêt d'une session pour stocker ce type de données. Qu'en pensez vous ? (Et si quelqu un pouvait démarrer des tuto sur la sécurité, ce serait top )
[Utilisation 2] Et pour finir la question qui m'a tué ce matin en me baladant. Supposons que le système que j'ai décrit plus haut soit pertinent... Comment faire si deux PJ soient connectés simultanément au même endroit : Au départ ils ont la même liste, chacun dans leur "variable de session ". Mais si le PJ A récupère la super épée plantée dans le sol, comment virer de la session du PJ B cette même épée ?
Je risque de me retrouver avec deux rois de Bretagne moi ... (de même dans l 'autre sens, un objet est déposé au sol en direct...)
merci de vos avis
Tout d'abord, un petit topo sur le contexte qui m'a poussé à lire deux trois articles sur ces sessions et finalement à me poser plus de questions encore...
Le personnage joueur est sur un site (prenons une forêt). Il a la faculté de fouiller cette forêt. Un personnage peut fouiller plusieurs fois la forêt avant de ne plus pouvoir le faire (consommation de points d action)
Dans différentes tables (et peut être un fichier de référence) j'ai la liste des choses qui peuvent être trouvées dans cette forêt.
Pour trouver une chose (ou plusieurs), le personnage doit réussir un jet. On considère donc qu'une fouille correspond à un jet croisé avec la liste des choses qui sont dans la forêt
Je m'imagine, pour optimiser un peu tout ça, qu'il suffit de faire les requêtes qui génèrent cette liste à la première fouille, de la stocker dans une variable de session, puis si de nouvelles fouilles apparaissent sur ce site, de lire la variable de session (on évite donc des appels mysql, des calculs, etc...)
Maintenant mes questions...
[Optimisation] Est ce que vous confirmer que ce système serait plus performant (rapidité, cpi, bdd, etc..) que relancer les requêtes à chaque fois ? (avec on va dire, beaucoup d'objets dans la bdd)
[Utilisation] Comment stocker une liste à travers les sessions ? On peut faire des tableaux de tableaux ? ou je stocke cela sous forme de chaine de caractères que j'interpréterai ?
[Sécurité] Evidemment je veux éviter que le petit malin sache s'il est intéressant ou pas de fouiller plusieurs fois le lieu où il se trouve. Or quand j ai cherché un article sur google sur sécurité + session, je me suis retrouvé avec un tutoriel qui mélange sessions + mysql, du coup je me pose la question de l'intérêt d'une session pour stocker ce type de données. Qu'en pensez vous ? (Et si quelqu un pouvait démarrer des tuto sur la sécurité, ce serait top )
[Utilisation 2] Et pour finir la question qui m'a tué ce matin en me baladant. Supposons que le système que j'ai décrit plus haut soit pertinent... Comment faire si deux PJ soient connectés simultanément au même endroit : Au départ ils ont la même liste, chacun dans leur "variable de session ". Mais si le PJ A récupère la super épée plantée dans le sol, comment virer de la session du PJ B cette même épée ?
Je risque de me retrouver avec deux rois de Bretagne moi ... (de même dans l 'autre sens, un objet est déposé au sol en direct...)
merci de vos avis