Coordonnées et déplacement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Coordonnées et déplacement

Re: Coordonnées et déplacement

par Poukie » 22 sept. 2009, 20:53

Je crois comprendre ta réponse, mais je ne pense pas qu'elle convient vraiment à mon problème. J'ai du mal l'exposer.

Je veux reprendre le genre de déplacement "à la Ogame" (t'es à un endroit, tu dis "je veux aller là" et le jeu t'y envoie sans que tu aies besoin d'être devant ton pc)
Mais en cours de route, il peut se trouver des obstacles et j'ai besoin de tester le type de terrain dans lequel le joueur évolue évolue pour déterminer sa vitesse. L'aspect graphique est très secondaire (on va dire qu'il est inexistant).
Est-ce que c'est envisageable ou bien cela nécessite trop de calculs côté serveur ?

Merci d'avoir pris le temps de me répondre.

Re: Coordonnées et déplacement

par sadeq » 22 sept. 2009, 19:40

Les pros n'utilisent pas PHP pour ça, c'est plutôt du flash ou du java ou à la rigueur du javascript couplé à de l'ajax. Cela soulage le serveur Web qui se limitera à gérer la base de données pour préparer les profils et sauvegarder les paramètres utilisateurs. Le traitement de l'interface du jeu doit être délégué au client (poste du navigateur) pour que le processus soit rapide au niveau temps de réponse et réactivité.

Ceci dit, les données du jeu doivent être téléchargées côté client pour que le processus y ait accès le plus rapidement possible et ainsi augmenter la réactivité du gestionnaire d'événement utilisateur.

Par exemple, si le jeu consiste en un véhicule que doit parcourir un espace et une trajectoire contenant des obstacles. Le programme du jeu doit savoir réagir à l'ensemble des événements possibles, il doit donc disposer des données concernant la trajectoire prévue et les obstacles existant. L'objet véhicule doit être programmé pour réagir par rapport à des types d'événements précis et prendre les décisions adéquates. Dans ce cas, tous les objets composant le jeu doivent avoir des fonctions programmées et des événements partagées avec les autres objets et donc pour cet l'exemple si le véhicule ne doit pas franchir une zone interdite de son espace de jeu, il doit être programmé pour calculer toujours sa position et la comparer avec les positions des zones interdites de son environnement (données que cet environnement partage avec lui) et ainsi, il évitera de franchir ces zones. Cela revient à dire, que le véhicule en tant qu'objet programmable doit disposer d'une fonction ou méthode qui effectue cette tâche comme un écouter (listener) d'événements externes à l'objet ; surtout si les données des positions des objets de l'environnement (autres véhicules et obstacles) sont variables dans le temps (dynamiques). En plus simple, c'est comme si toi tu avais un GPS qui récupère des données de localisation partagées par un processus spécialisé, et te permet réagir pour déterminer en temps réel ton évolution dans un parcourt.

Dans ce cas, la programmation orientée objet est typiquement l'environnement de développement adéquat pour ce genre de solution.

Coordonnées et déplacement

par Poukie » 22 sept. 2009, 18:29

Bonjour à tous (je suis tout nouveau ici !)

Je me lance dans la création d'un jeu par navigateur en php, et à peine je démarre que j'ai le problème suivant :

Un joueur se déplace en temps réel sur une carte qui comporte plusieurs "types" de terrains.
Sa vitesse dépend du type de terrain sur lequel il se trouve.
Certains terrains sont infranchissables.

Je voudrais modéliser cela.

Pour l'instant, je n'ai trouvé que 2 solutions :

1) Tester la localisation à intervalles de temps réguliers pour déterminer la vitesse et l'inscrire dans une base de données. Mais ca ne me parait pas résoudre la question du terrain "infranchissable". Car dans ce laps de temps, le joueur peut pénétrer dans un tel terrain, et une fois dedans, il ne pourra plus bouger car il n'aura le choix qu'entre des locations "infranchissable". Sauf si je le renvoie à sa dernière localisation où il n'était pas encore dans une telle zone. Néanmoins, pour gagner en précision, il me faut alors tester régulièrement la position du joueur (toutes les 10s ?) pour éviter d'être bloqué trop loin du terrain infranchissable (si je teste toutes les minutes, et qu'il se trouve à 59s d'un terrain infranchissable, il lui est incapable de se rapprocher de la bordure du terrain carrossable). S'il y a des centaines, voire des milliers de joueurs sur le serveur (je suis ambitieux), est-ce que ce n'est pas trop lourd ?

2) Calculer la trajectoire du personnage et définir à l'avance les moments où il changera de vitesse et les moments où il sera bloqué. Cela revient à calculer toutes les positions qu'il va parcourir et définir à quels moments "t" il va changer de vitesse et quand son parcours sera bloqué par un terrain infranchissable.

Quelle solution vous parait la plus réaliste ? Comment font les "pros" ?
D'avance merci.