Jeu Directx 11

Jeu Directx 11 - C++ - Programmation

Marsh Posté le 26-06-2011 à 22:05:51    

Bonjour à tous,
 
je me lance actuellement dans l'api directx 11 avec: "Beginning DirectX11 Game programming" de allen Sherrod
 
et je souhaitais par la suite faire mon propre jeu à la fin de ce livre, de A à Z j'entend.
 
Mais je me retrouve déjà confronté à des tas de soucis, je souhaite faire l'idée de base pour l'architecture du moteur et j'entend parler de flowgraph et de tas de fichiers utilisé dans les différents SDK que j'ai pu voir.
 
Quelqu'un aurait il des information plus précises que ce que j'ai pu trouver sur l'architecture et les techniques modernes dans le domaine du Codage des JV?

Reply

Marsh Posté le 26-06-2011 à 22:05:51   

Reply

Marsh Posté le 27-06-2011 à 12:29:04    

tout dépend de l'envergure de ton projet, de la réutilisabilité que tu veux pour ton moteur. Si tu te compares directement à un moteur clé en main quand tu dis SDK (genre ceux de Crytek ou Epic), ca va être bien plus complexe que ce dont tu as besoin si tu veux te faire un petit jeu de tir en directX 11 sans te poser de question.
La complexification vient des besoins des différents corps de métiers qui vont travailler avec le SDK (un graphiste ne va pas mettre les mains dans le code, même s'il veut ajouter un shader par exemple) ou du support du multiplatform (qui exige parfois qu'on mette les données au bon format pour la console ou la machine qu'on vise)
 
Il peut y avoir une multitude de raison pour rajouter de la complexité qui te passeront au dessus de la tête (faire de la compression d'animations, des optimisations de vertex buffers, ...) pendant que tu feras ton projet et c'est normal : si tu t'y attaques en solitaire, tu t'embarque dans un travail de titan, tu ne verras jamais le bout de ton jeu.
 
Pour l'instant, gère tes fichiers "natifs" en entrée (genre png pour les textures, fbx ou dae pour les modèles, etc ...) et ne te pose pas trop de souci sur les format des données.
 
Ensuite, pour ce qui est de l'architecture interne de ton moteur, tu vas sans doute te retrouver avec quelque chose de standard actuellement : un système d'entités qui aggrège des composants, un graphe de scène, des interactions entre les deux à gérer au mieux, un thread dédié au rendu alors qu'un autre thread est dédié au gameplay, etc ...


---------------
last.fm
Reply

Marsh Posté le 27-06-2011 à 12:48:01    

pour la gestion des fichiers je vais rester au DDS et obj pour l'instant.
 
L'idéal aurais pour moi été d'apprendre à faire un SDK avec toute la complexité que cela impose, mais si je comprend bien, tu trouve ça plus raisonnable de commencer avec un programme en dur, avec seul les ressources (Modeles, textures, ...) en externe?
 
je ne vise pas encore de multi plateforme, quand je saurais faire quelque chose de correcte sur PC, je verrais peu être pour le porter sous XNA histoire de simplifier et si c'est concluant je passerais à l'OpenGL histoire de faire vraiment du crossplateforme et pas uniquement du Crosoft inside.

Reply

Marsh Posté le 27-06-2011 à 13:08:31    

Rien ne t'empêche d'avoir un niveau d'abstraction tel que tu puisses utiliser DirectX sur windows et une autre API sur une autre plateforme avec le reste du moteur à l'identique. Utiliser une bibliothèque cross-platform elle-même n'est pas la seule solution.
 
Par contre, XNA, c'est un peu différent, vu que tu seras contraint de faire du C#, si tu veux en faire ... Et si je ne me trompe pas, c'est la plateforme XNA qui définit quels types de fichiers tu peux utiliser (bon,pour les dds, y'aura certainement pas de souci, par contre, pour tes .obj, tu risques d'être contraint de les réexporter)
 
Si ton but, c'est de te faire embaucher, il vaut mieux un jeu présentable qu'une chaine d'outil complexe où rien n'est utilisable. Si le but, c'est de découvrir, alors tu vas pouvoir te casser les dents autant que tu veux, mais sois prévenu que même pour une vingtaine de programmeurs moteur, le développement d'un moteur complet avec toute la chaine d'outils autour va se compter en années.


---------------
last.fm
Reply

Marsh Posté le 27-06-2011 à 14:20:37    

d'accord, je vais m'orienter alors sur quelque chose de plus succin.
 
Je pensais faire quelque chose en réseau, histoire d'éliminer la variable IA (qui me fais peur rien qu'a la vue du sommaire des bouquin dit d'initiation).
 
Mon but est bel et bien de me faire embaucher, la découverte est également dans mes objectif, mais cette idée du SDK m'était venue pour avoir quelque chose de vraiment solide à présenter. Même si en ce moment c'est plutôt porteur, les places pour n'importe quel emploi restent cher.
 
le temps n'est pas trop un problème, les moyens techniques eux, sont tout autres ...
 
Donc je vais continuer sur DirectX11, implanter OpenAL pour le son avec des fichiers OGG (histoire de ne pas se trimbaler des waves lourdingues), et si je le peu un moteur physique digne de ce nom (PhysX ou Havok,les 2 sdk étant gratuits).  
 
Une fois ma base effectuée (j'aurais bien un an de boulot déjà, mais tant que je fini mes études le temps sera pas trop un problème), je tenterais d'en modifier les formats de fichier, d'optimiser le code et pourquoi pas de partager le projet avec d'autre dev d'une communauté ...
 
merci de tout ces renseignements, si toute fois tu pense à autre chose, n'hésite pas à m'en faire part

Reply

Marsh Posté le 27-06-2011 à 14:50:59    

si je peux me permettre, évite PhysX ... Si jamais tu veux faire une présentation sur des cartes non-nVidia ... nVidia casse volontairementles perfs en software et c'est plutôt moche.
Tu as aussi l'alternative Bullet (qui te permet de vendre un soft sans rien payer à terme, contrairement à Havok)
 
Aussi ... Suivant le type de poste que tu vises, tu pourras développer quelques portions de ton moteur en particulier. Si tu veux faire du code moteur, ce sera pas mal de bien mettre en avant tes recherches sur l'efficacité de ton système de scene graph ou d'acteurs, etc ... si jamais tu vises un poste de codeur graphique, essaye de faire plusieurs rendus différents et comprends leurs avantages et défauts (differed rendering et consorts ...)


---------------
last.fm
Reply

Marsh Posté le 27-06-2011 à 15:00:07    

ok, donc physx ciao ...
 
Je suis en train de regarder le site officiel de Bullet, c'est vrai que c'est pas mal, niveau rendu on as la même chose que PhysX accéléré par le GPU. Je garde ça de coté, mais c'est assez intéressant je dois dire.
 
C'est vrai que pour ce qui est du software avec Nvidia, je me suis toujours demandé pourquoi physx n'avais pas le niveau de Havok en CPU. Si il était si révolutionnaire pourquoi aurait on moins bien pour système égal ...
 
je ne sais pas encore vers quel aspect je veux me diriger, c'est pour ça que je cherche à faire un peu de tout, histoire de me trouver et de savoir dans quoi approfondir.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed