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

Framework .NET Discussion :

Bonnes pratiques: fichier de projet et plugins


Sujet :

Framework .NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 53
    Points : 36
    Points
    36
    Par défaut Bonnes pratiques: fichier de projet et plugins
    Bonjour !
    Sous ce titre un peu vague, se cache une question de conception. Je travaille sous VB.Net 2008 et j'essaye de créer mon moteur de jeu 3D sous OpenGL (sans prétentions hein, juste un prétexte à l'apprentissage). Ca m'a amené à essayer de développer un éditeur visuel afin de construire des jeux/maps sans avoir à les coder et surtout sans avoir à recompiler le moteur pour chaque jeu (un peu comme UDK ou Unity). Et je me pose beaucoup de questions quand à la bonne architecture à adopter.

    Dans mon idée, le moteur de jeu est l'application finale (appli console qui lance une fenêtre OpenGL), et elle serait compilée une fois pour toutes. Chaque jeu serait fourni au moteur sous forme de DLL. Cette dernière contiendrait une méthode à implémenter obligatoirement afin de l'initialiser dans le moteur (chargement des niveaux / meshes / scripts / ressources ....).
    Chaque jeu serait en quelque sorte comme un plugin "consommable" par le moteur.

    Pourquoi utiliser une dll pour stocker mes maps et ressources et pas simplement de simples fichiers XML ou la sérialisation binaire me direz-vous ?
    Jusqu'à maintenant, je procédais ainsi en stockant chaque mesh dans un fichier XML. Chaque map/level était aussi dans un fichier XML.
    Ce système me permet de décrire simplement mes objets 3D et la scène les contenant.
    Pourtant j'imagine que ce système aura ses limites. En effet j'aurais surement besoin d'attacher des scripts/comportements à mes objets (chaque jeu ayant des comportements différents).Le format XML ou binaire ne me parait pas trop adapté, étant surtout "descriptif".

    Avec une DLL, j'imagine qu'il serait beaucoup plus simple de décrire une scène ou définir des comportements scriptés sous forme de code (VB/C#) grâce à une API perso fournie par le moteur, plutôt qu'en XML.

    Autre avantage que j'y vois ... avec une DLL, je pourrais y stocker/compiler toutes mes ressources (meshes / textures / fichiers audio ...). Non seulement ça permet de ne pas avoir 50000 fichiers pour créer un jeu et on évite d'éventuels problèmes d'architecture de dossiers, mais j'imagine aussi qu'il est bien plus rapide de charger une DLL que de parser 50000 fichiers XML !

    Désolé pour la longueur de ce post, mais étant simple amateur, j'ai un peu de mal à imaginer la structure d'un tel projet et surtout, quelle technologies/principes utiliser avec .Net. J'aimerais beaucoup avoir votre avis sur mon idée, et aussi savoir comment vous procéderiez. Mon idée est-elle bonne ou pas du tout ?

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Ça va dépendre pas mal du nombre de fichiers "externes" à gérer.
    Tu nous dis 50000, je crois que c'est un peu exagéré, non ?

    Et ne serait-ce que pour une question pratique : il faudrait trouver une solution automatique pour incorporer tous ces fichiers externes en tant que ressource.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 53
    Points : 36
    Points
    36
    Par défaut
    Bonjour Skalp et merci de t'attarder sur mon problème.
    Evidemment, je n'aurais pas 50000 fichiers à charger, mais il se peut qu'il y en ai quelques uns tout de même (meshes, scripts, textures ...).

    Pour ce qui est d'inclure automatiquement ces ressources dans ma DLL, ce serait le boulot de l'application "éditeur".

    Si j'ai pensé à ce système, ce n'était pas à l'origine pour améliorer la praticité, ni compiler mes ressources, mais bien pour pouvoir créer créer du code qui me permettra de reconstruire ma scène et définir des comportements pour mes objets.

    Je me convainc de plus en plus que l'idée à du potentiel, et je me lance dans l'étude de CodeDom et des applis modulables par plugins.

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Citation Envoyé par Norris Voir le message
    Je me convainc de plus en plus que l'idée à du potentiel, et je me lance dans l'étude de CodeDom et des applis modulables par plugins.
    Attention toutefois au temps de chargement de ces DLL.
    Plus il y aura de choses embarquées dans la DLL, plus elle mettra du temps à se charger initialement... Mais peut-être est-ce un mal pour un bien : elles seront probablement accessibles plus rapidement pendant l'exécution.
    A confirmer...

Discussions similaires

  1. Projets informatique : les bonnes pratiques
    Par elitost dans le forum Débats sur le développement - Le Best Of
    Réponses: 345
    Dernier message: 18/10/2011, 16h08
  2. [Bonnes pratiques] Organisation du projet
    Par Sinclair dans le forum Django
    Réponses: 2
    Dernier message: 21/07/2009, 00h51
  3. Bonne pratique pour inclure source de projet open source ?
    Par joseph_p dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 05/07/2007, 21h51
  4. [PLUGIN]copie direct des fichiers du projet par FTP
    Par wizzer dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 20/04/2006, 15h40
  5. Bonne pratique, configuration de projets
    Par gailuris dans le forum EDI et Outils pour Java
    Réponses: 7
    Dernier message: 15/12/2005, 10h57

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