Forum TourDeJeu · Règles du forum | Aide Recherche Membres |
Bienvenue invité ( Connexion | Inscription ) | Recevoir à nouveau l'email de validation |
Pages : (2) 1 [2] ( Aller vers premier message non lu ) |
zumba |
Ecrit le : Lundi 13 Décembre 2004 à 12h28
|
||
Ouf Groupe : Membre Messages : 496 |
clair ! c'est vrai qu'en php on peut tout faire mais en bidouillant grave. Quoique mem eavec la gd lib je suis pas sûr qu'on arrive à faire tout ce qu'on veut niveau multimédia. mai surtout le vrai pbm, c'est le timeout. Pour mon jeu la résolution du tour prendra 1 à 3h, donc avec un timeout à 100 secondes je me vois mal faire un système de reprise sur timeout. techniquement impossible. Qui plus est je fais mon serveur en VB, c'est un vrai bonheur à débugger en pas à pas. Au début du tour il rappatrie en local les carte et une partie de la base, il bosse dessus, et renvoie tout une fois fini. par contre le problème c'est ou héberger un exe windows (sinon chez moi pour l'instant, mais bonjour la qos, j'espère que l'aurai l'adsl 2+ rapido...) -------------------- Z
|
||
Nonothehobbit |
Ecrit le : Lundi 13 Décembre 2004 à 14h38
|
Alien Groupe : Moderateurs Messages : 1298 |
set_timeout(0);
C'est pas compliqué pourtant. ^^ Et pourquoi vous faîtes pas une résolution de tour asynchrone ? Sinon il reste toujours la solution barbare : download de la bdd, calculs en local, upload de la nouvelle bdd. -------------------- |
Cedric |
Ecrit le : Lundi 13 Décembre 2004 à 15h44
|
||||||
Ouf Groupe : Membre Messages : 368 |
Malheureusement si un timeout est defini au niveau server (ce qui est tres fortement conseille et en general le cas), ca ne sert a rien.
D'une part, ca n'est pas toujours possible, en particulier lorsqu'il y a beaucoup d'interactions entre les differents calculs, d'autre part, c'est assez lourd a mettre en place.
C'est exactement ce que l'on dit depuis plus haut. -------------------- |
||||||
zumba |
Ecrit le : Lundi 13 Décembre 2004 à 18h44
|
||||||
Ouf Groupe : Membre Messages : 496 |
ca ne marche chez aucun hébergeur (du moins un digne de ce nom). au mieux tu peux tu peux te ballader entre 0 et 5 minutes mais il y a un master root timeout inchuntable.
bah pour moi dés qu'on est en tour par tour (à heure fixe) on est asynchrone, en présupposant que l'ordre des actions entre 2 tours n'a aucun impact (il n'y a aucun intérêt à jouer avant l'autre). C'est ca la base de l'asynchronie non (par opposition au temps réel)? et comme dit scade, ca dépend du fonctionnement du jeu mais pour un jeu de stratégie tour par tour je vois pas comment faire autrement pour garantir l'asynchronie !
oausi et pour récuperer et envoyer la bdd il faut bien pouvoir la requeter à un moment ou a autre non ? (a moins qu'une bdd mysql soit stockée sous forme du'un fichier, je susi pas allé voir). enfin bref, c'est ce que je fais de toute facon (FTP+basedump complet). -------------------- Z
|
||||||
Nonothehobbit |
Ecrit le : Lundi 13 Décembre 2004 à 21h11
|
Alien Groupe : Moderateurs Messages : 1298 |
Oui tu peux faire des backup et des récupération de bdd sans passer par phpmyadmin, du moins chez ovh (mutualisé).
Tu pose ton dump sur ton ftp, et tu fais balance une commande système pour récupérer (cat monfichier.sql | mysql --user=bidule --password=trucmuche nomdetabase) Avec un dezipage avant si t'envoi le fichier compressé (c'est quand même plus rapide). Comme ça passe pas par phpmyadmin, c'est pas long à moins que ta base ne soit vraiment énorme. Le plus long c'est l'upload/download, mais si tu zip tes fichiers c'est pas trop long non plus. Pour faire le dump c'est pareil, tu fais une commande mysqldump. mysqldump -Q --user=bidule --password=trucmuche nomdelabase > mondump.sql Avec un zipage apres pour pas faire pleurer ta bp. Pour les tours asynchrone, je parlais d'une résolution asynchrone. A savoir, ne pas résoudre tous les tours de tout le monde en même temps, mais de façon asynchrone (typiquement, quand on tente d'accéder aux données d'un joueur). -------------------- |
Cedric |
Ecrit le : Mardi 14 Décembre 2004 à 12h14
|
||
Ouf Groupe : Membre Messages : 368 |
Oui, c'est bien comme cela qu'on l'avait compris. Mais ce que l'on disait c'est que cela n'est pas toujours possible. Par exemple, comme l'expliquait Zumba, dans certains jeux de strategie il n'est pas toujours possible de resoudre le tour partiellement parce qu'il y a beaucoup d'interactions : en gros la resolution des actions du joueur 1 necessite de resoudre celles du joueur 2, voire celles du 3... qui elles-memes necessitent celles du 4 et du 5... etc. Ca n'est pas systematique, mais ca impose souvent de resoudre plus de choses qu'on ne le desire. En gros, plus il y a d'interactions, moins il est possible de faire des resolutions partielles. -------------------- |
||
zumba |
Ecrit le : Mardi 14 Décembre 2004 à 15h46
|
Ouf Groupe : Membre Messages : 496 |
ouaip, en tout cas moi je pourrais pas. et puis il faut bien que les joueurs se synchronisent tous sur le même repère de temps.
la règle de feu dans l'asynchronie c'est que le moment ou tu agis par rapport à un autre ne change rien au déroulement. Donc moi quand il y a interaction entre joueurs, c'est envoyé au serveur qui le garde au chaud jusqu'à l'heure de résolution du tour, puis il envoie la réaction à l'autre. dés fois ca me complique la vie de rajouter cette étape serveur (par exemple dans le acs le plus simple : envoi d'un message à un autre, mais il y a d'autres cas bien plus critiques, par exemple un assaut) mais c'est le seul moyen de garantir l'intégrité du jeu. Quant à mes DB dumps je les fais directement à la requête, via odbc (ca se fait en 10 lignes de code). -------------------- Z
|
Pages : (2) 1 [2] |