greyhound race-tech design

32
 INTITULÉ TECH DESIGN « Greyhound Race » Sommaire  page 3  Network System…………………………………………………………………………………….  page 2 Features Analysis & State Machine……………………………………………….  page 4 Road Creation………………………………………………………………………………………  page 5 Tracer’s Movements…..……………………………………………………………………………  page 6 Greyhound’s Movements…..……………………………………………………………………… .  page 8  page 9 Camera…………………...………………………………………………………………………  page 10  page 11  page 12  page 13  page 14  page 15  page 16  page 17  page 18  page 19  page 20  page 21  page 22  page 23  page 24  Nitro………………………………………………………………………………………………... Race system……………...……………………………………………………………………… Race Start…………………...…………………………………………………………………… Race finish.. ……………...……………………………………………………………………… Overtaking (dépasseme nts)..... ………………………………………………………………… ... Overtaking (dépasseme nts)..... ………………………………………………………………… ... Collisions.. ……………...………………………………………………...……...………….... Ejection…....……………...…………………………………………………………………... Leave the road (sortie de route) …………………………………………………………..……... Respawn……………………...…………………………………………………………..……... Switch…....…………………...…………………………………………………………..……... Drawing in…...………………...…………………………………………………………..………. Point System…………………...…………………………………………………………..………. Bonus…….....………………...…………………………………………………………..……... Alarm….........………………...…………………………………………………………..……... 3D Arrow.......………………...…………………………………………………………..……... Diagramme de classes……………………………………………………………………………………… ..   page 25 Checkpoints.. ……………...………………………………………………………………… ...  page 7 Player’s State and Speed System…………………………………………………………………...

Upload: williamkrieg

Post on 05-Oct-2015

9 views

Category:

Documents


0 download

DESCRIPTION

Document Techniques pour les dévelopeurs

