26-09-2010, 12:00 PM
(26-09-2010, 10:21 AM)Sephi-Chan a écrit : À toi de voir comment tu modélises ton graphe, et si tu peux ou non travailler avec des sous-graphes (à moins que le mec ne puisse cliquer à l'autre bout du monde, je ne connais pas tes besoins).
Il y aura des régions (une carte par région) mais je voudrai avoir le jeu le plus à plat possible. Il existe déjà une offre plétorique de jeu basé sur le même modèle (travian, heros might and magic ...) où tu as une carte et après tout le monde a la même sous carte.
(26-09-2010, 10:21 AM)Sephi-Chan a écrit : Tu dis que tu n'as pas besoin de temps réel, mais une solution comme la suivante serait-elle envisageable :
- Je choisis mon unité et sa destination ;
- Je reçois un message genre "Déplacement en cours…" sans vraiment de détail (je n'ai même pas l'heure d'arrivée puisque le calcul n'est pas encore effectué), on a une petite requête Ajax (n'allons pas compliquer ça avec du push tout de suite) exécutée toutes les 10 secondes (c'est arbitraire) capable de déterminer si le calcul d'itinéraire est terminé pour afficher plus de détail (la durée du trajet, notamment) ;
- Côté serveur, l'application génère un processus dans laquelle la résolution du chemin est effectuée (on a vu que c'est une tâche longue, donc l'inclure dans le processus de génération de la page de réponse n'est pas envisageable si l'on travaille sérieusement), avec un passage de flag à true pour que notre requête Ajax suscitée sache que le calcul est terminé ;
Oui, ça me semble très bien comme idée. Avec une fréquence peut-être variable en fonction de la longueur estimée du trajet. Pour faire un déplacement de trois cases, c'est dommage d'avoir à attendre 15 secondes. Non ?
(26-09-2010, 10:21 AM)Sephi-Chan a écrit : Bien sûr, ça implique d'avoir un serveur sur lequel tu as le droit de créer des processus, je ne sais pas si on peut sur du mutualisé.Je suis sur du semi-dédié. Est-ce qu'une tâche cron pourrait faire l'affaire ?
(26-09-2010, 10:21 AM)Sephi-Chan a écrit : De plus, tout ceci ne te sers qu'à déterminer le chemin, après, il faut gérer un déplacement, deux cas de figure :Disons que j'ai vraiment envie d'en chier
- Le déplacement doit être granulaire dans l'espace et le temps : c'est le cas si l'on veut un système où passer dans certains endroit peut provoquer des événements (exemple, si je passe par une route dans la forêt, je peux me faire attaquer par des bandits). La gestion dans le temps est d'autant plus capitale si tu veux permettre aux joueurs d'assurer le rôle des bandits (avec un message sur leur panneau de jeu du genre "un convoi arrive près de vous") ;
- Le calcul servait juste à déterminer le temps de trajet et tu considères que le déplacement sera terminé (et l'unité passera directement du point de départ au point d'arrivée à l'heure prévue).
Dans le premier cas, tu vas vraiment en chier, dans le second c'est très simple.
Je pensais faire un système où la minute serait l'unité de mesure pour calculer les déplacements (pas la seconde) ceci afin de faire une pseudo économie de ressources sans être dans le tour par tour. Ce serait du "temps réel" sans être à la seconde.
En plus, avec un système granulaire, il peut se passer des éléments venant interompre le déplacement (construction d'un mur, destruction d'un pont ...).
Comme je voyais les choses, on avait une table des déplacements avec une heure/minute du prochaine mouvement. A chaque minute, on déplace toutes les troupes et on regarde ce qui se passe. Est-ce une bonne faaçon de voir les choses ?
Merci pour tous ces échanges !!!