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.
Réponses:
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 #.
la source