Skip to topic | Skip to bottom
Home
Minfo03
Minfo03.TravailMaitrehutLoicr1.21 - 12 Jun 2004 - 12:04 - MaitrehutLoictopic end

Start of topic | Skip to actions
logo.gif
m3.jpg

Fiche de travail de Maitrehut Loïc



Logiciels utilisés

Image2.gif Borland Jbuilder

Semaine 17 DONE

  • Reflexion sur la structure et les extensions possibles
  • Révisions

Semaine 18 DONE

  • Révisions
  • Examens

Semaine 19 DONE

  • Examens

Semaine 20 DONE


  • Lundi DONE => Total de temps de travail : 0h
    • Récupération d'un week-end cloué au lit :/

  • Mardi DONE => Total de temps de travail : 7h
    • Reflexion sur les différent problèmes que l'on va rencontrer => Temps passé : 6h
      • Calcul des courbes des comportement, comment introduire les poids
      • Comment introduire l'action dans le moteur (a quel moment, lien avec les comportement etc)
      • Comment gerer le combat
      • Est-ce que l'on va gerer les objet a partir des betes ou est-ce que ce sont les objets qui définiront l'action possible (objet mangeable etc)
      • Quelle influence auront les attributs sur les comportements ou les actions
    • Premiere ébauche d'un diagramme de classe => Temps passé : 1h

  • Mercredi DONE => Total de temps de travail : 7h
    • Décision de ne pas inclure des plug-in d'action (manger, combattre etc) mais de les gérer directement dans le cerveau des bêtes, principalement par soucis de performance car cela obligerait à avoir une instance de chaque action pour chaque bête ou un attribut spécifique a chaque action pour chaque bête, même si cela se fait en dépis de l'extensiblilité => Temps passé : 2h
      Les actions seront donc lancées par le moteur à travers chaque bête
    • Décision de ne faire porter les comportements que sur le déplacment (ce qui ecarte l'idée d'inclure les actions et les attribut spécifique dans les comportements) => Temps passé : 30 mn
    • Répartition d'un travail de recherche approfondie sur les déplacements et comportements :
      • Nico : Résoudre le problème de calcul des courbes
      • Mahi : Comprehention forte des applet de craig Renolds
      • Loïc : Recherche et compréhention des algorithmes de déplacement ciblé (pathfinding)
        • Après de longue recherches sur le net il m'apparait que l'algorithme le plus performant et le plus utilisé (notament dans les jeu de stratégie temps réel) est l'algorithme A* ou A-star => Temps passé : 4h30
        • C'est en fait un algorithme de recherche du plus court chemin modifié, voici une partie d'un article très bien fait
          http://www.policyalmanac.org/games/aStarTutorial.htm
          toutes les autres sources sont attachées sous la forme d'un fichier zip a-star.zip


  • Jeudi DONE => Total de temps de travail : 6h30
    • Mise en commun des travaux de recherche individuelle de la veille => Temps passé : 1h30
    • Premiere implementation des "classes clées" et d'un simulateur de comportement qui nous permettra de les visualiser => Temps passé : 5h


  • Vendredi DONE => Total de temps de travail : 8h30
    • Implémentation de la structure de base => Temps passé : 2h
    • Implémentation des utilitaires (position,courbe,vecteur) => Temps passé : 2h
    • Implémentation du simulateur (30%) => Temps passé : 3h
    • Javadoc des classes implémentées => Temps passé : 1h30

