Historique des modifications - Message

Message #60

Sujet: Ma Présentation (DeusXL)


Type Date Auteur Contenu
Dernière modification 30-09-2006 15:04:58 DeusXL
Non tu ne peux pas te permettre de copier la dll en réalité.
Déjà principalement parce que le framework .NET ne le permet pas lui même, et surtout car en créant le wrapper j'ai respecté au maximum les conventions de nommage de .NET.
C'est à dire :
  • En C++, on a une interface bien nommée ISceneNode. Tu peux hériter de cette interface, ou la manipuler, aucun problème.
  • En C# sur le wrapper officiel et pour des raisons de commodités, l'équivalent de celle-ci a été nommée ISceneNode mais ce n'est pas une interface ! C'est même une classe scellée, donc en aucun cas le nom "ISceneNode" n'est justifié.
  • Sur mon wrapper, la classe qui manipule les scene nodes se nomme donc SceneNode et par contre l'interface dont on hérite pour faire une scene node personnalisée (custom scene node) s'appelle bien "ISceneNode" mais ce sont deux choses distinctes (qui s'utilisent de la même manière).


Concrètement ça revient à remplacer tous tes "ISceneNode" par des "SceneNode", tous tes "IGUIEnvironment" par des "GUIENvironment", "IVideoDriver" par "VideoDriver" ...

Comme je n'ai jamais encore répondu à la question sur un forum français, je vais me répéter ici :
Passer du wrapper officiel à mon wrapper c'est environ deux à trois heures pour un code de 10000 lignes (l'un de mes jeux).
L'avantage du wrapper officiel est son support (encore que ce n'est plus trop vrai maintenant, et encore moins en ce qui concerne le français), le fait qu'il soit officiel (vous allez trouvez ça étrange mais je dirais : "que se passerait-il si demain je m'arrêtais de développer le wrapper ?", il faut être objectif) et c'est à peu près tout.
L'avantage de mon wrapper c'est qu'il est largement plus complet (on passe de 75% à plus de 95%), il contient des fonctionnalités qui ne seront jamais disponibles sur le wrapper officiel (comme la possibilité de créer des Custom Scene Nodes directement dans le code de ton appli en n'importe quel language .NET (sans modifier le coeur du moteur), pour te donner un exemple Voici la traduction de la GrassPatchSceneNode de bitplane, la vitesse des nouveautés (suffit de voir le change log), l'architecture globale qui le rendent plus performant et plus précis (j'ai fait des tonnes de tests de montée en puissance, des essais pour comparer un code natif et un code managed et être sûr qu'on n'y perdait pas trop), et surtout, surtout, surtout plus que tout, le but premier du wrapper il fonctionne sous Linux, MacOS... n'importe où Irrlicht passe, et ce n'est pas un support "vite-fait" puisqu'il est même intégralement codé sur Ubuntu Dapper Drake / Mono 1.17, le passage sur Windows n'étant fait que quand il faut recompiler dessus le wrapper natif.

Voilà maintenant c'est dit c'est dit, il fallait bien que je décrive quelque part en français smile
Création du message 30-09-2006 15:03:58 DeusXL
Non tu ne peux pas te permettre de copier la dll en réalité.
Déjà principalement parce que le framework .NET ne le permet pas lui même, et surtout car en créant le wrapper j'ai respecté au maximum les conventions de nommage de .NET.
C'est à dire :
  • En C++, on a une interface bien nommée ISceneNode. Tu peux hériter de cette interface, ou la manipuler, aucun problème.
  • En C# sur le wrapper officiel et pour des raisons de commodités, l'équivalent de celle-ci a été nommée ISceneNode mais ce n'est pas une interface ! C'est même une classe scellée, donc en aucun cas le nom "ISceneNode" n'est justifié.
  • Sur mon wrapper, la classe qui manipule les scene nodes se nomme donc SceneNode et par contre l'interface dont on hérite pour faire une scene node personnalisée (custom scene node) s'appelle bien "ISceneNode" mais ce sont deux choses distinctes (qui s'utilisent de la même manière).


Concrètement ça revient à remplacer tous tes "ISceneNode" par des "SceneNode", tous tes "IGUIEnvironment" par des "GUIENvironment", "IVideoDriver" par "VideoDriver" ...

Comme je n'ai jamais encore répondu à la question sur un forum français, je vais me répéter ici :
Passer du wrapper officiel à mon wrapper c'est environ deux à trois heures pour un code de 10000 lignes (l'un de mes jeux).
L'avantage du wrapper officiel est son support (encore que ce n'est plus trop vrai maintenant, et encore moins en ce qui concerne le français), le fait qu'il soit officiel (vous allez trouvez ça étrange mais je dirais : "que se passerait-il si demain je m'arrêtais de développer le wrapper ?", il faut être objectif) et c'est à peu près tout.
L'avantage de mon wrapper c'est qu'il est largement plus complet (on passe de 75% à plus de 95%), il contient des fonctionnalités qui ne seront jamais disponibles sur le wrapper officiel (comme la possibilité de créer des Custom Scene Nodes directement dans le code de ton appli en n'importe quel language .NET (sans modifier le coeur du moteur), pour te donner un exemple Voici la traduction de la GrassPatchSceneNode de bitplane, la vitesse des nouveautés (suffit de voir le change log), l'architecture globale qui le rendent plus performant et plus précis (j'ai fait des tonnes de tests de montée en puissance, des essais pour comparer un code natif et un code managed et être sûr qu'on n'y perdait pas trop), et surtout, surtout, surtout plus que tout, le but premier du wrapper il fonctionne sous Linux, MacOS... n'importe où Irrlicht passe, et ce n'est pas un support "vite-fait" puisqu'il est même intégralement codé sur Ubuntu Dapper Drake / Mono 1.17, le passage sur Windows n'étant fait que quand il faut recompiler dessus le wrapper natif.

Voilà maintenant c'est dit c'est dit, il fallait bien que je décrive quelque part en français smile

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
155 invités en ligne
membre en ligne: -
RSS Feed