Bonjour,
Je travaille sur un jeu, ou des camions livrent des marchandises. L’idée
c’est un jeu “temps réel”, c’est à dire qu’une journée est une journée,
et
qu’en une heure le camion ne parcoura que 80km (pour peu qu’il roule Ã
80km/h, vous l’aurrez compris).
A n’importe quel instant, un joueur peut démarrer la mission du camion.
Le
camion part donc, et arrivera à un instant précis à sa destination.
Comment
faire pour mettre à jour la base (gérée par ActiveRecord bien sur) à cet
instant précis ?
Si je veux travailler à la minute, je peux imaginer une tâche et un cron
qui
selectionne tous les camions censés être déjà arrivé (heure d’arrivée
prévue
<= heure courante) et qui ne sont pas effectivement arrivé (status == en
route) et je les fait arriver (statut = arrivé, heure d’arrivée = heure
d’arrivée prévue). Ensuite à moi d’être sur que cette tache prenne moins
d’une minute, ce que j’imagine largement faisable.
Pour le faire à la seconde près je vois vraiment pas comment faire.
J’imagine un process toujours vivant (donc pas de cron) qui scrute en
boucle
mais j’imagine mal faire une requete par seconde rien que pour voir ce
qui
doit etre mis à jour, et ensuite balancer en rafale les modifs à faire.
Je joue pas mal à Travian (pub gratuite pour un jeu de stratégie/guerre
très
bien fait (-; ) et eux ils ont les événements à la seconde près. Un
simple
script javascript donne un compte à rebours (on voit quand les armées
arrivent), et à l’instant ou elles sont censées arriver, la page fait un
reload automatique (toujours via javascript) et rafraichit la page :
l’armée
est arrivée. Evidemment, si à cet instant on n’est pas connecté, l’armée
arrive également donc ce n’est pas le javascript qui déclenche
l’événement.
Voilà , si vous avez des idées de conception, je suis preneur !
Merci (-:
gUI
–
Pour la santé de votre ordinateur, préférez les logiciels libres.
Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/
Browser le web : http://www.mozilla-europe.org/fr/products/firefox/
Suite bureautique : http://fr.openoffice.org/