SharpDX est-il suffisamment mature pour être adopté ou dois-je commencer à utiliser SlimDX maintenant?

10

Je suis sur le point d'arrêter mon projet de jeu dans XNA parce que d'après ce que je peux en déduire, son développement touche à sa fin (et il est déjà derrière la technologie actuelle). Par conséquent, je dois adopter un nouveau cadre ou une nouvelle API.

Je viens de passer 2 jours à regarder C ++ et j'ai décidé que ce n'était vraiment pas pour moi - mais je trouve l'accès brut à DirectX attrayant. SharpDX semble être un bon point de départ, mais il n'a aucune documentation et aucun commentaire de code. J'ai l'impression que ce n'est pas tout à fait prêt à l'emploi.

Je suis intéressé par les opinions des personnes qui ont utilisé l'un ou les deux de ces cadres, pour m'aider à décider avec certitude lequel je devrais apprendre? Merci pour tout conseil.

Gavin Williams
la source
1
Question très conversationnelle :). SharpDX est probablement aussi mature que SlimDX car il est généré directement à partir des en-têtes - en tant que tel, il a immédiatement enveloppé 100% de DirectX. Les deux bibliothèques sont essentiellement les mêmes; vous pouvez donc simplement utiliser les exemples SlimDX pour SharpDX.
Jonathan Dickinson
1
Il est possible que votre réticence à choisir le C / C ++ soit le véritable problème en termes d'excitation. Tant que vous restez au niveau géré, vous n'obtiendrez jamais la vraie viande, OMI. Ceci de quelqu'un qui a longtemps juré par les langages managés, malgré une formation formelle en C ++. Juste une observation. N'évitez pas trop C ++ . Cela limitera certainement vos options dans cette industrie si vous le faites, alors que l'inverse n'est certainement pas vrai, en fait, cela vous donne un point d'entrée solide dans d'autres industries (médical, financier, défense). Le salaire moyen est beaucoup mieux là-bas, pour info.
Ingénieur
Je suis vraiment intéressé par DX, et même si je peux finir par porter mon projet sur Slim ou Sharp, j'entends certainement ce que vous dites. Et cela me servirait probablement de continuer à apprendre le C ++ afin de surmonter cet inconfort. J'aimerais penser que dans 12 mois, si j'étais dans une position où j'avais besoin d'utiliser C ++ / Direct X, je pourrais choisir de le faire, si c'est le bon outil pour le travail.
Gavin Williams

Réponses:

16

Je suis l'auteur de SharpDX, donc mes conseils vont être biaisés, mais je voudrais au moins répondre à certaines de vos préoccupations.

À propos de la documentation SharpDX, l'état actuel est très limité, car j'ai travaillé jusqu'à présent pour rendre l'ensemble de l'API DirectX accessible à partir de .NET et du nouveau système d'exploitation Win8. Comme je suis fermé pour terminer de ce côté, je travaille à fournir un site Web complet et quelques articles pour expliquer les concepts clés de SharpDX, et comment vous pouvez en tirer le meilleur parti. Gardez également à l'esprit que ce projet vise principalement à apporter DirectX à .NET, il s'agit donc toujours d'une API de bas niveau. Cela vous oblige donc à creuser un peu dans le comportement de l'API C ++ afin de comprendre comment cela fonctionne. Heureusement, presque toutes les méthodes de SharpDX sont mappées à une seule méthode dans l'API DirectX, il est donc facile de vérifier comment utiliser une méthode en vérifiant l'API DirectX. Le système de documentation qui sera disponible avec SharpDX 2.

SharpDX est-il prêt à être utilisé pour développer un jeu? Bref, oui.

Tout d'abord, j'ai été embauché par une entreprise japonaise pour participer au développement d'un nouveau moteur 3D en C #, et nous utilisons SharpDX pour le backend de rendu sur Windows.

Deuxièmement, j'ai reçu beaucoup de mails privés de développeurs d'entreprises qui utilisent SharpDX pour développer une application multimédia (allant des jeux, éditeur de niveau, publication de photos en ligne ... etc.). Certains de ces clients sont assez gros (malheureusement, je ne peux pas les citer).

Enfin, certains projets open source publics utilisent (ou vont utiliser) SharpDX pour leur rendu principal. Par exemple, Delta Engine utilise déjà SharpDX pour son rendu Direct3D11 (qui sera également disponible pour Win8). Le projet ANX à venir (un successeur XNA open source) utilise également SharpDX pour le rendu, les manettes de jeu et la gestion audio.

Mais SharpDX n'est qu'une étape sur la route pour construire un moteur de jeu, puis un jeu. Parce que l'API est de bas niveau, vous ne pouvez pas vous attendre à avoir le même type de fonctionnalités de haut niveau que celles auxquelles vous étiez habitué avec un framework comme XNA. Mais avec un cadre minimal, vous pourriez faire beaucoup de choses.

Vous pouvez également envisager d'utiliser un produit bien établi comme Unity pour développer des jeux portables en C #.

xoofx
la source
1
+1 pour ANX. Vraiment excitant car j'aime vraiment la simplicité de XNA (j'ai rapidement abandonné avec #DX en raison de la quantité de code boostrap nécessaire).
Jonathan Dickinson,
Wow, merci d'avoir ajouté Alexandre, je viens de lire certains de vos messages ce soir sur votre départ de l'équipe slimDX et ce que vous avez en tête pour SharpDX. C'est génial de voir un travail aussi ciblé, et c'est génial d'avoir un autre cadre géré, les moteurs graphiques gérés ne font que s'agrandir, et je ne pense pas que nous ayons vu la pleine possibilité pour l'instant. J'espère simplement que les problèmes de performances avec le code managé, qu'ils proviennent des heures d'appel ou du comportement du garbage collector, puissent être résolus ou minimisés pour être sans conséquence. Votre travail ajoute certainement à cette solution.
Gavin Williams
Il y a vraiment beaucoup de choix. J'ai téléchargé Unity. Je n'ai jamais regardé un moteur de jeu ou quelque chose comme ça auparavant, donc il devrait être intéressant de voir ce qu'il peut faire et comment il le fait. J'ai les bases de mon projet déjà écrites en xna et c'est quelque part dans le voisinage de 5000-10 000 lignes de code, donc j'aimerais utiliser ce code si je le pouvais. Mais c'est encore loin d'être terminé, donc je suppose que si je passe une semaine ou deux à regarder différents cadres et moteurs, ce n'est pas un mauvais investissement.
Gavin Williams
Je n'avais jamais entendu parler d'ANX avant ce post. Très intéressé où cela va. Et en passant, vous voudrez peut-être mettre à jour le lien sur votre message vers: anxframework.codeplex.com
David Gouveia