16-03-2009, 01:03 AM
ça dépend en fait d'un point important: est-ce que tu peux avoir des interactions qui viennent s'intercaler ? (c'est à dire qu'un second joueur peut lancer une action après le premier joueur, et que son action se déroulera avant)
à chaque fois que t'as une interaction tu dois t'assurer que ton "resolver" il te fourni des données cohérentes.
(après à savoir si tu fais la mise à jour directement ou si tu reportes; c'est toi qui vois comment tu monte ton resolver; mais à mon avis faire autre chose que post-résoudre si t'as des interactions qui peuvent s'intercaler, c'est franchement galère; car ça nécessite que tu garde les états précédents pour assurer les rollbacks en cas d'interactions nouvelle qui viendrait s'intercaler avant Oo' -bref le bordel-)
dans le cas précité, si tu veux pré-résoudre (on imagine que toute attaque prends exactement le même temps 1h aller, 1hcombat, 1h retour... enfin pour ce qui reste de l'armée le retour ):
si je me trompe pas tu vérif si l'armée elle est pas là, tu vérifs qu'elle est pas rentrée; si elle rentre pas à temps; ben y a pas de lézard. Si elle rentre à temps, ben tu sais normalement quelle armée sera rentrée; puisque cette attaque aussi tu l'auras pré-résolue^^
c'est la seule info dont tu as besoin; pour la présenter au nouvel attaquant... en gros tes résultats sont en "tampon".
si tu post-résouds c'est un peu le même schéma; sauf que c'est tes actions qui sont stockée en "tampon". Et donc tu te tape les calculs complets à chaque vérifs -pour connaitre l'état "au moment M"- jusqu'à la résolution "effective".
à chaque fois que t'as une interaction tu dois t'assurer que ton "resolver" il te fourni des données cohérentes.
(après à savoir si tu fais la mise à jour directement ou si tu reportes; c'est toi qui vois comment tu monte ton resolver; mais à mon avis faire autre chose que post-résoudre si t'as des interactions qui peuvent s'intercaler, c'est franchement galère; car ça nécessite que tu garde les états précédents pour assurer les rollbacks en cas d'interactions nouvelle qui viendrait s'intercaler avant Oo' -bref le bordel-)
dans le cas précité, si tu veux pré-résoudre (on imagine que toute attaque prends exactement le même temps 1h aller, 1hcombat, 1h retour... enfin pour ce qui reste de l'armée le retour ):
si je me trompe pas tu vérif si l'armée elle est pas là, tu vérifs qu'elle est pas rentrée; si elle rentre pas à temps; ben y a pas de lézard. Si elle rentre à temps, ben tu sais normalement quelle armée sera rentrée; puisque cette attaque aussi tu l'auras pré-résolue^^
c'est la seule info dont tu as besoin; pour la présenter au nouvel attaquant... en gros tes résultats sont en "tampon".
si tu post-résouds c'est un peu le même schéma; sauf que c'est tes actions qui sont stockée en "tampon". Et donc tu te tape les calculs complets à chaque vérifs -pour connaitre l'état "au moment M"- jusqu'à la résolution "effective".