08.02.2013
Après un petit retard d'une semaine dû à de la négligence, j'ai achevé le Cahier de Charges (CdC) du projet Tails\ Dreamer, plus connu sous l'appellation de Tails Chronicles : Synthetic Eternity, mais cette appellation est aujourd'hui erroné, vu que le projet concerne non pas une application mais deux :
- Le jeu TC1 lui-même.
- l'outil TC Construction Set (TCSET), réservé au level-designer et scénaristes.
Tout est décrit de manière précise dans le CdC. Vous l'aurez compris, le projet aura une forme d'avancement beaucoup plus correcte d'un point de vue humain, mais beaucoup mieux réfléchie. Il faut dire que le premier prototype du jeu s'attardait davantage sur la création d'outils (framework graphique, structure...) que sur le jeu lui-même. Ce ne sera guère plus le cas ici vu l'utilisation du Framework Qt et du C++, dûement maîtrisé. Je suis capable de réaliser indépendamment tout les points du CdC, la complication proviendra de l'organisation du projet. Beaucoup de modifications auront lieu dessus.
Pour ce qui est de votre participation au sein du projet, elle ne sera pas remise en cause par l'aboutissement technique de celui-ci, que je juge primordiale
Certains termes pourront paraître un peu chiandés voir totalement obscures, mais il s'agit d'un document à teneur professionnelle, sembable à ce qu'on peut trouver dans l'industrie, vous voilà avertis.
Comme toujours, toute question relative au journal et/ou au projet seront posé dans le topic de commentaires proposé en lien.
----------------------------------------------------------------------------------------------------------------------------------------------------Tails Dreamer Project
Concernant le projet :Titre du projet : Tails\Dreamer Project 2013-2014
Type : Application / Jeux vidéo 2D
Titre de l'application :
1-Tails Chronicles I : Synthetic Eternity (TC1:SE, TC1)
2-TC Construction set (TCSET)
Descriptif de l'application :
1.Tails Chronicles I : Synthetic Eternity Il s'agit d'un jeux vidéo de plate-forme/RPG se déroulant dans le monde de Sonic. On y dirigera 6 personnages, dont Tails, Sonic, Knuckles, Blaze, Cream et Amy. Ceux-ci pourront se déplacer dans un monde ouvert, mais qui pourront déboucher sur des niveaux d'actions. Un menu permettra de retenter à l'envie les niveaux d'actions, certains avec des défis plus élevés.
Chaque niveaux terminé donnera accès à un emblème végétal (symbole de Cosmo). Lorsque le joueur finira le jeu, il aura accès à une cinématique. Il aura accès à une autre cinématique à l'optention de tous les emblèmes.
2.Tails Chronicles Construction SetIl s'agit d'un outil facilitant le développement de TC. Il permettra de créer des maps de niveaux d'action, de modifier la map principale, et de créer des cinématiques. Sa principale fonction sera de générer au bon endroits des fichiers .niv, .map, et .anim, qui seront des fichiers de données XML, lue dans le jeu.
Langage, bibliothèque graphique :Ce projet sera écrit en C++ orienté objet, en utilisant de préférence la puissance de la bibliothèque standard, auquel on ajoutera des modules de la bibliothèque Boost, quasi-obligatoire pour l'utilisation d'allocation objets réellement sécurisées.
La bibliothèque graphique utilisé proviendra du Framework Qt, qui sera utilisé pour l'interface de jeu, des menus, et de l'accès au base de données.
Le projet utilisera également du langage XML pour ces fichiers de données (ceci est géré par un des modules de Qt).
Matériel, logiciel :Ce projet pourra être construit avec le logiciel libre Code::Blocks, ou plus facilement sur l'IDE QtCreator. Cela lui donnera l'accès à QtDesigner en cas de besoin. Il sera fabriqué et testé pour pouvoir fonctionner sur un poste d'ordinateur aux configurations suivantes :
Écran : 800x600 minimum.
Carte graphique : NVidia GeForce 8500 GT, plus ou équivalent.
Processeur : Pentium 4 HT, 3.0 GHz
RAM : 1.5 Go DDR2
OS : Windows XP (SP2)
Publication :
Les projets seront posté sur mediafire, ou sur un quelconque serveur de fichier (FTP ou non), permettant de le stocker. Le projet sera publié sous forme de lien dans sa version finale sur les sites et forums suivants :
Tails-Dreamer
Mobiusland RPG
Sonic/RPG
Mubus RPG
JeuxVidéo.com
Planète-Sonic
All over Mobius v.3
Mobius Generation
Le Site du Zéro
Sa3devFR
Sonic Stadium
Facebook
Il existera également une page de blogs ou forum pas trop gênante (ou une section dans "Fan-Game" sur Pso) permettant l'accès à la ressource en tout temps, pour toute personne en cas de problème techniques liés au téléchargement (centralisation des ressources).
Fonctionnalité :1.Tails Chronicles I : Synthetic Eternity
L’application devrait proposer le contrôle de 6 personnages au travers de divers environnements, des niveaux, orientés plate-forme (vue de côté) : les accès à ces niveaux seraient distribués sur des maps plus libre, en openworld (vue de haut ou isométrique). Le jeu serait entrecoupé de cinématique de tout genre. On pourrait réutiliser des niveaux avec de différents objectifs (« mode Trial ») en opposition à la simple poursuite de l’histoire (« mode Adventure »).
Les fichiers de niveaux, de map et de cinématique proviendraient de fichier .XML écrit selon un protocole de base de donnée unique au jeu.
2.Tails Chronicles Construction SetL’application devrait proposer 3 choix :
1. Création d’une partie de map openworld :
Il faudrait préciser la taille approximative de la zone. On pourrait ensuite placer des tiles sur une map herbeuse par défaut. Comme des bâtiments, ou bien des portail lié à des niveaux. Les map seraient utilisable par n’importe quel personnage en théorie.
2. Création de niveaux d’action :
Les tailles de niveaux serait une case prédéfinie, mais il faudrait préciser ces murs/limites (tiles noir). On pourrait préciser le fond de ciel (éclairage), la météo (pluie, beau temps ?), et quel personnage est sensé le parcourir.
3. Création de cinématique :
Il faudrait entrer des images dans des cases, suivit ou non de commentaires sensés s’afficher durant ces cinématiques.
Liste des prérequis/connaissances requises :1. Gestion des tileset
2. Gestion de mémoires des gros projets
3. Utilisation de Qt + Librairie XML
4. Gestion des collisions personnage/terrain
5. Gestion des sauts
Document de conception1.Objets :Le programme utilisera le C++ orienté objet, tel que spécifié plus avant : Voici donc les objets principaux qui seront modélisés et utiliser dans le projet. Ils sont tous précédé du préfixe TD_, se rapportant directement au forum d'origine du projet :
- TD_Environment : Il s'agira de la fenêtre elle-même, l'environnement de jeu, qui héritera directement de la classe QWidget de Qt. Elle aura un certain nombre d'attribut, sa principale fonction étant d'afficher les niveaux, les menus etc.
- TD_Character : Il s'agira d'une entitée contrôlable, qui aura divers attributs relatifs à un personnage de jeux vidéo 2D : Nombre de vies, nombre d'anneau, poids total, position actuel, Sprite actuel. Un Personnage sera enfiché dans une CollisionBox, afin de pouvoir réagir à l'environnement de jeu. Il contiendra un menu contextuel.
- TD_Block : Element du décor, de type tiles, utilisé pour le tile-mapping.
- TD_Object : Classe mère des objets interactif dans le jeu.
- TD_Container : Classe fille, spécialisation de TD_Object servant à contenir d'autres objets d'inventaires. Il contiendra un menu contextuel.
- TD_Gate : Classe fille, spécialisation de TD_Object servant de point d'accès, "portail" vers une autre map (quelque soit son état).
2. Modes de jeuCes objets seront utilisables dans les 2 modes de map, le mode Niveau fermé, et le mode d'exploration, qui se retrouveront sous la forme de 2 états, TD_MAPSTATE_LEVEL et TD_MAPSTATE_WORLD, qui influencera la façon dont les objets sont affichés à l'écran, entre autres.
Les point d'accès permettront de passer d'un niveau à l'autre quelques soit la map d'entrée et celle de sortie.
3. Tables de Sprites Les sprites seront affichés sur les personnages en fonction de grand tableau de sprites affichée par petites sélection. Il faudra donc définir le tableau de sprites à afficher pour chaque action, mais aussi le frame de début et celui de fin.
4. Tables de CollisionIl s'agira de répertorier les points de collisions de chaque objet de la map pour les signaler à l'utilisateur, afin de pouvoir rendre ceux-ci réactifs aux contact.
Modèle de donnée1.Niveau Les niveaux seront classés selon un tableau de chiffres au format XML (fichier .map). Les liaisons des portes seront aussi inscrites dans des fichier (fichier .lnk). Il n'a pas encore été décidé si le comportement des tiles dépenderait d'un fichier indépendant ou d'une déclaration dans le fichier .map.
2.Cinématique
Le format XML se prêtera aussi à l'utilisation de cinématique : il s'agira d'un descriptif évenementiel (par ex : Tails - Move(10,10)) qui permettrait de créer des cinématique modulaire. Il s'agit de la solution la plus simple au niveau du code.
Charte Graphique
Les sprites proviendront tous de sources internet (les sprites originaux ripper de Sonic Advance sont particulièrement recherché): en ce qui concerne les GUI, Qt pourra charger les fenêtres et widgets en fonction de l'OS sur lequel il tourne : il s'agit là d'une fonctionnalité offerte par le Framework.
Procédure de test Après chaque ajout de fonctionnalités, un test sera effectué sur son fonctionnement correcte : En cas de problème, le bug sera corrigé, puis répertorié dans une base d'information afin d'économiser du temps lors de la rencontre d'un problème similaire.
Il s'agit là de la procédure de test technique : pour les sondages sur l'apparence graphique ou l'expérience de jeu (prise en main) les test pourraient être effectué sur tiers personne afin de garder un jeu équilibré.
Planification initiale
Prendre en compte qu'il s'agit d'une planification initiale, qui subira probablement des réajustement au long du projet.
Il s'agit du sommaire des activités du projet.
- Février : Conception du projet, recherche et rassemblement des outils (renseignements supplémentaires éventuel).
- 20 Février : Début création d'environnement / fenêtre, interaction XML. / Session de test.
- Mars : Modélisation Personnage / TD_Objets. / Session de test.
- Avril : Interaction personnage-environnement / physique du jeu. / Session de test.
- Mai : Modélisation d'interfaces : menu contextuelle, inventaire, menu conteneur. / Session de test.
- Juin : Liaison inter-environnements via "portails" (TD_Gate). / Session de test.
- Juillet : Conception des méthodes évenementielles (cinématiques). / Session de test.
- Août : Conception d'interface TCS (Tails Construction Set) / Test création de map.
- Septembre : Réalisation de niveau par défaut / Session de test gameplay.
Ce topic restera la référence en terme de rassemblement des journaux de travaux, je le mettrait à jour dans la mesure du possible.