Quelles bibliothèques C # peuvent être utilisées pour prendre en charge le développement de jeux? [fermé]

58

Les jeux étant basés sur de nombreux sous-systèmes, des éléments graphiques (DirectX, OpenGL, ...), audio (OpenAL, Ogg Vorbis, ...) ou physique (collisions, ...), quelles bibliothèques connaissez-vous qui sont utiles? pour le développement de jeux en C # et quels avantages offrent-ils?

Michael Barth
la source

Réponses:

63

Graphisme / Son

  • XNA High Level wrapper sur DirectX9. Vous permet de vous lever rapidement. Prend en charge PC, Xbox360 et Windows Phone 7. Prend en charge l'audio Xact ainsi que sa propre API SoundEffect.
  • SlimDX niveau inférieur wrapper sur DX9 / 10/11 . Si c'est dans le SDK DX, c'est emballé ici.
  • OpenTK Wrapper sur OpenGL / AL.
  • SDL.net Un port de la populaire librairie SDL.

Moteurs

  • Architecture de moteur de jeu basée sur des composants WaveEngine , api C #, moteur physique 2D et 3D, effets visuels magnifiques, prise en charge multiplate-forme Android, Linux, Mac, iOS et Windows, système de présentation avancé, etc.
  • NeoAxis Un moteur 3D prenant en charge le moteur physique NVIDIA PhysX, les liaisons C #, prend en charge WPF et Windows Forms, une riche sélection d'outils tels que des éditeurs de cartes, d'objets, de modèles, de matériaux, de terrains, dans les navigateurs de jeu utilisant Chrome, une recherche de navigation avec maillage de navigation, etc.
  • TorqueX Un moteur 2D / 3D pour XNA. Bon éditeur, les jeux de garage ont récemment réinvesti dans le moteur après une période de négligence.
  • Moteur de jeu truevision 3D C ++ avec liaisons C #
  • Axiome Une réécriture de Ogre in c #. Prend en charge de nombreuses API de rendu sauvegardées.
  • Unity est un moteur graphique / de jeu C ++ qui prend en charge les scripts de jeu en C #.
  • AngelXNA Un portage du framework de prototypage d'angle open source d'EALA

La physique

  • Farseer Moteur de physique 2D populaire, prend en charge les formats .net (desktop), compact (xbox) et micro (silverlight).
  • Jitter, un moteur physique 3D relativement nouveau, bien meilleur que son achèvement.
  • Box2Dx Un port direct de box2D
  • Box2D.XNA Autre port de Box2D pour XNA; plus récent que Box2Dx
  • JigLib
  • BulletX A c # port de Bullet, semble être abandonné.
Cubed2D
la source
1
Belle vue d'ensemble, c'était exactement le genre de réponse que je cherchais!
Michael Klement
2
XNA étant une communauté si vaste, j'aimerais ajouter Henge3D à la physique, Sunburn to Graphics, et sgMotion et XNAnimation to Graphics (ou Animation).
Chris Ridenour
TorqueX n'est plus supporté par les jeux de garage.
Markus
3
Depuis que cette réponse a été publiée pour la première fois, Microsoft a cessé de prendre en charge XNA. Cette bibliothèque n’est probablement plus une bonne idée, utilisez plutôt MonoGame.
Jhocking
10

Évidemment, il existe XNA provenant de Microsoft lui-même: http://creators.xna.com/en-US/ Les jeux conçus avec XNA fonctionnent sous Windows et (via le club Creators) sur Xbox360. Je pense que c'est parfait pour se familiariser avec le développement rapide de jeux. Je ne suis pas encore bien familiarisé avec XNA, je ne peux donc pas en juger. Mais, vu de côté, cela semble être la meilleure chose depuis le pain en tranches. Bien sûr, vous ne pouvez pas tout faire avec cela. Mais vous pouvez créer des prototypes rapides et des jeux de travail de qualité indépendante et au-delà.

SlimDX - http://slimdx.org/ est une autre bibliothèque que certains pourraient qualifier de plus proche du métal / de la réalité si vous ne voulez pas travailler avec XNA. Ainsi, idéal pour le prototypage rapide - en particulier si votre développement de jeu principal est en C ou C ++. Aussi, idéal pour faire des outils.

Image clé
la source
3
SlimDX présente également l'avantage d'être compatible avec le support d'interopérabilité Direct3D de WPF, qui (selon le type de jeu que vous développez) pourrait s'avérer très utile. Il n'y a pas de soutien officiel pour l'interopérabilité WPF / XNA, et bien que je pense que certaines personnes ont réussi à faire en sorte que les deux travaillent ensemble, le processus était fastidieux et fragile.
Mike Strobel
Je dois ajouter qu'il est un effort pour XNA multiplateforme travailler avec Mono (voir MonoXNA), ce qui pourrait facteur dans la décision dont le cadre à l' utilisation.
Mike Strobel
@ Mikw Strobel: +1, mais rappelez-vous qu'un des principaux arguments de vente de XNA est sa capacité à déployer / vendre sur la 360 et que tous les éléments WPF / XNA que j'ai vus ne fonctionneront pas sur la 360.
Steven Evers
4

