Donc, je suis un étudiant qui cherche à mettre mon pied dans la porte du développement de jeux et je cherche à faire quelque chose en 2D, peut-être un tetris / envahisseurs spatiaux / quelque chose avec une petite souris-interaction clone.
J'ai orienté mes recherches vers C ++ et 2d et j'ai finalement été dirigé vers DirectX / OpenGL
Maintenant, si je comprends bien, tous ces packages feront pour moi dessiner des choses sur un écran. Et c'est tout ce qui m'importe vraiment à ce stade. Le son n'est pas nécessaire. L'entrée peut être gérée avec stdlib probablement.
Donc, pour un débutant essayant de créer un jeu de base en C ++, recommanderiez-vous DirectX ou OpenGL? Pourquoi? Quelles sont les principales différences de fonctionnalités entre les deux? Quel est le plus utilisable?
J'ai utilisé à la fois SDL et SFML pour mes projets de jeux. J'ai utilisé SDL pour un jeu fini, un jeu tetris, et j'ai surtout utilisé SFML comme couche de fenêtrage pour des expériences de shader. D'après mon expérience, je dois dire que SDL est ce qu'il dit. Il s'agit d'une simple couche de médias directs, qui résume les données avec lesquelles vos médias (son et vidéo) fonctionnent à un niveau avec lequel vous pouvez interagir sur différentes plates-formes. C'est "tout" cela.
Pour cette raison, vous devez généralement le mélanger avec quelques autres bibliothèques, notamment SDL_mixer, SDL_gfx et SDL_image, qui fournissent les fonctionnalités dont tout le monde a besoin pour créer des jeux.
Toutes ces bibliothèques sont également destinées au langage de programmation C et respectent ses conventions. Non pas qu'il y ait quelque chose de mal à cela, mais si vous voulez une approche orientée objet de la façon dont vous interagissez avec io, vous devez essentiellement construire cette couche vous-même.
SFML est livré avec tout dès la sortie de la boîte. Il a du son, il a de la vidéo, il a du mixage, il a un plafonnement des images et il est orienté objet. Si c'est ce que vous voulez, je vous recommande d'y aller. SFML dispose également d'une couche d'abstraction pour certaines des fonctionnalités de base d'Opengl (spécifiquement beginShape / EndShape et pixel shaders). Je ne pense pas que SDL ait quelque chose comme ça, juste une méthode pour fusionner avec elle.
PS Ne pas éloigner la conversation de C / C ++, mais si vous n'utilisez pas ce langage pour une raison particulière, et que vous voulez un plus simple, il y a toujours pygame. Ce qui est essentiellement SDL + pour Python.
la source
http://www.gamedev.net/community/forums/mod/journal/journal.asp?jn=263140&reply_id=3598844
Je suis d'accord avec ces remarques et je pense que c'est une discussion stellaire sur la raison pour laquelle DirectX est meilleur qu'OpenGL.
Ce journal est en réponse à David chez Wolfire.
J'espère que cela sert à équilibrer un peu. ;)
Mais en général, si vous utilisez un framework multi-plateforme et multi-API:
Utilisez DirectX sur Windows et OpenGL sur * nix.
la source
http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX
Je suis d'accord avec ces remarques et je pense que c'est une discussion stellaire sur la raison pour laquelle OpenGL est meilleur que DirectX.
Cependant, cette question est absolument une question d'opinion, et DirectX a absolument ses avantages sur OpenGL, en particulier 10 et 11 et surtout dans le contexte du développement de jeux.
De plus, si vous choisissez d'aller avec OpenGL, SDL est une bibliothèque merveilleuse et très populaire, et il y a beaucoup de ressources pour apprendre OpenGL (NeHe, etc.) - mais c'est peut-être la place pour une autre question.
la source
Si vous débutez, il est probablement préférable d'utiliser un moteur ou un cadre 2D existant tel que SFML .
la source
J'aime Direct X et je l'utilise depuis plusieurs années sur de nombreux projets mais si votre apprentissage fait attention aux problèmes de version.
J'ai trouvé que la majorité du code x direct ne se compile pas sous une version différente et cela peut être un enfer si vous essayez de suivre un tutoriel.
Je recommande Direct X car il existe des fonctionnalités pour tout ce qui le rend plus facile lorsque vous commencez et des façons plus avancées de manipuler les choses à mesure que vous avancez.
la source
Moteur de jeu de Haaf
Je ne sais pas comment il est à jour (je veux dire que ce n'est pas le cas, mais je ne pense pas qu'il y ait une raison pour qu'il ne devrait pas être utilisable), mais je l'ai utilisé il y a quelque temps (C ++) et je vraiment apprécié. HGE n'a pas été mis à jour depuis le 05.08, mais encore une fois, je me souviens qu'il était assez simple à apprendre et rapide. Il est également livré avec toutes sortes d'outils et d'aide comme un système de particules.
Quoi qu'il en soit, si ce que vous voulez est de créer un véritable jeu, au lieu d'apprendre ce qui se passe "sous le capot" dans les processus de dessin et autres, je recommanderais d'utiliser quelque chose de niveau supérieur à openGL ou DirectX, ou vous allez passer votre temps à dessiner des choses à l'écran plutôt que de créer un jeu réel. Et HGE vaut vraiment le détour.
http://hge.relishgames.com/
la source
Je suis dans la même position que vous, après avoir commencé à travailler sur le développement de jeux moi-même (sur la plateforme iPhone) il y a quelques mois. Venant d'un arrière-plan C, je vous suggère en fait d'utiliser un framework (particulièrement Cocos2d).
Les avantages d'un framework sont plus que ceux qui peuvent être discutés dans cet article - mais il gère principalement la plupart des traitements de bas niveau avec OpenGL et vous fournit des méthodes pour gérer ce dont vous aurez probablement besoin pour le développement de jeux. Ils ont une grande communauté, sont open source, et donc si vous avez besoin d'accéder au code de base du framework / de modifier n'importe quel morceau en fonction de vos besoins / aller au bas niveau OpenGL si nécessaire - vous avez toujours ce choix.
Vous pouvez suivre la voie de l'OpenGL direct, mais pour moi, cela semble juste exagéré.
Vous voudrez probablement également examiner les différentes bibliothèques de physique qui existent - Google Chipmunk et Box2D pour plus d'informations.
à votre santé!
la source