Développement d'un jeu en ligne - Gestion de unités.
simdu80
Messages postés2Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention11 novembre 2010
-
3 févr. 2010 à 16:36
simdu80
Messages postés2Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention11 novembre 2010
-
6 févr. 2010 à 20:05
Bonjour à tous,
Je suis en train de développer un jeu en ligne, et je suis bloqué à un niveau de gestion des unités.
En effet, je n'arrive pas à coder cette façon de dire :
- si l'utilisateur a cliqué sur un bouton "construire unité", prendre le temps où il a cliquer, le temps de construction de l'unité sélectionné, puis tant que le temps actuel n'est pas supérieur ou égal au temps de fin de construction, ne pas ajouter dans la base de donnée l'unité.
De même, s'il en construit plusieurs (par exemple 4) je vais devoir dire : dans 10min, ajouter 1, 10min après encore 1... et si je fais comme ci-dessus, ça ajoutera 4 à la fin ce qui n'est pas réellement bon...
Quelqu'un serait capable de me proposer une solution ?
phpAnonyme
Messages postés392Date d'inscriptionmercredi 28 octobre 2009StatutMembreDernière intervention23 mars 201255 3 févr. 2010 à 17:10
Ben cela n'a pas l'air très compliquer en soit...
Avec des conditions simples standards "if-else", sans trop chercher de l'optimisation au départ en tout cas, tu peux y arriver en procèdant par étapes.
Aussi en y incorporant les fonctions dont tu aura besoin pour tes différents calculs soit "date()".
Tu sais ce que tu veux faire, te reste plus qu'à trouver les fonctions, instructions, conditions etc...qui te seront necessaires !
Après si tu as des éléments réalisés MAIS qui nécessite amélioration ou si tu as des difficultés particulières, NO Problem ont aient là !
Arto_8000
Messages postés1044Date d'inscriptionlundi 7 mars 2005StatutMembreDernière intervention13 juillet 20107 4 févr. 2010 à 19:18
phpAnonyme -> C'est plus compliqué que juste de faire des if/else ...
simdu80 -> Généralement pour ce genre de truc se sont des crons jobs (appellé tâche planifiée sur Windows) qui sont utilisés. Tu peux définir qu'à un interval régulier un script s'exécute pour vérifier les bâtiments construits.
Sinon, la solution optimale est d'opté pour des langages serveurs mieux adaptés pour se genre de problème comme Java (avec Servlet). Tu vas pouvoir faire une gestion du temps plus efficace et tu vas pouvoir offrir quelque chose de plus performant comme jeu en ligne.
kohntark
Messages postés3706Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention27 avril 201230 4 févr. 2010 à 20:28
Salut,
Je suis d'accord avec PhpAnonyme, ça ne devrait pas être bien complexe. Par contre mettre en place des cron jobs pour ce genre de chose l'est, et je trouve ça très lourd.
En réfléchissant tout haut et de manière simpliste :
- le joueur crée une unité
=> mise en DB de toutes les infos qui vont bien et de l'heure H + 10 min dans un champ "heure de validation"
- le joueur crée une autre unité
=> contrôle qu'une unité n'est pas déjà en cours de création :
- non => même traitement que ci dessus
- oui => insertion de ["heure de validation" de l'unité en cours de création] + 10 min dans le champ "heure de validation"
- n'importe quel joueur se connecte
=> toutes les unités ayant "heure de validation" < heure actuelle sont valides
simdu80
Messages postés2Date d'inscriptiondimanche 5 novembre 2006StatutMembreDernière intervention11 novembre 2010 6 févr. 2010 à 20:05
Ah trop cool !
J'avais pas penser à ça pour gérer s'il y avait une unité déjà en route !
Merci beaucoup à vous.
Je n'aurais pas pu le faire avec des cron de toute façon, j'ai déjà essayer sur une tache basique et j'ai galéré ^^'
Enfin bref !