Il existe également un port de la bibliothèque C SDL vers .NET, SDL.NET . Personnellement, j'utiliserais XNA en C # parce que c'est juste une bibliothèque bien conçue, très personnalisable et également conviviale pour les débutants.

Spidey
la source
XNA convient aux débutants, mais est également en pleine mutation (en particulier) en ce moment. La version 4.0 subira un certain nombre de changements radicaux et il est agaçant de suivre le rythme lorsque vous vous mouillez les pieds.
Steven Evers
4

Avertissement: La recommandation suivante peut être ou ne pas être partiale en raison de mon implication personnelle dans le développement de ce moteur.

Duality est un moteur de jeu 2D extensible livré avec un système d’éditeur WYSIWYG. Rapide vue d'ensemble:

  • C'est basé sur un plugin . Vous n'écrivez pas une nouvelle application, mais un plugin contenant tout votre code.
  • Les plugins proposent un rechargement à l' exécution à partir de l'éditeur. Permet une itération rapide.
  • Open Source , entièrement écrit en C #, basé sur OpenTK / OpenGL / OpenAL
  • Relativement nouveau (2 à 3 ans) et toujours en développement - mais déjà utilisable .
  • Gestion du rendu, de l'audio, de la saisie utilisateur, de la physique, de la sérialisation, de la gestion des ressources et des objets
  • Beaucoup de classes d'assistance et de composants par défaut pour vous aider à démarrer.

Si vous voulez essayer, vous pouvez télécharger directement la dernière version binaire ou la compiler vous-même en utilisant le code source de GitHub . Pour obtenir plus d’informations, une visite sur le site Web d’information et sur les forums communautaires peut porter ses fruits. Suivez simplement les liens du site Web d'information que j'ai inclus ci-dessus.

Une capture d'écran de l'environnement d'édition.

Fetze
la source
Il est généralement préférable d'indiquer que vous êtes impliqué dans le développement d'un logiciel que vous recommandez.
Josh
@JoshPetrie Vous avez peut-être raison. Je ne savais pas si cela importait ou non dans ce contexte particulier - de toute façon, j'ai ajouté un avertissement maintenant. :)
Adam
3

BulletX est un port 100% C # de Bullet Physics, utilisable avec XNA.

Steven Evers
la source
3

Du côté des outils, une bibliothèque extrêmement utile est le " Managed Extensibility Framework ", qui fait maintenant partie de .Net 4.0. Il vous permet de créer des plug-ins ou une découverte automatique d'instances de classes ridiculement facilement, ce qui est très utile pour vos outils.

Sander van Rossen
la source
2

Le plus important (et le plus éprouvé) à ce jour est le framework XNA. Vous pouvez même tirer parti de XNA pour créer vos jeux d’outils. L'avantage est que vous disposez d'un cadre qui inclut les bibliothèques dont vous avez besoin (physique, son, graphiques) dans un seul paquet. L'énorme avantage est que si vous faites vraiment quelque chose, vous pouvez essayer de le transférer dans XBLA.

David McGraw
la source
2

XNA est une assez grande bibliothèque pour PC / Xbox360, gérant vos graphiques, votre son, vos entrées, etc.

Bryan Denny
la source
2

Le framework Tao (utilisé dans ce livre que j'ai trouvé très utile: Programmation de jeux C # pour la création de jeux sérieux ), qui englobe OpenGL et de nombreuses autres fonctionnalités utiles de programmation de jeux (accessibles via C #), mérite un coup d'œil. Cependant, il a été remplacé par Open Library (OpenTK), qui a été mentionné dans une autre réponse. Je trouve étrange que le livre utilise le framework Tao au lieu d’OpenTK, étant donné que Tao est inactif depuis environ 2 ans (et que le livre est tout neuf). Reste un cadre utile à vérifier.

Jason Down
la source
1

Ce n'est pas exactement ce que vous avez demandé, mais Unity est un moteur de jeu qui prend en charge les scripts en c #.

hiena
la source
0

AngelXNA (http://www.jeffongames.com/2009/05/angelxna-v10/) est un moteur / bibliothèque orienté prototype, construit sur XNA, si vous recherchez quelque chose de plus haut niveau.

Andrew Brockert
la source
0

Je trouve que SFML.Net est un excellent choix et c’est ce que j’utilise personnellement. Attention, n'utilisez pas les fichiers binaires fournis sur le site, mais obtenez plutôt les dernières nouvelles du SVN. La version du site est très obsolète.

Xeon06
la source