JeuWeb - Crée ton jeu par navigateur
resolution de ma liste d'action - 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 : resolution de ma liste d'action (/showthread.php?tid=4548)

Pages : 1 2 3


RE: resolution de ma liste d'action - php_addict - 20-01-2010

(20-01-2010, 10:30 AM)Unkof a écrit : Bah, ca fait que quelques lignes à ajouter pour les requêtes, mais uniquement pour la gestion des évènements.

Tu n'as pas besoin d'utiliser le transactionnel partout non plus .. Wink

oui effectivement

est t il judicieux de ? :
- d'utiliser innoDB sur mes TABLE 'liste d'actions'
- d'utiliser MYisam pour ma TABLE map (pour l'affichage de ma carte)

donc:
- securité d'integrité pour mes resolution d'action
- rapidité pour l'affichage de la carte

mais j'ai un doute la dessus car en MYisam je ne peut pas faire de transaction, donc 2 joueurs peuvent altérer ma TABLE map et il y a possibilité de bug, non ? (creation d'un nouveau village par exemple)

encore mille fois merci! c'est dingue en l'espace de quelques jours je suis passé a PDO, mode transactionnel, innoDB et je ne connassais meme pas ces concepts :$:$


RE: resolution de ma liste d'action - Sephi-Chan - 20-01-2010

Je te conseiller d'utiliser InnoDB par défaut et de passer à MyIsam si tu es sûr que tu n'as aucun risque d'accès concurrent. Ça t'évitera bien des problèmes difficiles à trouver et à corriger car une fois la base niquée, c'est trop tard : tu es bon pour un back up puisque tu ne peux plus te fier à tes données.


Sephi-Chan


RE: resolution de ma liste d'action - php_addict - 20-01-2010

merci de ton conseil Sephi...

le defilement de ma carte est devenu 2 fois plus lent en innoDB...mais passer ma map en MYisam me parait assez dangeureux en effet... qu'elle galere !


RE: resolution de ma liste d'action - Zamentur - 20-01-2010

Tu as bien pensé à mettre des index correct sur ta carte?
Et à faire l'affichage en une seul requête?


RE: resolution de ma liste d'action - Sephi-Chan - 20-01-2010

Même question que Zamentur. La génération de ta carte doit être optimisable. Je ne peux pas croire que le changement de moteur de stockage puisse autant impacter les performances.


Sephi-Chan


RE: resolution de ma liste d'action - php_addict - 20-01-2010

salut

(20-01-2010, 05:02 PM)Zamentur a écrit : Tu as bien pensé à mettre des index correct sur ta carte?
Et à faire l'affichage en une seul requête?

euh oui je pense:

Nom de l'index id
Type BTREE
Unique Oui
Compressé Non
Champ 10100
Cardinalité A

Citation :Et à faire l'affichage en une seul requête?

non pas encore :$ car il me reste quelques modif a faire dans ma requete et je ferais qu'une requete un peu plus tard...mais je vais quand meme tester temporairement en une seule requete...

merci ;-)


RE: resolution de ma liste d'action - php_addict - 22-01-2010

bonsoir

un dernier probleme pour ma resolution de ma liste d'action:

j'ai passé ma base en innodb avec des transactions en PDO, j'ai donc un truc du genre:

Code :
function resolution_actions()
{
   try
   {
      $connexion->beginTransaction();
      ...
      ...
      // des requetes sql sur differentes tables
      // des requetes sql sur differentes tables
      ...
      ...
      $connexion->commit();
   }
   catch(PDOException $e)
   {
     $connexion->rollBack();
   }
}

Je pensais que simplement avec innoDB et une transaction j'empecherais deux joueurs de resoudre la meme action, mais j'ai tester mon script en ajax avec 4 navigateurs differents sur mon localhost, et il semblerais que relativement frequement une action est résolue plusieurs fois, c'est ennuyeux...

y a t il un truc que je n'ai pas compris?
du genre "bloquer une table en lecture et ecriture" ?
si oui qu'ai je oublié?

merci de m'avoir lu

bonne soirée à tous et à toutes


RE: resolution de ma liste d'action - php_addict - 02-02-2010

bonjour et encore merci pour vos conseils

un dernier questionnement à ce sujet:

mon script de resolution d'action resoud les actions pour : attaques, fin de construction de batiment, etc...

cette resolution d'action modifie donc les ressources des joueurs (en cas de pillage par exemple)

l'autre script qui modifie les ressources des joueurs c'est quand on paye pour lancer une construction de batiment

d'ou le soucis:

quant on resoud une attaque sur un joueur au meme moment ou ce joueur construit un batiment, les UPDATE sur les champs de ressource risquent de se croiser malgres que ma resolution d'action soit transactionelle

je ne vois que ceci comme solution:

au lieu de faire un UPDATE des que le joueur clique sur "construire batiment" je pensais inclure cette action dans ma liste 'actions à resoudre' (transactionelle) meme si cette action a un effet immediat (pas comme une attaque par exemple)

qu'en pensez-vous ?


pour le moment j'avais séparé les liste sd'actions à resoudre dans le futur (attaques) et les actions directes (constructions immediates)

dois je mettre toutes les action (directe et différées dans ma liste d'action a resoudre) afin de beneficier au mieux du systeme transactionel ?

en ecrivant ce post je me dis que oui, mais sollicite quand meme votre avis ;-)

merci de m'avoir lu, je sais c'est un peu indigeste ;-)


RE: resolution de ma liste d'action - christouphe - 02-02-2010

Pour moi, ce serai logique, tu fais une FIFO, donc pourquoi ne pas intégrer TOUTES les actions (construction,recrutement,attaques...etc)?


RE: resolution de ma liste d'action - php_addict - 02-02-2010

(02-02-2010, 03:31 PM)christouphe a écrit : Pour moi, ce serai logique, tu fais une FIFO, donc pourquoi ne pas intégrer TOUTES les actions (construction,recrutement,attaques...etc)?

tiens, je ne connaissais pas ce terme...

je pensais tout simplement que c'etait un peu débile de mettre une action dans une liste et que cette action a un effet immediat (pas différée)...

je vais tester...