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