TRANSCRIPT

  • INTITUL TECH DESIGN Greyhound Race

    Sommaire

    page 3Network System.

    page 2Features Analysis & State Machine.

    page 4Road Creation

    page 5Tracers Movements..

    page 6Greyhounds Movements...

    page 8

    page 9Camera...

    page 10

    page 11

    page 12

    page 13

    page 14

    page 15

    page 16

    page 17

    page 18

    page 19

    page 20

    page 21

    page 22

    page 23

    page 24

    Nitro...

    Race system...

    Race Start...

    Race finish.....

    Overtaking (dpassements)........

    Overtaking (dpassements)........

    Collisions...............

    Ejection..........

    Leave the road (sortie de route).....

    Respawn........

    Switch............

    Drawing in.........

    Point System......

    Bonus.............

    Alarm.................

    3D Arrow...............

    Diagramme de classes.. page 25

    Checkpoints........

    page 7Players State and Speed System...

  • Features Analysis & State Machine

  • INTITUL Analysis Network System

    Nous voulons que lorsque durant la dmo, chacun joue le niveau sur son propre ordinateur en temps rel. Nous devons alors pouvoir crer un jeu en rseau. Ce qui comprends:

    La communication de certaines valeurs entre tous les joueurs (faire une liste de toutes les valeurs mettre disponible pour le rseau). Le dplacement de tous les GameObjects prsent dans la scne de chaque joueur.

    Diffrentes tapes de la rflexion pour la dmo de 3me anne:

    Pour crer un jeu en rseau sur Unity, il faut se connecter imprativement sur un MasterServer. Ceci gre les diffrents rseaux possibles que le jeu est capable de crer. Unity possde dj un MasterServer mais tant donn que celui-ci est trs fragile et quil est destin seulement aux test, Unity offre les codes sources pour en crer un.Lordinateur qui va crer le MasterServeur va aussi crer le serveur en mme temps. Pour cela, on va crer un script qui va stocker le serveur cre dans le MasterServer cre auparavant. On cre le serveur grce la mthode Network.InitializeServer(); et on le stocke dans le MasterServer grce la mthode MasterServer.RegisterHost();. Pour les joueurs, lorsquon va vouloir rejoindre le serveur cre par lhbergeur. Pour cela, on va faire une recherche dans le MasterServer et ds que lon va trouver le serveur on va sy connecter grce Network.Connect(). Une variable CountPlayer va simplmenter.Lorsque tous les joueurs sont connects au serveur (c.a.d lorsque la variable CountPlayer va tre gale une variable CountPlayerMax), le jeu peut tre lancs (Joueur Max ou de 2 6 pour la dmo?).

    Rflexion sur la feature pour la dmo de 3me anne:

    Pour grer les dplacements en temps rel, une simple instanciation du GameObject grce la mthode Network.Instantiate suffit. Cette mthode gre les dplacements dans lespace en temps rel.Par contre, les variables doivent tre modifies grce un type de fonction diffrentes qui va grer la communication entre les joueurs. Ce sont des fonctions RPC.

    Liste des lments mettre en RPC:

    Problme: Il est impossible de mettre en paramtre dans des fonctions RPC une variable boolean.

    Prsentation de la feature

    Lhbergeur est un ordinateur qui a pour unique but de crer le MasterServer

    et le serveur du jeu.

    Les 6 joueurs.

    Communications entre les joueurs et le serveur

  • INTITUL Analysis Road Creation

    La feature cration de route est un mcanique importante et trs difficile apprhender. Plusieurs pistes de rflexion ont t tudies afin dobtenir le rsultat escompt. Pour dbuter cette rflexion, quelques rappels sur

    les rgles qui vont rgir cette feature semblent ncessaire:

    La route est cre dynamiquement et en temps rel par le traceur.

    La route possde sa gravit propre.

    La route se dsagrge au fur et mesure (voir Analysis Road Degradation).

    Le traceur cre la route devant lui (plus prcisment en dessous de lavant du vaisseau).

    Le traceur peut raliser des loopings, des vrilles, tourner, sincliner et peut se dplacer en 3 dimensions (suivant les versions de la dmo).

    Ici la rflexion porte uniquement sur la cration dynamique de la route.

    Post-mortem de la feature cration de route pour le prototype de 2me anne:

    Comment fonctionne-t-elle?A chaque Frame, le Tracer cre un mesh de route (qui est un quadrilatre rectangle) en fonction dun point situ en dessous de lavant du vaisseau. Le mesh cr possde un script qui dtermine aprs combien de temps il est dtruit (dgradation de la route).

    Problmes rencontrs?Etant donn quun mesh est cre chaque Frame, il y a une superposition de mesh et de texture lorsque la vitesse du Tracer nest pas son maximum ce qui cause un problme au niveau de la physique et au niveau de la gestion de gravit propre de la route. Les virages crs par celui-ci ne sont pas fluides (les angles dans les virages sont des successions darrtes).

    Diffrentes tapes de la rflexion pour la dmo de 3me anne:

    Afin de palier les problmes rencontrs lors du prototype ralis en 2me anne, diffrentes approches de la mcanique ont t envisages.

    1re solution; mcanismes et fonctionnement; problmes mergeants:

    La 1re ide qui est apparue est dextruder la route au fur et mesure des dplacements du traceur. Cest donc cette approche de la feature qui a fait lobjet de recherches. Le mesh est extrud progressivement. La route se dsagrge au fur et mesure. Le mesh ragit la gravit et aux obstacles rencontrs. La cration est trs fluide et le rendu global est satisfaisant mais certains problmes apparaissent rapidement:

    Les faces sont cres bizarrement (faces internes, externes) Trop de faces sont cres et se superposent, problmes de superposition de texture. La texture applique au mesh extrud est tire, scale de la texture sur un des axes (longueur et hauteur de la route fixe, mais largeur qui augmente avec lextrusion)

    Source: http://u3d.as/content/unity-technologies/procedural-examples/3zu

    2me solution; mcanismes et fonctionnement; problmes mergeants:

    La 2me solution correspond une des fonctionnalits prsente dans les logiciels de modlisation 3d (Maya, 3Ds Max) o il est possible dextruder un mesh le long dune spline. Ici on peut lappliquer pour crer la route en fonction des positions conscutives du traceur suivant ses dplacements.Dans le script trouv, un plan est cr le long dun spline grce un systme de cration de points et de faces. Une gravit peut y tre applique. Contrairement la 1re hypothse de travail, les faces sont cres correctement, pas de superposition de faces. Toutefois la texture est encore tire. De plus aucune transformation (rotation) nest applique au plan et il faudra donc y rajouter et le prendre en compte au cours de la rflexion.

    Source: http://www.havchr.net/?p=150

    Cest cette solution qui est prise comme point de dpart de notre rflexion.

    En ce qui concerne la gravit propre la route, on peut lassimiler un aimant qui va attirer les vhicule et les maintenir sa surface. Cest donc une force qui sapplique en permanence.

    Lgende

    t=0

    t=1

    p1

    p2

    p0

    p3

    Points de contrle

    Tangente la courbe

    Normale de la tangente

    Mesh cr

    Rflexion sur la feature pour la dmo de 3me anne:

    Source: http://www.havchr.net/?p=150

    Comprhension du script:

    Il est ncessaire dtudier le fonctionnement du script trouv afin de pouvoir comprendre les tapes de leur rflexion.

    Pour dbuter, ils fixent eux-mmes les coordonnes des points de la spline. Avec comme point de dpart t=0 et le point final de la spline t=1.

    Si on prend linstant t=0.5, on obtient les coordonnes du milieu de la spline. Les points intermdiaires compris entre t=0 et t=1 sont appels points de contrle.

    Pour dbuter la cration dun plan partir de la trajectoire de la spline, on prend un premier point de contrle. Le code permet dobtenir la tangente la spline ce point de contrle. Cela permet dobtenir la normale la tangente (perpendiculaire la tangente). A partir de cette normale, le code permet la cration de 2 points p0 et p1 de part et dautre du point de contrle avec une largeur prdfinie et placs en fonction de la normale. Les points crs sont

    indexs dans un tableau qui sert faire un historique de la cration.On prend ensuite un 2me point de contrle, auquel on applique la mme mthode afin de crer 2 nouveaux points

    p2 et p3.Grce ces 4 points, on peut alors crer un plan.

    Quelle application de ce script pour notre dmo?

    Dfinir les coordonnes des points de la spline en fonction des dplacements du traceur.A partir de cette spline qui correspond la trajectoire ralise par le traceur, appliquer cette mthode afin de crer

    la route.Au lieu de crer un plan, y intgrer directement les mesh de route fournis par les graphistes.

    Afin dintgrer les mesh et de les modifier en fonction des transformations appliques la route (virage, monte, vrille), il faut que la route soit anime, skinne et rigge. Aprs manipulation des bones, cela influe sur la forme de la

    route.

    Le skinning et le rigging de la route amne un autre problme, dans la version minimale de la dmo, le mesh de la route a t dfinie avec une forme prcise: assiette. Du coup cela complique encore ces tapes donc aprs rflexion

    une forme de route plate va tre dveloppe dans la version minimale.

    La force de gravit de la route est applique aux vaisseaux, perpendiculaire la route et elle sexerce en direction de la route, perpendiculairement celle-ci.

    1er point de contrle

    2me point de contrle

    Prsentation de la feature

    Road

    Force de magntisme de la route

    INTITUL State Machine Road state

    Road Creation

    Road Crumbling

    Timer

    Timer

    Road Destruction

  • INTITUL Analysis Road Degradation

    La route cre par le Tracer a une dure de vie limite. La route est cre portion par portion. Chaque portion a une dure de vie identique. Donc la dgradation seffectue dans le mme ordre chronologique que la cration.

    La mthode pour grer la vitesse de la dgradation va tre tablie suite des tests de fonctionnement, il y a plusieurs faons pour la dfinir:

    En fonction de la vitesse du Tracer.

    Progressive en fonction de la progression, augmentation de la vitesse de dgradation aprs chaque passage de checkpoint.

    La dgradation de la route nest pas active ds le dbut de course. Elle ne sactive que X secondes aprs le dpart du Tracer (ou des Greyhounds).

    Analyse de la feature

    Suivant le choix de GD fait sur cette feature, on peut rsumer les consquences de chaque possibilits: En fonction de la vitesse du Tracer.

    Cela revient dire que la route a une longueur fixe tout le long de la partie. La vitesse de dgradation de la route est identique la vitesse du Tracer. Quand le Tracer a une vitesse basse, la vitesse de dgradation est basse et inversement haute vitesse. Progressive en fonction de la progression, augmentation de la vitesse de dgradation aprs chaque validation dun checkpoint.

    La longueur de la route dcrot au fur et mesure de lavancement de la course.

    Quelque soit la manire, si on sen rfre la feature cration de route, cela correspond supprimer les assets de route ajouts lors de la cration de route dans leur ordre de cration.

    Rflexion sur la feature pour la dmo de 3me anne:

    En fonction de la vitesse du Tracer:La vitesse du Tracer doit donc tre une valeur rcuprable dans le script de dgradation de la route.On dgrade donc dynamiquement.

    Progressive en fonction de la progression, augmentation de la vitesse de dgradation aprs chaque validation dun checkpoint:

    La vitesse de dgradation est tablie au dpart une valeur par dfaut pouvant tre modifie dans linspector. A chaque passage de checkpoint, on incrmente une valeur (pouvant elle aussi tre modifie dans linspector) la vitesse de dgradation.

    Prsentation de la feature

    INTITUL State Machine Road degradation

    VitesseDgradation=VitesseTracer VitesseDgradation=Variable

    Variation dynamique de la vitesse de

    dgradation Variable qui sincrmente dune variable X aprs validation dun

    checkpoint par le Tracer

    Lancement du script X secondes aprs le dpart du

    Tracer

    Variable fixe

  • INTITUL State Machine Tracers Movements

    INTITUL Analysis Tracers Movements

    Prsentation de la feature

    Petit rappel: le Tracer est le vaisseau qui se trouve en premire position, il dispose de mcaniques de dplacements diffrentes des autres joueurs (Greyhounds) et une route est cre sous le Tracer, route sur laquelle se

    dplacent les Greyhounds. Le Tracer quant lui nest pas soumis aux effets de la gravit du monde. Cest comme un vaisseau spatial.

    La feature Tracers movements est troitement lie la feature Road creation .

    Le Tracer peut :

    Acclrer et freiner

    Se dplacer en 3 dimensions.

    Plus la vitesse augmente, plus le rayon de braquage diminue et inversement.

    Pitch: rotation de lavion sur laxe des X

    Yaw: rotation de lavion sur laxe des Y

    Roll: rotation de lavion sur laxe des Z

    Rflexion sur les problmes mergeants: comme expliqu ci-dessus, le problme li lapplication dune

    physique davion est le suivant: une modification du roll influe sur les dplacements. Pour le projet nous

    souhaitons que le roll nest pas dincidence sur le dplacement (ex: on peut ainsi crer une vrille sans

    dplacements latral)

    Source sur la physique de vol: http://en.wikipedia.org/wiki/Flight_dynamics_%28aircraft%29

    Yaw: http://upload.wikimedia.org/wikipedia/commons/9/96/Aileron_yaw.gif

    Pitch: http://upload.wikimedia.org/wikipedia/commons/e/ec/Aileron_pitch.gif

    Roll: http://upload.wikimedia.org/wikipedia/commons/c/cc/Aileron_roll.gif

    Rflexion sur les diffrents axes de mouvements

    Diffrentes tapes de la rflexion pour la dmo de 3me anne:

    Notre intention principale pour les dplacements du Tracer est la libert. On veut que le joueur soit libre, et quil puisse se dplacer dans les 3 dimensions. Il peut se dplacer dans toute larne de course (dvi

    lorsquil atteint une bordure de larne). Il doit pouvoir faire des loopings, des vrilles, etc.

    Daprs ces diffrentes caractristiques de la feature, notre rflexion nous a men assimiler les dplacements du Tracer ceux dun avion.

    Sources:

    Problmes mergeants: Lorsquun avion tourne, cela correspond une inclinaison de lavion (le Roll, voir dveloppement ci-dessous) et cela ne correspond pas forcment nos attentes. Si chaque fois que le joueur

    souhaite tourner, cela engendre une rotation sur le Roll, cela pose le souci que la route sera toujours incline lors des virages.

    Pour faire un virage, un avion utilise une rotation du Yaw et du Roll simultanment.

    Solutions: Bien diffrencier et dissocier les interactions entre les diffrents mouvements. Le joueur manipule le roll de son vaisseau afin dobtenir linclinaison souhaite pour la route.

    Post-mortem de la feature Tracers movements pour le prototype de 2me anne:

    Comment fonctionne-t-elle?

    Lorsque le Tracer veut faire un pitch, le vaisseau subit une rotation au niveau de laxe des Y et lorsquil veut modifier le yaw, une rotation au niveau des X se produit. Lacclration se fait avec une translation du vhicule au

    niveau de laxe des Z. Le Yaw engendre une rotation sur le Roll.

    Problmes rencontrs?

    Lorsque la rotation sur laxe des X est suprieur 90, les contrles au niveau de Yaw sont inverss.

    Solutions apporter:

    Pour les soucis dinversion des contrles en fonction de la rotation du vaisseau, il faut faire en sorte au niveau des inputs quils changent en fonction de langle de rotation sur laxe des Y.

    Rflexion sur les inputs lis la feature

    Rappel: cest le Tracer qui cre la route. Pas de marche arrire possible, donc toutes les forces sont positives.

    Acclrer: permet dappliquer une force de translation lobjet. La force est exponentielle au dbut de

    lacclration puis devient linaire. Une vitesse maximale est atteinte aprs X secondes de pression sur la

    touche.

    Gestion de la pression de la touche pour lacclration.

    Si je relche la touche, passe en dclration, avec une dcroissance linaire.

    Frein main: permet de supprimer la force de translation, et datteindre une vitesse nulle.

    (Respawn: si le joueur se trouve dans le mauvais sens ou dans une position ou il ne peut plus dplacer son

    vhicule, il peut appuyer sur la touche respawn afin de replacer le vaisseau au centre de la route (engendre une

    perte de temps) enlever, pas de respawn pour le tracer) EN ATTENTE DES GD

    Pitch: rotation du vhicule sur laxe des X.

    Yaw: rotation du vhicule sur laxe des Y.

    Roll: rotation du vhicule sur laxe des Z.

    La rflexion sur les inputs a permit de dfinir et de confirmer plusieurs points:

    tout dabord les actions qui nont une incidence que sur les mouvements du vaisseau.

    et les actions qui ont une incidence sur dautres features.

    La vitesse peut avoir un lien avec la dgradation de la route, la vitesse joue aussi sur la maniabilit du vhicule.

    Le Pitch, le Yaw et le Roll interviennent dans la cration de la route.

    Pitch

    Yaw

    Roll

    Frein main Acclrer

    Respawn

    RollPitch

    Yaw

    Straight

    Yaw Left

    Yaw RightRelease Left Joystick1

    Push Left Joystick1

    Push Right Joystick1

    Release Right Joystick1

    Roll Down

    Roll Up

    Release Up Joystick 1

    Push Up Joystick1

    Release Down Joystick1

    Push Down Joystick1

    Roll DownYaw Left

    Roll DownYaw Right

    Roll UpYaw Left

    Roll UpYaw Right

    Push Diagonal Down-Right Joystick1

    Release Diagonal Down-Right Joystick1

    Push Diagonal Down-Left Joystick1

    Release Diagonal Down-Left Joystick1

    Push Diagonal Up-Right Joystick1

    Release Diagonal Up-Right Joystick1

    Push Diagonal Up-Left Joystick1

    Release Diagonal Up-Left Joystick1

    Joystick 1

    Joystick 2

    Initial Position

    Pitch Left

    Pitch Right

    Release Left 2

    Push Left 2

    Push Right Joystick2

    Release Right Joystick2

    Roll Down

    Roll Up

    Release Up Joystick1 Push

    Up Joystick1

    Release Down Joystick1

    Push Down Joystick1

    Roll DownPitch Left

    Roll DownPitch Right

    Roll UpPitch Left

    Roll UpPitch Right

    Push Down Joystick1 Push Right Joystick2

    Release Down Joystick1 Release Right Joystick2

    Push Down Joystick1 Push Left Joystick2

    Release Down Joystick1 Release Left Joystick2

    Push Up Joystick1 Push Right Joystick2

    Release Up Joystick1 Release Right Joystick2

    Push Up Joystick1 Push Left Joystick2

    Release Up Joystick1 Release Left Joystick2

  • INTITUL State Machine Greyhounds Movements

    INTITUL Analysis Greyhounds Movements

    Liens:

    Tutoriel vido:Partie 1: http://www.youtube.com/watch?v=qYlDwBNI_IU

    Partie 2a: http://www.youtube.com/watch?v=7e6ZGRT3s6c

    Partie 2b: http://www.youtube.com/watch?v=7o-3qe4gH_o

    Tutoriel Unity:http://unity3d.com/support/old-resources/tutorials/car-tutorial

    Rflexion sur la feature pour la dmo de 3me anne:

    Notre piste de rflexion nous mne tudier de plus prs le dplacement des voitures dans les jeux de course traditionnels . Dans Unity, il existe dj un systme souvent utilis qui se nomme les Wheel Colliders . Ceci gre tous les diffrents lments qui peuvent exister pour les contrles et la physique des voitures.

    Pour avancer, on modifie les variables motorTorque des Wheel Colliders (la puissance des roues = acclration) et pour les virages, les variables steerAngle (variable pour laxe des y de la voiture = le rayon de braquage). Pour freiner, la variable breakTorque des Wheel Colliders est utilise. Pour simuler un mouvement de vhicule raliste, la puissance du vhicule, la vitesse et les freins sont distribus par les roues arrires et la direction par les roues avant. Problmes mergeants:

    Etant donn que cette technique est souvent utilis pour les jeux de courses sur un circuit avec une gravit prdfinis, il y a certains paramtres de bases que nous nallons pas utiliser (comme par exemple: le sous-virage ou encore la gestion des suspensions) et qui peuvent nous gner pour les dplacements des Greyhounds.

    La feature Greyhound Movement est un mcanique trs importante. Plusieurs pistes de rflexion ont t tudies afin dobtenir le rsultat escompt. Pour dbuter cette rflexion, quelques rappels sur les rgles qui vont rgir cette feature semblent ncessaire:

    Les Greyhounds peuvent acclrer et freiner et utiliser la Nitro. Ils se dplacent gauche ou droite Plus la vitesse des Greyhounds augmente, plus le rayon de braquage diminue et inversement. Les Greyhounds peuvent draper.

    Prsentation de la feature

    Comment fonctionne-t-elle?Lorsque le joueur appuie sur laxe horizontal du joystick gauche de la manette, le vhicule subissait une rotation sur laxe des X et lacclration se fait avec une translation sur laxe des Z.

    Problmes rencontrs?Lorsque le joueur dont la rotation sur laxe des Y est suprieur 90, les contrles sont inverss.

    Post-mortem de la feature Greyhound Movement pour le prototype de 2me anne:

    Yaw

    FreinAcclrer

    Nitro

    Rflexion sur les inputs lis la feature Greyhound Movement :

    Nous voulons que les inputs de dplacements des Greyhounds soient trs simples comprendre et quils correspondent aux inputs de dplacements du Tracer (voir fiche DiscutionPaper_TracerMovement pour les inputs et un rappel sur les diffrents axes).

    La touche Acclrer applique une force de translation lobjet. Lorsquil arrte dappuyer sur celle-ci, le vaisseau dclre.

    Il est impossible de faire reculer le vaisseau.Le bouton Nitro permet daugmenter considrablement la force de translation appliqu lobjet.Le Yaw permet aux joueurs de faire tourner leurs vhicules. Gnre automatiquement une rotation sur

    le Roll.Le Pitch permet de rduire ou daugmenter la distance de saut. Il se situe sur le joystick gauche de la

    manette.En appuyant sur le bouton Frein main alors que le bouton Acclrer est toujours appuy, le

    drapage se lance. Pour larrter, le joueur doit remettre droit son vhicule.

    Ce que a amne:Les contrles correspondent aux contrles du Tracer. Durant le saut, le joueur utilise alors un seul

    joystick pour grer au mieux celui-ci. Cela apporte plus de simplicit au joueur.Cependant, cela peut entraner des contraintes lorsque le joueur appuie en diagonal involontairement.

    Diffrentes tapes de la rflexion pour la dmo de 3me anne:

    Nous voulions, pour les dplacements des Greyhounds, quils subissent la route cre par le Tracer. On veut que le joueur puisse matriser aux mieux son vhicule pour affronter ses adversaires. Lorsquil est en saut, le vaisseau peut modifier linclinaison horizontal pour rduire ou augmenter la distance de saut.

    Avec les diffrentes caractristiques de la feature, notre piste de rflexion nous amne lassimiler comme les dplacements dune voiture.

    Problmes rencontrs: Etant donn que notre jeu est de type arcade, nous ne voulons pas avoir des dplacements de voitures ralistes. Il y a certains lments dans les dplacements dont nous navons pas besoin (le fait de pouvoir grer le sous-virage de la voiture, avoir un contrle du centre de gravit de la voiture etc.).

    Acclration Virages

    Frein

    Schma reprsentant les Vecteurs force prsents pour les dplacements Greyhounds

    Avec le systme de Whell Coliders, on a la possibilit dutiliser la technique de survirage pour nos drapages. On modifie lgrement le centre de gravit des Greyhounds et on augmente le rayon de braquage pour que le vaisseau perde de la motricit tout en gardant une vitesse importante ce qui va causer un drapage.

    Rflexion pour les drapages lors de la dmo de 3me anne:

    Straight Left

    Right

    Drift

    Release Left

    Push Left

    Push Right

    Release Right

    Push One Time Break

    Initial Direction

    Left Roll Rotation

    Right Roll Rotation

    VFX / SFX

  • INTITUL State Machine Players Speed State

    INTITUL State Machine Players Movements

    Prdf

    ini au

    dpart

    de la c

    ourse:

    1 joue

    ur

    Prdfini au dpart

    de la course: 5 joueurs

    Greyhound qui double un autre

    Greyhound

    Tracer qui se fait doubl : passe en

    2me position

    Le Greyhound plac en 2nde

    position dpasse le Tracer et lui prend sa place

    Si le Tracer na pas rejoins le Checkpoint & quil na

    plus de points:Tracer passe en dernire

    position;Greyhound plac en

    2me passe Greyhound

    Tracer

    Greyhound

    INTITUL State Machine Player State

    Static

    Acceleration

    Brake

    Deceleration

    Pu

    sh

    Acc

    eler

    ate

    Push Nitro

    Pu

    sh

    Brake

    Release Accelerate

    Push Accelerate Do nothing

    during x seconds

    Stay push Brake

    Constant Speed Pu

    sh

    Nit

    ro

    Release Accelerate

    Push Brake

    Stay pu

    sh accelerate v=V

    max

    Ou

    Stay pu

    sh n

    itroV

    =Vm

    axNitro

    Release Nitro

    Release Accelerate

    Release Brake

    Push Brake

    CollisionCollision LD

    Collision Joueur

    Ejection

  • INTITUL Analysis Nitro

    La Nitro est une feature activable grce un input et disponible uniquement pour les Greyhounds (le Tracer ne dispose pas de cette mcanique). Elle permet aux joueurs daugmenter temporairement et de faon

    significative lacclration et la vitesse de leur vaisseau. Au dbut de la course, les Greyhounds commencent avec une jauge de Nitro vide : InitialeNitro=0;

    Elle est relie linterface du joueur, une jauge reprsentant la Nitro disponible qui sincrmente ou se dcrmente en fonction de lutilisation quen fait le joueur.

    Elle se comporte avec une gestion dinput en push/release, activation/dsactivation.

    La Nitro est prioritaire sur tout, il est impossible de dclrer ou de freiner durant lutilisation de la Nitro ou mme de lutiliser larrt total du vhicule.

    Cette feature comporte aussi un script de recharge de la Nitro. Ce script est activ en permanence ds quil manque de la Nitro au Greyhound, et quil nest pas en train dutiliser la Nitro. De plus, la valeur de Nitro

    recharge par seconde est plus importante pour le Greyhound en dernire position (Ex: Alors que les Greyhounds disposent dune rgenration de Nitro de 2 nitro/s, le Greyhound en dernire position a une rgnration de

    3.5 nitro/s).

    Il y a aussi des events qui incrmentent directement la variable Nitro du joueur:

    Passage de checkpoints

    Respawn conscutif une destruction par la dgradation

    Bonus?

    Dautres events amliorent la variable regenNitro tant que les conditions sont remplies:

    Vaisseau en aspiration

    Vaisseau en drapage

    Bonus?

    Lactivation et la dsactivation de la Nitro ont un effet sur les camra pour obtenir une impression de vitesse et dacclration. (voir analyse des camras)7

    Lors dun switch, le Tracer devenu Greyhound dvrouille la Nitro, toutefois, elle commence avec une valeur nulle.

    Analyse de la feature

    Cette mcanique est donc verrouille pour le Tracer. Elle ne fera pas partie des ses mcaniques (au niveau des inputs et au niveau des script activs).

    Pour les Greyhounds, il est possible de dcomposer la feature Nitro en plusieurs scripts grs de faon indpendante mais en relation.: Un script dactivation/dsactivation de la nitro en push/release dun input de la nitro et lapplication des effets sur le vaisseau. Une variable Nitro (int) est ncessaire, de mme quune variable NitroMax

    (NitroMax=100) qui ne peut pas tre dpasse. Il faut aussi une variable UseNitro (int) afin de dcrmenter la variable Nitro durant lactivation de linput. Si la valeur Nitro atteint une valeur nulle, la Nitro se dsactive.

    Un script pour grer la recharge de la Nitro: on nommera cette fonction ReloadNitro. Grce une variable nomme RegenerationNitro qui sincrmente toute les secondes jusqu ce que Nitro=NitroMax. Ce script gre aussi la rgnration de la Nitro pour les events qui amliorent la variable RegenerationNitro grce un systme de conditions qui modifie la valeur de RegenerationNitro.

    Un script de rgnration de nitro ponctuelle suite un vnement de course. Pour ce script, la valeur ajoute la variable de Nitro est mis en paramtre afin de pouvoir dfinir dans un tableau la valeur ajoute la variable Nitro suivant lvent ralis (comprend le passage des checkpoints et le respawn conscutif la destruction dun vaisseau par la dgradation de la route).

    Lorsque la Nitro est active, lacclration et la vitesse maximum pouvant tre atteinte sen trouve modifies:MaxSpeedNitroActivated = MaxSpeedVaisseau (valeur qui change ne fonction du vaisseau) + SpeedBonusNitro (variable rajoute).

    Rflexion sur la feature pour la dmo de 3me anne:

    Prsentation de la feature

    INTITUL State Machine Nitro

    INTITUL State Machine Reload Nitro

    Nitro enabled

    Nitro disabled Reload_Nitro disabled

    Nitro is using

    Nitro isnt using

    Nitro NitroMax

    Nitro = NitroMax

    Nit

    ro c

    on

    sum

    ed

    Nitro

    to th

    e max

    ReloadNitro enabled

    Switch

    Nitro enabled:Nitro = 0

    INTITUL State Machine Nitro Status

    Greyhound

    Tracer

    Nitro: disabled

    Nitro : enabled

    SwitchNitro : enabled

    Nitro=0Cooldown de recharge

    Switch

    Sil reste de la nitro: consommation de la nitro restante

    If theres no nitro

    Nitro : disabled

    Input Nitro unpushed

    Nitro deactivated

    Le script RegenNitro se lance et la Nitro se

    recharge progressivement

    Jauge de Nitro pleine

    Utilisation classique de la Nitro

    Cas des amliorations de la recharge Nitro

    Cas de recharge immdiate de la Nitro

    Le vaisseau est en drapage

    La rgnration de la Nitro est amliore

    Input Nitro pushed

    Nitro activated

    La jauge se consomme

    progressivement

    La Nitro se rgnre normalement

    Vaisseau 2 prend laspiration du

    Vaisseau 1

    La rgnration de la Nitro est amliore

    2

    1

    Le vaisseau nest plus en drapage

    La rgnration de la nitro redevient

    normale

    Checkpoint

    La Nitro disponible est conserve

    Le vaisseau est dtruit par la

    dgradation, il va donc respawn.

    Le vaisseau dispose de plus de 50% de sa

    Nitro

    Le vaisseau respawn une certaine distance de la dgradation

    Input Nitro unpushed

    Nitro deactivatedLa jauge arrte dtre

    consomme

    Vaisseau 2 ne prend plus laspiration du

    Vaisseau 1

    La rgnration de la Nitro redevient

    normale

    2

    1

    Checkpoint valid La nitro sest recharge

    immdiatement dune valeur X

    Checkpoint

    2 situations possibles

    Le vaisseau est dtruit par la

    dgradation, il va donc respawn.

    Le vaisseau dispose de moins de 50% de

    sa Nitro

    Aprs le respawn, sa Nitro est recharge

    50%

    Le vaisseau respawn une certaine distance de la dgradation

  • INTITUL Analysis Camera

    Les cameras correspondent au point de vue des joueurs. Et le FOV de la camra correspond ce qui est affich sur lcran du joueur.

    Il est ncessaire de disposer de 2 cameras par vaisseau (1 pour visualiser ce qui se passe devant le vaisseau et une autre pour se qui se passe derrire, comme un rtroviseur central). De plus les cameras ont en target le

    vaisseau qui leur est attribu: elles suivent les vaisseaux en fonction de leur dplacements.

    Prsentation de la feature

    Analyse de la feature

    De part le gameplay et pour un souci de lisibilit, on va diffrencier les camras en fonction du rle du joueur: Le Tracer cre une route derrire lui, et pour avoir suffisamment de lisibilit, il est ncessaire de placer la camra principale une certaine distance du vaisseau. Et ce afin, aussi, quil puisse voir rapidement, sans

    forcment utiliser la camra arrire, si un Greyhound est proche de sa zone de switch. Le Greyhound quand lui ncessite moins de visuel de se qui se passe derrire lui que le Tracer. Lui a besoin de plus de visibilit sur le parcours cr par le Tracer. La camra principale est donc place plus prt du

    vaisseau (contrairement au Tracer).

    De plus tous les joueurs dispose dune camra secondaire qui lui permet aprs activation dun input, dafficher la vue arrire afin de visualiser ce quil se passe derrire lui.

    Positionnement des camras en fonction des diffrents rles occups pendant la course:

    Rflexion sur le positionnement des camras pour obtenir une impression de vitesse :

    Rflexion sur la feature pour la dmo de 3me anne:

    Greyhound

    Tracer

    Camras pour le Tracer

    Camras pour le Greyhound

    B

    A

    Distance A < Distance B

    hA

    hB

    dB

    dA

    Camra Vue arrire Activable

    Input

    Camra de Base

    Ce schma prsente les diffrences entre la camra pour le Tracer et la camra pour les Greyhounds.

    La principale diffrence est la distance sparant la camra du vaisseau.

    FOV camra Tracer

    P P

    FOV camra Greyhound

  • INTITUL Analysis Systme de course

    Ici il sagit plus dune feature globale qui va regroupe plusieurs features qui vont interagir ensemble pour former un tout: le systme de course.

    Analyse de la feature

    Le systme de course va intgrer la feature des checkpoints (dpart, arrive et checkpoints intermdiaires) les mcaniques de course (aspiration, dpassement, collision, sortie de piste, respawn et le switch) li un systme de points.Il sagit de notifier toutes les liaisons entre scripts qui se font lors dune course. Quand fait-on appel tel ou tel script?

    Prsentation de la feature

    INTITUL State Machine Systme de course

  • INTITUL Analysis Race Start

    Rappel Core Pillar: Cest le tracer (vaisseau en 1re position) qui cre la route, le parcours.

    Analyse: Le dpart lance la course, pour que les vaisseaux soient placs avant le dpart, il faut dj avoir un mesh de route avec la ligne de dpart (en effet, le tracer cre la piste mais le dpart pas encore lanc donc pas de

    route dj cre..). Le prendre lenvers, syntaxe revoir!!!!

    Fonctionnement de la feature

    Une course dbute de la faon suivante:Chargement de larne o se droule la course, larne comprend des lments dj prsents et pralablement placs:

    -obstacles-checkpoints-bonus -Un asset de route pour le dpart

    Dpart diffr entre Tracer et Greyhounds:Cest le Tracer qui cre la route sur laquelle vont se dplacer les Greyhounds. Pour que le Tracer ait une avance consquente et quune route soit cre, le Tracer dbute sa course avant les Greyhounds.Le dpart des Greyhounds se fait quelques secondes aprs celui du Tracer.

    Une vitesse initiale qui diffre:Le Tracer dbute la course avec un dpart lanc. Cest--dire que sa vitesse initiale est suprieure 0.Les Greyhounds dbutent la course avec un dpart arrt. Leur vitesse initiale est gale 0. De plus, les Greyhounds commencent la course avec une jauge de nitro vide.

    Positionnement des joueurs:Le Tracer dbute sa partie au centre de lasset de route de dpart pr-positionn avec le chargement de larne.Les Greyhounds dbutent la course sur une grille de dpart (voir Positionnement).

    Un compte rebours:Un compte rebours permet tous les joueurs (Tracer et Greyhounds) de savoir quand prcisment la course est lance. Il y a donc 2 comptes--rebours diffrents, un pour le dpart du tracer et un autre pour

    les dpart des Greyhounds.

    Rflexion sur la feature pour la dmo de 3me anne:

    Plusieurs faons de procder:

    Dans le premier cas, le dlai se fait automatiquement. Un trigger est plac sur la ligne de dpart. Lorsque le Tracer slance, il dispose dune vitesse initiale (dpart lanc). Sur le schma, on voit que les vaisseaux dmarrent une distance donne de la ligne. Cest cette distance qui fera office de dlai entre le dpart du Tracer et celui des Greyhounds. Une fois que le Tracer passe la ligne, le dpart des Greyhounds est donn.

    Dans ce 2me cas, le dlai est ralis directement dans le script, avec une valeur pouvant tre modifie dans linspector. Certainement la solution la plus intressante.

    Prsentation de la feature

    Des paramtres particuliers:Certaines features de dplacements sont bloques avant le dpart et elles sont dbloques lorsque le dpart est donn.

    A REMPLIR APRES CONCERTATION AVEC LES GD

    Des questions:Quelles actions sont actives avec le dpart?Quelles sont les actions dbloques et celles qui sont restreintes avant le dpart? Exemple: avant le dpart, puis-je faire ronfler le moteur de mon vaisseau (ninclut aucune translation, juste un feedback sonore

    et/ou visuel)?De quelle faon le positionnement des joueurs est-il tabli?Quelle est la forme de la grille de dpart?Temps dattente avant le dpart des Greyhounds ou distance avant que le Tracer ne passe un trigger qui enclenche le dpart des Greyhounds?

    Distance parcourir avant le

    dpart des Greyhounds

    1re possibilit

    2me possibilit

    Dlai entre le dpart du Tracer

    et celui des Greyhounds

    INTITUL State Machine Race Start

    Mise en place dune course

    Chargement map

    Positionnement joueurs

    Dbut de la course

    Dpart TracerDpart lanc:

    vitesseInitiale >0

    Inputs dsactiver:Vaisseaux immobiles

    Dlai

    Dpart GreyhoundsDpart arrt:

    VitesseInitiale=0;Nitro=0;

  • INTITUL Analysis Race_Finish

    Elle correspond au dernier checkpoint restant valider (voir analyse checkpoint).

    Lorsquil ne reste plus quun checkpoint, celui-ci se transforme en arrive pour finir la course.

    Cette feature peut tre sujette modifications suivant la version du prototype:

    Version minimale: les checkpoints sont visibles par tous et dvoils ds le dbut de la course.

    Version suprieure: les checkpoints sont organiss en paliers et dvoils au fur et mesure.

    Analyse de la feature

    Le point important de cette feature est son droul et les consquences de chaque arrive du point de vue scripting. Quels sont les scripts qui sont activs ou dsactivs lors de passage par un vaisseau? Suivant le vaisseau (Greyhound ou Tracer), les scripts activer/dsactiver diffrent-ils?

    Dans un premier temps, il faut raliser un script pour remplacer lasset du checkpoint par celui de larrive.Un checkpoint est constitu dun asset graphique et dun trigger. Lorsque quun vaisseau entre en collision avec le trigger dun checkpoint, cela valide celui-ci.

    Chronologiquement, il est logique de dire que le premier vaisseau passer larrive est le Tracer. Consquences du passage du Tracer:

    Affichage des feedbacks de fin de course (VFX, Texte, SFX, etc) Stop le script de cration de route aprs x secondes ( afin davoir un support pour les vaisseaux aprs larrive) Stop le script de gains de points continus pour le Tracer Conserve les gains de points dus aux sorties de pistes Dclenche le script de perte de points continus pour les Greyhounds Inputs de dplacements dsactivs aprs x secondes Arrt du vaisseau

    Ensuite, ce sont les Greyhounds qui finiront la course, donc pour chaque Greyhound, les consquences sont: Affichage des feedbacks de fin de course (VFX, SFX, Texte, etc) Stop le script de perte de points pour le Greyhound en question Inputs de dplacements dsactivs aprs x secondes Arrt du vaisseau

    Et enfin une fois que le dernier Greyhound a pass la ligne darrive, cela engendre:

    Lorsquun joueur est arriv et stopp: - Il est alors transfr sur une autre camra dun autre joueur encore en course. Peut-on changer de camra? Dispose-t-on dun onglet, un menu droulant avec le nom des joueurs et en slectionnant le nom dun joueur, on passe sur sa camra.

    Questions pour les GD:Quel est le droul de la fin dune course?

    Prsentation de la feature

    INTITUL State Machine Race_Finish

    Avant dernier checkpoint valid

    Arrive valide par le Tracer

    Script de changement dasset: lasset du checkpoint restant est remplac par lasset darrive

    Arrive valide par un Greyhound

    Tous les concurrents ont pass la ligne darrive

    Fin de la course

    Affichage des feedbacks fin de course (VFX, Texte, SFX) Stop la cration de route aprs x secondes Stop le script de gain de points continus pour le Tracer Dclenche le script de perte de points pour les Greyhounds Inputs de dplacements???

    Affichage des feedbacks fin de course (VFX, Texte, SFX) Stop le script de perte de points pour le Greyhound Inputs de dplacements???

    Que se passe-t-il? Dcompte des points? Tableau individuel des actions ralises lors de la course?

  • INTITUL Analysis Checkpoints

    Les Checkpoints permettent de matriser la dure dune course. La validation de tous les checkpoints est indispensable pour finir la course. Le Tracer dispose dun temps imparti afin de rallier le checkpoint. Il gagne du

    temps supplmentaire pour chaque checkpoint valid.

    Analyse de la feature

    Rflexion sur la feature pour la dmo de 3me anne:

    Prsentation de la feature

    INTITUL State Machine Checkpoints

    INTITUL State Machine Timer , Tracer State

    Every Second

    Cross a checkpoint

    Dont cross a checkpoint & Point = 0

    Set a predefines timer Timer Decrementation

  • INTITUL Analysis Overtaking

    Les dpassements permettent aux joueurs de gagner des points. Chaque dpassement intervient dans le script du classement (position) de la course.

    Analyse de la feature

    Chaque vaisseau intgre une ligne de dpassement (un trigger) plac devant le vaisseau.

    Lorsquun vaisseau passe le trigger, cela entraine une modification des positions dans le classement, un gain de point pour le vaisseau ayant gagn une position. Pour tre sr quun vaisseau ai bien ralis un dpassement, il a plusieurs pistes de rflexion. Suivant la faon dont sera cod la cration de route, on appliquera telle ou telle solution.

    Si la solution de cration de route ne fonctionne pas:Utilisation dun systme de trigger afin de pouvoir dfinir quand lieu un dpassement.

    Si la solution de cration de route fonctionne:Le systme de classement est plus facile mettre en place, directement reli au script de cration: calcul de la distance parcourue depuis le dbut de la course, qui va directement intgrer les dpassements.

    Rflexion sur la feature pour la dmo de 3me anne:

    Prsentation de la feature

    Trigger de dpassement

    1

    2

    Chaque vaisseau possde 2 triggers, un plac devant et un derrire le vaisseau. Afin dtre sr que les vaisseaux soient

    dans le mme sens. Pour activer les consquences dun dplacement, il faut dans lordre que le trigger 1 touche le

    trigger de dpassement puis que le trigger 2 le touche son tour.

    Trigger de dpassement

    Trigger de dpassement

    Trigger de dpassement

    Un problme apparait, le placement du trigger suivant la position du vaisseau sur la

    route.Quelles solutions pour rgler le problme?

    Solution 1: La premire ide qui vient est dagrandir le

    trigger afin que mme si le vaisseau se trouve sur un des cts de la route, le trigger soit assez grand pour couvrir la

    totalit de la route.Problme mergeant: si une autre route se

    trouve trop proche, le trigger se trouve cheval sur les 2 routes; solution non viable.

    Solution 2: Lorsquun vaisseau se dplace latralement sur la route, il effectue un dplacement de x

    units. Il suffit donc de dplacer inversement le trigger de x units.

    INTITUL State Machine Dpassement

    Greyhound Greyhound

    TracerGain de points dpassement

    Switch

    dpassement

    dp

    assemen

    t

    Gain de points switch

    Dev

    ien

    t G

    reyh

    ou

    nd D

    evient

    Tracer

  • INTITUL Analysis Collision

    Il existe 2 types de collisions dans Greyhounds Race:

    Les collisions entre les vaisseaux et des lments prsents dans le dcor.

    Les collisions entre vaisseaux.

    Une collision a lieu ds quil y a contact.

    Lors dune collision entre 2 vaisseaux, un test de collision seffectue. Le gagnant gagne des points et jecte le perdant.

    Analyse de la feature

    Nous allons tudi les diffrentes collisions prsentes dans le prototype de jeu. Mais attention certains cas particuliers de collision (switch, collision Tracer/ dcor)

    Les collisions entre un vaisseau et un lments du dcor:Cela entraine automatiquement une destruction du vaisseau puis un respawn.

    Les collisions entre vaisseaux:Un test de collision seffectue ds la collision, suivant le rsultat du test, le gagnant expulse le perdant:

    Pour chaque vaisseau, on rcupre les valeurs suivantes :Vitesseinstant_T_collide X RobustesseVitesseinstant_T_collide = vitesse du vaisseau 1 au moment de la collision.Robustesse = valeur lie la caractristique du vaisseau.

    Le rsultat de la comparaison peut amener 3 rsultats:

    Si le Tracer entre en collision avec un autre vaisseau, sil y a dfaite du Tracer au test de collision, cela entraine un switch.Si le Tracer rentre en collision avec un lment du dcor, il est dtruit et il respawn comme tout autre vaisseau. Toutefois, sil est doubl pendant ce laps de temps, le switch seffectue.

    Question GD: Ejection fixe ou en relation avec lcart entre les tests de collision: plus lcart est important plus grande est ljection? Peut-on entrer en collision avec un vaisseau ou un lment du LD pendant une jection?

    Prsentation de la feature

    Vitesseinstant_T_collide X Robustesse

    ForceDeCollision_vaisseau1

    Vitesseinstant_T_collide X Robustesse

    ForceDeCollision_vaisseau2

    =

    Vitesseinstant_T_collide X Robustesse

    ForceDeCollision_vaisseau1

    Vitesseinstant_T_collide X Robustesse

    ForceDeCollision_vaisseau2

    >

    Vitesseinstant_T_collide X Robustesse

    ForceDeCollision_vaisseau1

    Vitesseinstant_T_collide X Robustesse

    ForceDeCollision_vaisseau2

    (L/2): le vaisseau 2 est en dehors de la route

  • INTITUL Analysis Respawn

    Le Respawn permet un joueur de replacer son vaisseau sur et au centre de la route. Le Respawn occasionne une perte de temps le temps de seffectuer.

    Le Respawn est une feature qui se lance sous certaines conditions:

    suite lactivation dun input par le joueur.

    suite une sortie de piste.

    Le Respawn fait intervenir des FX, un portail qui souvre au niveau de la position de rapparition du vaisseau.

    Une fois sur la piste, le vaisseau redmarre une vitesse non nulle et fixe dans linspector : dpart lanc.

    O respawn un vaisseau?

    Le point particulier dans Greyhound Race est que la piste est dynamique et quelle se dgrade avec le temps.

    Le Respawn est particulier dans 2 cas bien prcis:

    cas dune collision Tracer/Obstacle LD.

    cas dune sortie de piste due la dgradation.

    Analyse de la feature

    Le Respawn se lance aprs la destruction dun vaisseau. La position du Respawn est dtermine par la dernire position valide du vaisseau sur la route. Le respawn replace le vaisseau au centre de la route, et dans la mme rotation que le vecteur de la route (peut-tre le mme vecteur de direction que les bones de lasset de route sur lequel il respawn). Pendant le respawn, les inputs de dplacement sont dsactivs.

    Les vaisseaux qui respawn reprennent le contrle de leur vaisseau une fois celui-ci replac sur la route. Une fois les inputs ractivs, le dpart suite au respawn se fait en dpart lanc.

    Aprs le respawn, le vaisseau conserve les collisions. Toutefois, il bnficie temporairement (dure approximative 4s ) dun bouclier qui, en cas de collision avec un autre vaisseau, fait que le rsultat du test de collision est obligatoirement une galit. Mais sil y a collision avec un obstacle, le bouclier napporte aucun effet, le vaisseau est donc dtruit.

    Le Respawn a une dure fixe x secondes. Cest donc une lgre perte de temps pour le joueur.

    Rflexion sur la feature pour la dmo de 3me anne:

    Prsentation de la feature

    INTITUL State Machine Respawn

    Cas du Respawn suite une collision du Tracer avec un obstacle LD

    Obstacle

    BOUM !!!

    Cas dun respawn classique

    Obstacle (btiment)

    Obstacle (btiment)

    BOUM !!!

    Dernire position valide: Centre de

    la piste

    Sortie de piste= destruction

    vaisseau

    Lorsque quun vaisseau est dtruit, cela engendre automatiquement un Respawn.

    Pour effectuer le Respawn, on rcupre les dernires coordonnes du vaisseau

    (dernire position enregistre o le vaisseau se trouve sur la route), cela nous donne

    une position. On y ajoute la distance parcourue par la dgradation pendant le

    Respawn.

    Ensuite on replace le vaisseau au centre de la route, avec la mme orientation que la

    route.

    Entre le moment de lexplosion et le moment o le joueur reprend le contrle de son

    vaisseau, il sest coul un temps tabli 2 secondes (tests voir)

    Obstacle (btiment)Suite lexplosion,

    lobstacle devient intangible et peut

    tre travers.

    Si le Tracer rentre en collision avec un obstacle prsent dans larne, son

    vaisseau est dtruit.

    Il respawn de manire classique, avec une seule particularit:

    Suite la collision, lobstacle collisionn devient intangible, ses collisions sont

    alors dsactives et lobstacle peut tre travers.

    Si pendant le temps de respawn, un Greyhound dpasse le Tracer, il y a switch.

    Position dgradation

    instant t0

    Position dgradation

    instant t1

    Distance parcourue par la dgradation

    pendant le respawn

    Distance parcourue par la dgradation

    pendant le respawn

    Cas du respawn dun vaisseau dtruit par la dgradation de la route

    BOUM !!!

    Si un Greyhound se fait rattraper par la dgradation, il est dtruit. Sensuit un Respawn:

    Le vaisseau ne peut pas tre repositionn lendroit o il a t dtruit car la route a t

    dtruite par la dgradation.

    Le vaisseau rapparait donc une distance X de la dgradation + la distance parcourue

    par la dgradation pendant le temps du Respawn.

    Distance parcourue par la dgradation

    Distance X de la dgradation partir

    de la destruction

  • INTITUL Analysis Switch

    Le switch est le fait de changer de rle entre un Greyhound et un Tracer.

    Les diffrentes actions qui se produisent lors du switch:

    Conditions pour le switch:

    Il y a 3 diffrents moyens de switcher: Il faut collisionner avec le Tracer et sil perd le test de collision (voir Analysis Collision) Dpasser le Tracer (voir Analysis Overtaking). Rester dans une zone trigger larrire du Tracer. Le switch se produit partir si le joueur

    est rest dans celle-ci dans un temps donn.

    Dfinition du Switch

    Trigger de dpassement

    Trigger Grap

    Nouveau Tracer:

    Change le tag du vaisseau en Tracer Dsactive le trigger Grap Active la fonction UseNitro() jusqu consommation intgrale de la Nitro

    disponible. Dsactivation de la fonction ReloadNitro(). Activation de la fonction GaindePointTracer(). Modification HUD Modification des paramtres de la camra Dsactivation des fonction bonus() et StockageBonus() Modification des Inputs Dsactivation des CheckCollideRoad.

    Nouveau Greyhound:

    Change le tag du vaisseau en Greyhound Dsactive le trigger Grap Octroie un malus de vitesse Activation de la fonction UseNitro() Activation de la fonction ReloadNitro() (la nitro de ce joueur est gale 0). Dsactivation de la fonction GaindePointTracer() Modification du HUD Modification des paramtres de la camra Activation des fonctions Bonus() et StockageBonus() Modifications des Inputs Activation des CheckCollideRoad

    Le Greyhound est rentr dans le trigger Grap

    Switch

    Greyhound

    Tracer

    Collision LD Est dpassRespawn

    Temps Checkpoint coul Collision

    Dpassement

    Grap

    Victoire

    Dfaite

    Reste dans le trigger Grap pdt X secondes

    Sortie du trigger Grap

    Entre dans le

    trigger Grap

    Plus de points

    Test de collision

    INTITUL State Machine Switch

    3me phase

    1re phase

    2me phase

    1

    2

    3

    4

    5

    6

    12

    3

    4

    5

    6

    Le switch punitif est un cas particulier: il se dclenche uniquement sur le Tracer sous certaines conditions:

    son temps pour rejoindre le checkpoint est coul. son score est gal 0.

    Une fois ses conditions remplies, le switch punitif se dclenche: Le Tracer est arrt net (justification RP: il a plus de sauce):vitesse nulle. Ses inputs sont bloqus. Ses collisions sont dsactives.

    Une fois le switch effectu: Le Tracer est pass Greyhound, ses inputs sont dbloqus, il repart une vitesse nulle et ses collisions sont ractives X secondes aprs le switch.(il y a un test de collision avec les autres

    vaisseaux avant de ractiver les collisions).

    Le Tracer reste bloqu jusqu ce quun switch seffectue. Pendant ce laps de temps, il peut tre travers (pas de collisions).

    2

    3

    4

    5

    6

    1

    Cas du Switch punitif Tracer

    Rflexion sur la feature pour la dmo de 3me anne:

    Portion de route cre par le nouveau Tracer

    Le Tracer est arrt: il ne dispose plus ni

    de temps ni de points

    Le Tracer na pas de collisions, il peut tre travers. Le

    switch seffectue.

  • INTITUL Analysis Drawing In

    Laspiration est un phnomne physique qui consiste se placer derrire un solide lors dun dplacement (en gnral une vitesse leve) pour diminuer sa propre rsistance aux fluides prsents dans lenvironnement.

    Description du dpassement:

    Condition pour ltat daspiration:

    La condition daspiration est un trigger larrire du vaisseau. Pour entrer en aspiration, il faut donc:- Se trouver derrire un autre vaisseau.- Il faut avoir une distance respecter.

    Drawing In Definition

    Poignes de rglages :- Taille du Trigger- Gain tat aspiration

    Ltat aspiration apporte:- De laugmentation de la rgnration de la Nitro.- Augmentation de la vitesse max ou ajout dun valeur la vitesse actuelle.

    Feedbacks lis cet tat:- VFX?- SFX?

    Si la solution de cration de route fonctionne:Laspiration peut etre facilement dtectable non plus par un trigger.Si la distance entre le vaisseau et celui qui est devant est infrieur une valeur, il y a aspiration.

    Trigger pour ltat Aspiration

    Aspiration pour le vaisseau bleu

    Pas daspiration pour le vaisseau bleu

    Vaisseau dans la zone trigger aspiration

    dun autre vaisseau

    INTITUL State Machine Drawing In

    Change Boolean

    Sort de la zone trigger

    Fin des buffs

    Etat En aspiration .Buff => Rgnration nitro

    + augmentation de la vitesse max ou vitesse actuelle augmente de x

    Les diffrentes actions qui se produisent lors du switch:

    Questions:Il y a une rgnration de la nitro en permanence ?OuLes actions qui donne de la nitro suffissent.

  • INTITUL Analysis Points system

    Le systme de points va permettre de grer tous les gains et pertes de points au cours de la course.

    Analyse de la feature

    Rflexion sur la feature pour la dmo de 3me anne:

    Plusieurs possibilits daborder cette feature:

    Un script qui gre et regroupe la totalit des fonctions de gains et perte de points.

    Un script de gain/perte de point pour chaque event, ces scripts prsents dans la hirarchie du projet sont appels une fois levent accompli.

    Un script de gain/perte de points. Avec en proprit, le nombre de points gagns ou perdus (la valeur est positive en cas de gain de points et ngative en cas de perte de points. On peut aussi rpertorier dans un Array, le nombre de points associ tel ou tel event. Comme a suivant laction ralise, on rcupre le nombre de points dans le tableau et on lance le script de gain/perte.

    Mais au sein mme de ce systme on peut tablir 2 catgories: le gain/perte occasionnel (suite une action particulire) et le gain/perte continu. Il y aura donc srement 2 scripts diffrents. Un pour chaque catgorie.

    Prsentation de la feature

    INTITUL State Machine Points system

    Les gains et pertes de points sont associs des events particuliers. Pour dbuter on va rpertorier tous les events engendrant une perte ou un gain de points.

    Gain de points Perte de points

    Collision- Victoire au test de rsistance- Sortie de piste (suite une collision) Sortie de piste (sans collision) Dpassement Switch Statut Tracer (continu) Sortie de piste (Dgradation)

    Temps Checkpoint coul (continu) Le Tracer a passer la ligne darrive (continu)

    Event validRcupration dans un Array du

    nombre de points associ levent

    Lancement du script de gain/perte

    de points

    INTITUL State Machine Start Points Sytem

    If Point Player = 0

    Race Actions. No point Increase point Decrease Point

    Race Actions.

    Race Actions.

    INTITUL State Machine Points

  • INTITUL Analysis Bonus

    Un bonus est une amlioration temporaire des caractristiques du vhicule.Il y a donc un amlioration des diffrentes caractristiques du vhicule qui sont:

    Acclration

    Vitesse Max

    Maniabilit

    Rsistance

    Analyse de la feature

    Nous voulons que les bonus ne soient semblables des armes pour donner plus envie de contrler le vhicule.

    Cependant le type de bonus varie en fonction du rle du joueur.Il y a deux manires de rcuprer des bonus, qui ont tous les deux une approche diffrente.

    - Lorsquun joueur rcupre un bonus dj plac dans larne de course- Lorsquun Greyhound traverse un checkpoint

    Rflexion sur la feature pour la dmo de 3me anne:

    Prsentation de la feature

    INTITUL State Machine Bonus

    Stockage des bonus:

    Le stockage diffre en fonction du rle. On le teste dabord par une condition.

    Si le joueur est Greyhound, il peut stocker deux bonus. On utilise une tableau contenant 2 valeurs qui stocke les diffrentes capacits du bonus rcolts. Si le bonus est activation automatique, on lance son application directement sans avoir besoin de le faire entrer dans le tableaux de bonus.

    Si le joueur est Tracer, il ne peut pas stocker de bonus. Lorsquil rcolte un bonus, on lance directement leffet apport par celui-ci.

    Question GD : Si le joueur possde 2 bonus dans son stock et quil rcupre un bonus utilisable instantanment, perd-il un bonus?

    Rflexion sur la feature pour la dmo de 3me anne:

    Alatoire des bonus:

    Lorsquun joueur rcupre un bonus, un script pour la notion dalatoire est lanc.

    Il y a plusieurs types dalatoire dans notre jeu:- Lors des checkpoints, le script de bonus est lanc. Il va alors lanc la fonction alatoire checkpoint par position.

    A chaque position, une liste de checkpoint est dfinie et lordinateur va tirer alatoirement le bonus parmi cette liste. La liste des bonus prsent dans les paliers doivent tre dcrites par les GD. Le nombre de bonus au total nest pas entirement dfinit.

    - Lors de la rcupration de bonus prsent dans le LD.Lorsque le joueur rentre dans le trigger du bonus, le script bonus est lancer. Il va alors lancer la

    fonction alatoire en fonction du rle du joueur.

    Lorsque la squence dalatoire est finie, le bonus est soit stock, soit utilis automatiquement suivant leffet associ.

    Description de lalatoire lors des checkpoints

    Tracer

    Greyhound

    Bonus 1 Bonus 2 Bonus 3 Bonus 4

    Bonus 5 Bonus 6 Bonus 7 Bonus 8

    Bonus 7 Bonus 8 Bonus 9 Bonus 10

    Bonus 9 Bonus 10 Bonus 11 Bonus 12

    Bonus 11 Bonus 12 Bonus 13 Bonus 14

    Bonus 13 Bonus 14 Bonus 15 Bonus 16

    2eme

    3eme

    4eme

    5eme

    6eme

    Rflexion sur la feature pour la dmo de 3me anne:

    Utilisation des bonus:

    Tous les bonus du Tracer et la plupart des bonus Greyhound sont utilisation immdiate.

    Lorsquun Greyhound active lInput Bonus, il active le bonus stock lemplacement 0 et disparait du tableau de stockage des bonus.Lorsque le Greyhound possde 2 bonus dans son stock, lutilisation, il utilise le bonus lemplacement 0 du tableau de stockage de bonus. Le bonus prsent lemplacement 1 est transfr lemplacement 0. Lemplacement 1 devient donc libre pour stocker un nouveau bonus.

    Bonus Stock 1Premier bonus

    stock

    Bonus Stock 2Deuxime Bonus

    stock

    Tableau de bonus pour les Greyhound Superposition des bonus

    Bonus Stock 3Nouveau Bonus

    Stock

    Bonus Stock 2 Deuxime Bonus

    stock

    Bonus Stock 1 Bonus Stock 2

    Tableau de bonus pour les Greyhound Utilisation des bonus

    Bonus Stock 2 Emplacement vide

    Description de lalatoire pour les bonus prsents dans le LD

    Tracer

    Greyhound

    Bonus 1 Bonus 2 Bonus 3 Bonus 4

    Bonus 5 Bonus 6 Bonus 7

    Bonus 8Bonus 7

    Bonus 8

    Bonus 9

    Bonus 10Bonus 9

    Bonus 10

    Bonus 11

    Bonus 12Bonus 11

    Bonus 12

    Bonus 13

    Bonus 14

    Bonus 13

    Bonus 14Bonus 15 Bonus 16

    1er

    Emplacement 1 Emplacement 2 Emplacement 1 Emplacement 2

    Emplacement 1 Emplacement 2Emplacement 1 Emplacement 2

    No Bonus Gain a Bonus

    Greyhound

    Bonus Activated

    Tracer

    Stock Bonus

    INTITUL State Machine Bonus

    No Bonus Cross checkpoint

    Random Range Bonus

    Check Position

    INTITUL State Machine Alatoire Checkpoint Bonus

    Gain Bonus

    No Bonus Cross checkpoint

    Greyhound

    Check Status

    INTITUL State Machine Alatoire LD Bonus

    Gain Bonus

    Tracer

    Random Greyhound bonus

    Random Tracer bonus

    Position

    Bonus Activated Apply characteristic

    INTITUL State Machine Activation LD Bonus

    No BonusAfter few seconds

  • INTITUL Analysis Alarm

    Lalarme est disponible pour tous les concurrents (Greyhounds & Tracer). Mais les conditions dactivation changent suivant le rle. Pour le Tracer, lalarme se dclenche quand un concurrent se rapproche derrire lui.

    Pour les Greyhounds, elle se dclenche seulement lorsque la dgradation est sur le point de rattraper le vaisseau.

    Cest un feedback visuel & sonore qui amne le joueur tre plus attentif.

    Analyse de la feature

    Lalarme est la pour avertir le joueur et le pousser tre plus attentif. Le joueur est donc averti visuellement et de faon sonore quun joueur (pour le Tracer) ou la dgradation (pour les Greyhounds) se trouve derrire lui. Donc il faut utiliser un script qui gnre laffichage de lalarme lorsque les conditions sont remplies.

    Rflexion sur la feature pour la dmo de 3me anne:

    Plusieurs solutions pour aborder cette feature:

    Si la solution de cration de route fonctionne, il est plus simple de dfinir comme condition une distance minimale entre le vaisseau du joueur et llment hostile : autre vaisseau pour le Tracer et dgradation pour les Greyhounds.

    Solution de secours: trigger de dtection qui active lalarme

    Prsentation de la feature

    INTITUL State Machine Alarm

    La valeur dalarme correspond la valeur maximale partir de laquelle lalarme se dclenche.

    La valeur djoueurX correspond la distance sparant le Greyhound du Tracer

    Si djoueurX dalarme alors lalarme se dclenche.

    dalarme

    djoueurX

    La valeur dalarme correspond la valeur maximale partir de laquelle lalarme se dclenche.

    Si ddgradation dalarme alors lalarme se dclenche.

    dalarme

    ddgradation

    Diffrentes versions

    Version idale

    Version de secours

    Test de distance avec un autre vaisseau ou dgradation

    Fonction de test de collision checkCollide entre le trigger et la dgradation ou un

    autre vaisseau

    Hors de la zone alarme

    CollisionPas de collision

    Dclenchement du script dalarme

    Boolean AlarmIsPlaying ==

    true

    Par dfaut:Boolean AlarmIsPlaying == false

    Dans la zone alarme

    If Boolean AlarmIsPlaying ==

    true

    If Boolean AlarmIsPlaying ==

    false

    Rien ne se passe

    If Boolean AlarmIsPlaying ==

    true

    If Boolean AlarmIsPlaying ==

    false

    Rien ne se passeArrt du script

    dalarme

    Boolean AlarmIsPlaying ==

    false

    Par dfaut:Boolean AlarmIsPlaying == false

    If Boolean AlarmIsPlaying ==

    true

    If Boolean AlarmIsPlaying ==

    false

    Rien ne se passeArrt du script

    dalarmeDclenchement du

    script dalarme

    If AlarmIsPlaying == true

    If Boolean AlarmIsPlaying ==

    false

    Rien ne se passeBoolean

    AlarmIsPlaying == false

    Boolean AlarmIsPlaying ==

    true

    Utilisation dun trigger plac derrire le vaisseau.

    Problme mergeant: Mme souci que pour le trigger de dpassements. Lorsquun vaisseau se dplace latralement sur la

    route, il effectue un dplacement de x units. Il suffit donc de dplacer inversement le trigger de x units.

    Zone Trigger Alarme

    Zone Trigger Alarme

    Zone Trigger Alarme

    Zone Trigger Alarme

  • INTITUL Analysis 3d Arrow

    La flche 3D directionnelle fait partie du HUD spcifique au Tracer. Elle indique la direction du checkpoint le plus proche. Elle permet aussi de savoir quelle distance le checkpoint vis se trouve du vaisseau du joueur.

    Analyse de la feature

    Pour parvenir cela, il faut:

    Une fonction qui permet de dterminer le checkpoint le plus proche du Tracer. Une fonction qui permet de grer dynamiquement, en fonction des dplacements du Tracer, les mouvements de la flches afin de toujours indiquer la direction du checkpoint le plus proche.

    Rflexion sur la feature pour la dmo de 3me anne:

    Prsentation de la feature

    INTITUL State Machine

  • INTITUL Diagramme de classes Greyhound Race

    +Update(virtuelle)() : void+UploadShip() : void+CheckState() : void+Switch() : void

    +b_IsTracer : Boolean+b_IsFollower : Boolean+b_IsBlocked : Boolean

    Pilote

    *

    *

    +f_AccelerationRange : float+f_AccelerationTime : float+f_Speed : float+f_Handiness : float+f_MaxSpeed : float+f_Drag : float+i_Cost : int

    Ship

    ShipManager

    +a_ShipArray

    1

    *

    -Update() : void

    NPC (Non Playable Character)

    -Update() : void

    PC (Playable Character)

    extends extends

    Menu

    GameOptions

    1

    *1

    *

    +Update() : void

    InputManager**

    +GetMode() : void+SelectShip() : void+CreatePilot() : void+SelectArena() : void

    -c_PilotNumber : const

    GameManager

    -m_pilotArray6

    *

    +Gravity() : void+Drag() : void+Crumbling() : void

    +v_Gravity : Vector3+q_RoadRotate : Quaternion-q_InitialRotate : Quaternion

    Road

    *

    *

    +UseNitro() : void+UseBrake() : void+PilotController() : void+UseDrawingIn() : void+Respawn() : void+ReloadNitro() : void

    +IsDrawingIn : Boolean+IsRespawning : Boolean+IsUsingNitro : Boolean+IsUsingBreak : Boolean+IsOnRoad : Boolean

    MovementManager

    1

    *

    ShipCollision

    extends

    +s_SoundRess+f_SoundVolume : float

    SoundDef

    +PlaySound( soundID )()

    SoundManager (singleton)

    +m_SoundArray*

    *

    +m_Ship

    *

    *

    Model3D

    VFX (List)

    +m_VFXArray

    *

    *

    -history = 0-multiplayer = 1

    Mode "enum"

    -m_currentMode

    1*

    SoundID (enum)

    -m_soundID

    1

    +DetourArena() : void+Checkpoints() : void

    +CheckpointIsValidate : Boolean

    Arena

    +Update() : void

    HUDManager

    BonusDef+UseBonus() : void

    BonusManager (singleton) +m_BonusArray

    ScoringSystem

    ScoringManager

  • INTITUL Analysis

    Analyse de la feature

    Rflexion sur la feature pour la dmo de 3me anne:

    Prsentation de la feature

    INTITUL State Machine

    Tech_Design_Final.vsdSommaireFeatures Analysis & State MachineNetwork_SystemRoad_CreationRoad_DegradationTracer's_MovementsGreyhound's_MovementsPlayer's State and Speed SystemNitroCameraRace systemRace_StartRace_FinishCheckpointsOvertakingCollisionsEjectionLeave the roadRespawnSwitchDrawing InPoints systemBonusAlarm3D ArrowDiagramme de classeTemplate