Développement d'un jeu en ligne - Gestion de unités.

simdu80 Messages postés 2 Date d'inscription dimanche 5 novembre 2006 Statut Membre Dernière intervention 11 novembre 2010 - 3 févr. 2010 à 16:36
simdu80 Messages postés 2 Date d'inscription dimanche 5 novembre 2006 Statut Membre Dernière intervention 11 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 ?

Merci d'avance !

4 réponses

phpAnonyme Messages postés 392 Date d'inscription mercredi 28 octobre 2009 Statut Membre Dernière intervention 23 mars 2012 55
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à !


______________________________________________________________________
0
Arto_8000 Messages postés 1044 Date d'inscription lundi 7 mars 2005 Statut Membre Dernière intervention 13 juillet 2010 7
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.
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
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


Cordialement,

Kohntark -
0
simdu80 Messages postés 2 Date d'inscription dimanche 5 novembre 2006 Statut Membre Dernière intervention 11 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 !

Merci à vous deux !
0
Rejoignez-nous