Le jeu en lui même.
Il ne doit y avoir que du code spécifique à ce jeu en particulier.
Le Game Engine gère :
la physique, les écrans de jeu et surtout les acteurs.
Tout ce qui a une animation et réagit dans le monde est un acteur.
Un objet immobile dans le monde est juste un WorldEntity.
Graphics Engine gère :
partitionnement de l’espace, le scenenode, particules, les inputs la gestion des assets et surtout le graphisme + eclairage.
Permet d’importer les scenes du jeu en binaire
Permet de build des xnb au runtime : nécessaire pour l’export des editeurs et ainsi faire des tests.
Version commune du graphics engine pour les editeurs
Contient les assets de chibis bomba utilisés à la fois par les éditeurs et le jeu.
Permet d’utiliser un projet de content pour plusieurs projets...
Content spécifique au jeu en lui même
Content spécifique au game engine
Content spécifique aux editeurs
Content spécifique au graphics engine
Permet d’ajouter les informations de bounding box et de bounding sphere à un model
Permet la gestion des modeles animés ( version ecriture )
Permet la gestion des modeles animés ( version lecture )
Permet de lancer le jeu normalement sur les cartes ne supportant que le reach en XNA 4.0
Gestion du réseau.
Dans Datas\XXXX\user.xml ( XXXX étant le nom du projet ChibisBomba par exemple )
- PathCopyDll : Chemin vers lequel sera copiée la dll produite par l'éditeur d'acteurs.
- PathCopyXml : Chemin vers lequel sera copié la definition xml des acteurs et des entités.
Il s'agit du fichier Xml qui sera rebuild par la suite en xnb par visual studio
- PathCopyXnb : Chemin vers lequel sera copié le Xnb contenant la définition des acteurs et entités.
C'est le fichier lu par le jeu directement.
- DefaultProject : Nom du projet sélectionné par défaut
- AssetsPath : Répertoire où se situe les assets en xnb : permet de sélectionner facilement un model.
- SavePath : Répertoire où sont sauvées les informations des entités et acteurs.
Pour chibisbomba il faut indiquer XNA4\FilesEditors\ChibisBomba\Entities afin de travailler ensemble sur la même base.
Voici un exemple de user.xml fonctionnel :
<?xml version="1.0"?> <LocalSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <PathCopyDll> <string>J:\Chibis\XNA4\ChibisBomba\ChibisBomba\bin\x86\Release</string> <string>J:\Chibis\XNA4\Libs</string> <string>J:\Chibis\XNA4\ChibisEditor\ChibisEditor\bin\x86\Release</string> </PathCopyDll> <PathCopyXml> <string>J:\Chibis\XNA4\ChibisBomba\ChibisBombaContent</string> <string>J:\Chibis\XNA4\AssetsBombas</string> <string>J:\Chibis\XNA4\ChibisEditor\ChibisEditorContent</string> </PathCopyXml> <PathCopyXnb> <string>J:\Chibis\XNA4\ChibisBomba\ChibisBomba\bin\x86\Release\Content</string> <string>J:\Chibis\XNA4\ChibisEditor\ChibisEditor\bin\x86\Release\Content</string> </PathCopyXnb> <DefaultProject>ChibisBomba</DefaultProject> <AssetsPath>J:\Chibis\XNA4\ActorsEditor\ActorsEditor\bin\x86\Release\Content</AssetsPath> <SavePath>J:\Chibis\XNA4\FilesEditors\ChibisBomba\Entities</SavePath> </LocalSettings> |
1 : Sauvegarde des dernières modifications.
Le dossier backups enregistre toutes les versions précédentes à chaque sauvegarde.
2 : Build : compile et copie les dlls + xnbs vers le jeu les solutions visual et les editeurs.
Il suffit de lancer le jeu pour tester les modifications apportées par ce build.
3 : Ajout / suppression d’acteurs
4 : Type d’entités :
- WorldEntities : Entité de décoration disposant simplement d’un model graphique et pouvant contenir une primitive physique.
- Actors : toute entité animée et/ou déclenchant des actions est un acteur.
- Triggers : Déclenchement d’évenements lors d’un passage dans une zone
5 : explorer d’entités
6 : duplique l’objet sélectionné dans l’explorer
7 : Mouvement de caméra sur l’aperçu
8 : Sortie d’erreurs lors des builds
9 : Afficher/Cacher la physique
10 : Liste des animations disponibles sur ce model
11 : Assignation d’un model/texture à cet acteur
12 : Propriétés de l’élément sélectionné
13 : Propriétés racines de l’acteur( voir ci dessous )
Un click droit permet d’ajout des états ou des actions
14 : Etat de l’acteur
15 : Action de l’acteur
Un click fait apparaître le code de la condition nécessaire au déclenchement de cette action
16 : Sélection d’un effet sur l’action
Un click fait apparaître le code de cet effet.
Le temps permet de spécifier à quel moment de l’animation l’effet doit être joué
17 : Sélection d’une action référence :
Il s’agit d’une action qui peut couper cette action si sa condition est vraie
18 : Vu du code C# compilé par le Build qui définit les effets et conditions d’un acteur.
- CanBePut : l’acteur peut il être posé via l’éditeur de scènes ?
- Category de l’acteur pour faciliter sa recherche et le precache de ces assets ( tous les bonus sont précachés via un Actor.PrecacheActorsInCategory("Bonus") par exemple )
- Collisiongroup : filtre sur les collisions
- ControllerType : type de mouvement sur un acteur dirigé par le joueur ; aucun effet sinon
- DefaultRotation : Rotation par défaut de cet acteur.
- DefaultState : etat par defaut de l’acteur ( !!! ne pas oublier de le définir )
- GravityCoeff : Coefficient de gravité de cet acteur
- Life : vie de l’acteur
- ModelName : model 3d de l’acteur
- Name : identifiant de l’acteur
- PhysicsCenter : position du centre de la primitive physique de l’acteur
- PhysicsConserveEnergy : conservation de l’energie en cas de choc ?
- PhysicsElasticity : rebond de l’acteur
- PhysicsMasse : poids de l’acteur
- PhysicsMobile : l’acteur peut il se déplacer ?
- PhysicsSize : taille de la primitive physique
- PointLightActive : Attacher une lumière à cet acteur ?
- Type : type de primitive de collision de l’acteur
- UpdateClass : nom de la classe updater C# permettant l’éxécution de code à chaque frame pour cet acteur ; surtout utilisé pour l’IA
- UpdateOutOfFrustum : cet acteur doit il être mis à jour si il est en dehors de la caméra ?
Propriétés d’un état:
- AnimationName : nom de l’animation jouée dans cet état
- Hidden : true : l’acteur est invisible dans cet état
- MoveSPeed : vitesse de déplacement dans cet état
- Name : nom de l’état
- ParticleId : système de particules joué lorsque l’acteur est dans cet état
- PlaySpeed : vitesse de l’animation
Propriétés d’une action :
- AnimationName : nom de l’animation lors de cette action
- BlockMove : Cette action stoppe elle les mouvements ?
- IsRoot : est ce une action racine ? c’est à dire est ce une action qui est vérifié à chaque fois ou une action en référence d’une autre action uniquement ?
- Name : nom de l’action
- NotBlocableAction : est ce une action qui n’empêche pas de tester et d’effectuer les autres actions meme lorsque celle ci est déclenchée ? Dans ce cas cette action n’a pas d’animation
- PlaySpeed : vitesse de l’animation
- Priority : priorité de test de l’action : par exemple la mort est testée en premier et ainsi si l’acteur est mort les autres actions ne seront pas testées lors de cette frame.