Semaine 21 DONE


  • Lundi DONE => Total de temps de travail : 6h
    • Elaboration du comportement Eviter Obstacle et implementation d'une première version ne gérant que les courbes et le changement de direction => Temps passé : 5h
    • Apport de quelques changements dans l'architecture pour supporter ce comportement => Temps passé : 1h

  • Mardi DONE => Total de temps de travail : 5h30
    • Elaboration de formules pour le calcule de changement de vitesse nécessaire lorsque l'on se rapproche trop d'un obstacle => Temps passé : 4h
      Le changement de vitesse consiste tout simplement à réduire ou augmenter la vitesse de l’unité en question.
      Cela est nécessaire lorsque l’on se rapproche d’un obstacle et que la vitesse ,trop grande, va nous empêcher de prendre correctement le virage.
      On pourrait très bien se dire que freiner n’est pas nécessaire, qu’il suffit de tourner plus brutalement mais l’on
      s’aperçoit rapidement qu’il existe de nombreuses situations ou réduire la vitesse est indispensable :
      par exemple lorsque l’unité est entourée d’obstacles elle doit alors s’arrêter (vitesse nulle).
      Tout d’abord, il faut définir à quel moment il faut freiner :
      On doit freiner lorsqu’un obstacle se trouve sur notre chemin, donc lorsque le vecteur
      indiquant la direction de l’unité « traverse » l’obstacle.
      Les calcules se font de le repère local de l’unité :
      On freine si (obstacle.x - obstacle.rayon) <= unité.rayon), ce qui équivaut à une collision sur l’axe des abscisses (collision si on garde la même direction).
      QandFreiner.JPG

      Ensuite, on doit déterminer comment freiner :
      On peut freiner par « pas », c’est à dire réduire la vitesse du même coefficient de freinage à chaque
      mouvement ou bien recalculer la nouvelle vitesse en fonction de la distance qui sépare l’unité de l’obstacle.
      C’est la seconde méthode que j’ai choisit car elle s’adapte à toutes les situations et permet d’adapter
      la vitesse en un seul mouvement.
      La vitesse de l’unité est bornée par 0 (arrêt) et vitesse_max (vitesse maximale possible de l’unité).
      Pour cela j’ai donc établi une formule (visualisable sur le graphique) qui est :
      Nouvelle_vitesse = (distance – vitesse) * vitesse_max / (distance_max – vitesse)
      Cette formule nous retourne 0 si la distance est inferieure ou egale a vitesse (le pas au prochain mouvement) et
      vitesse_max lorsque la distance est supérieure ou égale a distance_max (c’est a dire si il n’y a pas d’objet en vu).
      Lorsque la distance est entre ces deux valeurs, la vitesse est d’autant plus proche de vitesse_max que la distance est proche de distance_max et d’autant plus proche de 0 que la distance est proche de vitesse.

      QandFreiner.JPG

    • Recherche des formules de calcule d'angle pour le changement de direction en repere local => Temps passé : 1h30

  • Mercredi DONE => Total de temps de travail : 6h
    • Installation du pc portable (gentillement prêté par mon père pour la durée du TER) => Temps passé : 2h
      • Windows xp
      • Jbuilder
      • bibliothèques java manquantes
      • réseau
    • Implementation du changement de vitesse face a un obstacle pour le comportement Eviter Obstacle => Temps passé : 4h

  • Jeudi DONE => Total de temps de travail : 0h
    • Ferrié - repos

  • Vendredi DONE => Total de temps de travail : 7h
    • Modification du changement de vitesse : résolution des nombreux bugs dues aux paramètres (taille du champs de vision, cases etc) => Temps passé : 3h30
    • Amélioration du système de calcul => Temps passé : 1h30
    • Première implementation de l'algorithme de PATHFINDING A-star => Temps passé : 2h

    Semaine 22 DONE


  • Lundi DONE => Total de temps de travail : 5h30
    • Mise a jour du calcule de changement de vitesse pour parer a des bug du comportement evité => Temps passé : 1h30
    • travail sur la combinaison des comportements antagonistes => Temps passé : 4h
      exemple : Manger et eviter, selon les poids affectés un des deux comportements l'emporte sur l'autre.
      Si eviter a un poids plus gros que celui de manger alors comme le mouton (mangeable) est aussi un obstacle l'unité n arrivera jamais a l'attrapper et inversement si le comportement manger a un poids superieur a celui d'eviter alors lorsqu'elle voit un mouton l'unité n'evite plus les obstacles qui sont sur son chemin.
      Pour le moment apres de longues reflexions nous avons opté pour une reconnaissance de l'obet en fonction des caracteristiques de l 'unité (pour manger: si l unité a fain alors le mouton n'est plus un obstacle) même si celui nuit a l'extensibilité.
  • Mardi DONE => Total de temps de travail : 6h30
    • Travail sur le comportement suivre chemin et des checkpoints (en prévision du A*) => Temps passé : 2h
      Recherche d'un moyen de retrouver le chemin marqué par les checkpoints apres une deviation due a un evitement d'obstacle (un guerrier qui nous coupe la route par exemple) => Temps passé : 1h30 (mettre ici l'idée de la projetion avec illustration) (abandonné)
    • Implementation d'une partie du A* : decouper la map en cases de même taille => Temps passé : 3h
      Pour effectuer sa recherche, l’algorithme travaille sur un quadrillage se superposant à l’arène. Il va donc se servir de « cases », dont le centre de chacune représente un point de passage (checkpoint) pour l’unité.
      quadrillage.JPG


  • Mercredi DONE => Total de temps de travail : 7h
    • Réunion avec notre encadrant Mr Buffa => Temps passé : 2h
    • Continuation de l'implementation de l'algorithme A* : Marquage des cases constituant la map en tant que cases traversables ou non suivant leur occupation par un obstacle => Temps passé : 3h30
    • Implementation de l'option de debugage relative a la decoupe de la map (visualisation de la grille et des caractéristiques des cases) => Temps passé : 1h30


  • Jeudi DONE => Total de temps de travail : 5h30

    • commencement d'implementation du coeur de l'algorithme A* => Temps passé : 5h30

  • Vendredi DONE => Total de temps de travail : 8h

    • continuation de l'implementation du coeur de l'algorithme A* => Temps passé : 4h30
    • Implementation de l'option de debugage relative au meilleur chemin menant au point donné => Temps passé : 1h30
    • Debugage (notament sur la boucle de reconstitution du meilleur chemin apres calcule des valeurs de toutes les cases menant au point donné : boucle infini) => Temps passé : 2h

    Semaine 23 DONE


  • Lundi DONE => Total de temps de travail : 6h
  • Mardi DONE => Total de temps de travail : 5h30
    • Incorporation du comportement cible et de l'A* dans l'application => Temps passé : 1h
    • Testes et règlages sur les différents paramètres intervenant dans la recherche du plus court chemin pour avoir un temps de calcul acceptable (taille de cases etc ...) => Temps passé : 2h30
    • Implémentation du kit de debuguage relatif à ces paramètres => Temps passé : 2h

  • MercrediDONE => Total de temps de travail : 6h30
    • Implémentation du comportement sentinelle qui permet à une unité de patrouiller dans une zone => Temps passé : 2h30
    • Grosse perte de temps sur bug apparu sur le comportement suivre chemin et ceux qui en découlent (erreur sur un indide de tableau frown ,sur l'arrêt de l'unité sur le point final, et sur le fait que lorsque l'unité longe un mur ne etant très près le comportement éviter et suivreChemin se contrdise etla font se bloquer => Temps passé : 4h

  • JeudiDONE => Total de temps de travail : 7h
    • Réunion avec notre encadrant Mr Buffa => Temps passé : 3h
    • Mise au point d'une première version d'un comportement de groupe élaboré (abandonné) => Temps passé : 2h
    • Rédaction du rapport => Temps passé : 2h

  • VendrediDONE => Total de temps de travail : 5h30
    • Rédaction du rapport => Temps passé : 5h30


    Semaine 24 DONE


  • LundiDONE => Total de temps de travail : 6h
    • Rédaction du rapport => Temps passé : 3h
    • Mise a jour de tout les comportements pour incorporer les sliders de poids et les panels d'information => Temps passé : 3h

  • MardiDONE => Total de temps de travail : 7h
    • Rédaction du rapport => Temps passé : 7h


  • MercrediDONE => Total de temps de travail : 6h30
    • Rédaction du rapport => Temps passé : 6h30


  • JeudiDONE => Total de temps de travail : 8h30
    • Rédaction du rapport et des guides => Temps passé : 6h
    • Finalisation projet => Temps passé : 2h30

    Remarques

  • j'ai noté les heures de travail sur papier mais ce n'est que approximatif
  • je n'ai pas détaillé la rédaction car il y avait trop de choses différentes sans parler de la mise en page et nombreuses corrections ou modifications qui sont intervenues

    twikiRobot88x31.gif


    to top

  • Minfo.TravailMaitrehutLoic moved from Minfo.TravailMaitrehut on 24 Apr 2004 - 20:53 by BarelliNicolas
    Copyright © 1999-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
    Ideas, requests, problems regarding WIKIDeptinfo? Send feedback