IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

[Moteur3D] Diverses questions


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Moteur3D] Diverses questions
    Hello,
    je suis actuellement en deuxième année de prépa intégrée et souhaite m'orienter dans le développement d'application 3D. J'ai déjà réalisé quelque jeu basique tel que: Morpion, Tetris, Pendu. Bien que ce n'est pas très évolué, je pense que le développement de ces projets m'a permit de me forger une expérience dans le développement de projet en général.

    Souhaitant donc m'orienter dans le développement d'application 3D, je me dis qu'il serait peut-être temps de commencer à me faire une sorte de portefolio d'application 3D. J'avais donc pensé à developper un début de moteur 3D pour étendre mes connaissances en matière d'algorithmes utilisés dans la 3D. J'ai donc commencé à y réfléchir entre mes cours, et plusieurs questions (très diverses) sont apparus: j'espère que la diversités de ces questions ne posera pas de problème dans ce topic.


    Note:
    -> Gardez bien à l'esprit que je souhaite réaliser ce projet non pas dans le but de concurrencer Ogre (ce qui serait de toute façon impossible seul et sans expérience), mais dans le but d'apprendre le plus possible sur le développement d'application 3D et sur le développement en général.
    -> Mon langage de prédilection est le C++, mais je connais également (beaucoup moins) le Java et le C#.
    -> Si je fais ce projet, c'est principalement pour me forger une expérience, et ainsi avoir de quoi mettre sur mon CV.


    1. L'utilisation d'UML
    J'ai pour habitude d'utiliser les diagrammes de classe d'UML pour modéliser un minimum mes projets. Seulement, je me demande s'il est temps d'approfondir mes connaissances dans ce domaine avant de commencer à concevoir quoi que ce soit. Quel est votre avis sur l'utilisation d'UML dans un tel projet ? Est-elle nécéssaire, m'apportera t-elle un plus lorsque je serai en recherche de stage ou de job ?


    2. Apprendre UML
    Si votre réponse à la question 1 va dans le sens d'apprenre UML, avez-vous des livres à me conseiller ou des approches ? J'ai pu remarqué qu'il existait deux approches pour apprendre UML: l'approche classique, ou on apprend l'histoire d'UML, ce qu'est UML, la syntaxe etc ... puis des exemples. La deuxième approche étant une approche "par la pratique" ou on a un projet dès le début et où on apprend UML au fur et à mesure.


    3. Gestion des ressources
    J'ai dans un premier temps essayé de m'imaginer comment serait la gestion des ressources, et je dois avouer (c'est peut-être stupide) que je me suis confronté à un problème. Imaginons que je possède une classe MeshManager qui a pour rôle de gérer le chargement des Meshs. Imaginons le code suivant:

    Mesh* mesh = MeshManager::GetMesh("plante.obj"); // Récupération du Mesh plante.obj
    Mesh* mesh2 = MeshManager::GetMesh("plante.obj"); // Récupération du Mesh plante.obj

    Imaginons maintenant que dans ma scène, j'ai plusieurs plantes (donc deux ici) et que la première vient à être modifiée: soucis car la deuxième, vu que c'est un pointeur, elle va également voir son mesh modifié. J'avais pensé à une autre approche du MeshManager: lorsque je fais:

    Mesh* mesh = MeshManager::GetMesh("plante.obj") // Récupération du Mesh plante.obj

    Et bien la méthode chargerait d'abord le Mesh s'il n'existe pas (création d'un objet Mesh dans le gestionnaire de Mesh) puis lorsque la valeur de retour serait plutôt une copie du Mesh. Donc pas besoin de recharger le Mesh (parser le fichier obj) mais plutôt de copier seulement les tableaux de sommets. Est-ce une bonne approche ou est-elle coûteuse en ressource ?


    4. Utilisation du C++
    Je souhaitais dans un premier temps utiliser le C++ pour réaliser ce projet car il est mon langage de prédilection. Je n'ai jamais développé de "gros" (je ne pense pas qu'on peut qualifier un Tetris de gros projet) projet dans un autre langage sauf en Ruby. Bref, je me suis demandé s'il ne serait pas plus judicieux d'aborder un autre langage qui serait plus adapté pour la conception objet ? Enfin, je me suis dit que me destinant à être ingénieur, le choix du langage n'influencerait pas, étant donné que je dois être capable de m'adapter rapidement à la technologie qui me sera proposée. Quel est votre avis sur ce point ?


    5. Fonctionnalité de base
    Comme je l'ai dis dans le point 3, j'ai déjà commencé à réfléchir au projet, et j'ai donc dressé une liste des fonctionnalités de base (je me suis renseigné sur le sujet) que j'aimerai intégrer:
    - Chargement de quelque format de fichier: obj, 3ds, md2, md5.
    - Système de gestion de ressource robuste ayant une architecture permettant facilement l'ajout d'un type de texture.
    - Gestion des Shaders.
    - Éclairage dynamiques grâce à l'utilisation des Shaders.
    - Gestion de terrain de type HeightField.
    - Proposer plusieurs type de Caméra.
    - Implanter divers algorithmes de partitionnement de l'espace (notamment avec les octrees (par certains par contre ici))
    - Réaliser divers effets avec les Shaders, tel que l'effet cartoon ou autre, juste pour avoir quelques effets permettant de montrer divers algorithmes.
    Que pensez-vous de ces fonctionnalités ? Est-ce que j'ai oublié le plus important ?


    6. Un projet réalisé avec le moteur
    Ce n'est pas dans mes priorités, mais j'avais pensé à utiliser ce moteur une fois termine (je compte le terminer, même si cela me prend quatre années) dans un projet relativement petit: une sorte de FPS ou RTS basique. Rien de bien compliqué, juste un projet basique. Pensez-vous que le choix d'un type de jeu doit influencer l'architecture d'un moteur 3D ?


    Je pense avoir fais le tour de mes interrogations. Je ne sais pas s'il est nécessaire de le souligner, mais j'utiliserai OpenGL comme API. J'utiliserai également Boost et la STL. Quel est votre avis sur la faisabilité d'un tel projet ?

    Je vous remercie d'avance de m'avoir lu, et espère que le mélange de ces questions ne fermera pas mon topic. Bonne journée.

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 393
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 393
    Points : 20 496
    Points
    20 496
    Par défaut
    Bonjour
    Citation Envoyé par calintz.sam Voir le message
    Souhaitant donc m'orienter dans le développement d'application 3D, je me dis qu'il serait peut-être temps de commencer à me faire une sorte de portefolio d'application 3D. J'avais donc pensé à developper un début de moteur 3D pour étendre mes connaissances en matière d'algorithmes utilisés dans la 3D. J'ai donc commencé à y réfléchir entre mes cours, et plusieurs questions (très diverses) sont apparus: j'espère que la diversités de ces questions ne posera pas de problème dans ce topic.
    Ok mais à quoi va te servir ce portfolio ? Est-ce que tu veux être recruté par une société de jeux vidéos ?
    Tu veux pas plutot faire un logiciel de simulation de fluide par exemple de simulation physique?
    Je n'ai pas un super niveau élevé en maths si j'avais un niveau de prépas c'est ce que je ferais plutot qu'un éniême moteur 3d
    Citation Envoyé par calintz.sam Voir le message
    Pensez-vous que le choix d'un type de jeu doit influencer l'architecture d'un moteur 3D ?
    Oui et non parce que dans un "moteur 3d" ( tout dépend de ce que l'on entend par là ) il y a des parties "communes" ; c.ad. que pour tel ou tel jeu la gestion de l'affichage ,des ressources ( fichiers de données), la gestion du son sera la même ( c'est le refactoring mais je ne sais pas si c'est le bon terme à employer )
    Mais si tu as déjà fait un Tetris et autres jeux tu sais que le style et type de jeu conditionne l'architecture de développement

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    L'idée est intéressante, je n'y avais pas pensé.
    Il est vrai que je préférerai travailler sur des simulations physiques que sur un éventuel jeu-vidéo. (Que ce soit comme projet amateur ou bien comme projet professionnel).

    Je vais me renseigner sur la simulation des fluides dans un premier temps. Merci encore pour ta réponse qui m'aura permit de m'orienter dans un domaine qui me semble plus intéressant.

Discussions similaires

  1. [Inno setup/IsTool]Diverses questions
    Par marsup54 dans le forum Installation, Déploiement et Sécurité
    Réponses: 14
    Dernier message: 18/07/2006, 10h11
  2. [HTML] Diverses questions sur le HTML
    Par Ekin0X dans le forum Balisage (X)HTML et validation W3C
    Réponses: 15
    Dernier message: 29/06/2006, 10h46
  3. Réponses: 18
    Dernier message: 04/04/2006, 14h31
  4. C++ diverses questions concernant directX
    Par TERRIBLE dans le forum DirectX
    Réponses: 5
    Dernier message: 05/10/2005, 23h09
  5. Diverse question ...
    Par Dims dans le forum Développement
    Réponses: 11
    Dernier message: 13/01/2004, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo