Qu'est-ce qu'un bon livre pour commencer à programmer un jeu 2D C ++? [fermé]

8

J'ai un diplôme en informatique et pendant mes études, j'ai créé un jeu 2D simple dans Game Maker. Je voudrais recréer ce jeu en C ++ pour commencer à apprendre à créer des jeux en C ++. Quel serait un bon livre pour commencer sur la programmation de jeux en C ++ pour quelqu'un qui a un peu d'expérience en C ++ (Mes classes CS Major ont été enseignées en Java et j'avais une classe en C ++ pour apprendre la syntaxe) et connaître les concepts derrière les objets, méthodes, héritage, etc.?

Ce serait un de mes passe-temps pendant que j'acquiers de l'expérience jusqu'à ce qu'un jour je puisse travailler dans l'industrie du jeu vidéo.

sange
la source
Si vous avez besoin de motivation (et que vous avez le temps), vous voudrez peut-être participer à pyweek ou à l'un des concours
pygame

Réponses:

8

Étant donné que vous utilisiez Game Maker, je suppose que vous êtes sous Windows, alors sautez au plus profond avec le SDK direct-x. Les exemples fournissent le code source et vous donnent également un aperçu de la puissance dont vous disposez. Ce n'est pas parce que vous voulez faire un jeu 2D que vous devez vous en tenir à une bibliothèque 2D, à un moment donné, vous voudrez probablement faire quelque chose que la bibliothèque ne met pas en œuvre en elle-même (shaders ou rotations ou quelque chose de aléatoire que vous venez de BESOIN pour votre projet).

SDL - et probablement SFML et Cinder - fournit une approche de haut niveau "qui a éliminé les bases" pour être un moteur, de sorte que vous auriez tout le pouvoir de le faire à partir de zéro (vous pourriez donc avoir des shaders de pixels en SDL), mais vous ne sauriez pas comment les choses ont été faites. Vous feriez alors du vrai C ++ dans un cadre d'aide, ce qui vous aidera à faire avancer les choses, mais ne vous sera pas d'une grande aide pour vous apprendre à développer des jeux si vous travaillez dans une entreprise de développement de jeux.

SDL, SFML et même Cinder sont tous des moyens intelligents d'éviter de se familiariser avec les choses difficiles en C ++. Ils enveloppent normalement OpenGL, ce qui est utile pour savoir si vous voulez coder des graphiques pour des machines non-Windows, mais il y a des tonnes de ressources pour faire le travail dans Direct-X aussi (probablement plus car le virus Windows s'est propagé à tous les coins de la monde).

Si vous ne voulez pas apprendre les choses sérieuses, alors très bien, mais sinon, n'ayez pas peur de commencer à partir d'une application Win32 brute.

Je vous suggère, pour plus de confort, de commencer avec tous les différents packages d'assistance que vous pouvez trouver, mais dirigez-vous vers l'écriture de votre propre moteur de rendu. L'écriture d'un moteur est très amusante et peut vous fournir une ressource à regarder dans vos futurs projets. Rien ne crée un bon code comme la sagesse de mal le faire dans le passé.

Richard Fabian
la source
Merci pour la réponse, j'ai de l'expérience en C ++ et je voudrais entrer dans le vif du sujet donc j'en aurais de l'expérience. J'aimerais que ce passe-temps mène finalement à une carrière dans l'industrie du jeu vidéo une fois que j'aurai une expérience de travail.
Sange
7

Je recommanderais de rester loin de cette bibliothèque Cinder. La navigation dans les didacticiels est à peu près aussi démotivante que possible. Choisissez quelque chose de facile, amusant et rapide à coder, comme SFML . Considérez-le comme un remplacement moderne orienté objet de SDL. Si les fonctionnalités répondent à vos besoins, installez-le, suivez les tutoriels et commencez simplement à jouer avec. Vous pouvez trouver les codes sources des projets SFML existants sur les forums pour voir comment ils implémentent des choses, telles que la boucle de jeu, comment ils organisent le code et les objets et les font communiquer entre eux et le Wikipropose un certain nombre de didacticiels et de codes sources que vous pouvez utiliser dans vos projets. Et les forums sont actifs, vous pouvez donc demander de l'aide à tout moment.

Le magicien
la source
Je n'en avais jamais entendu parler - ça a l'air bien plus approprié que de la cendre pour les jeux! agréable.
Iain
4

Je ne connais aucun livre spécifique aux jeux 2D, mais vous devriez regarder les réponses ici . Après tout, les jeux 2D et 3D ont beaucoup en commun. Il existe de nombreux jeux 3D qui ont un gameplay 2D.

Vous pourriez peut-être consulter les tutoriels de Lazy Foo , ils couvrent de nombreux sujets importants étape par étape. Ils utilisent SDL et OpenGL.

Carnby
la source
3

Peut-être un peu daté, mais Advanced 2D Game Development était un très bon livre. Vérifiez-le.

Miguel Moll
la source
Je viens d'acheter ce livre (en attendant qu'il arrive!) - en quels termes diriez-vous qu'il est daté?
Zolomon
Eh bien depuis sa sortie en 2008, la technologie a certainement changé. Mais les méthodes sont probablement les mêmes. Désolé, ça fait un moment que je ne l'ai pas lu et rien ne me vient à l'esprit.
Miguel Moll
2

Pourquoi ne pas essayer de commencer avec quelque chose comme http://libcinder.org/ - tout est gratuit et contient tous les tutoriels dont vous avez besoin pour commencer.

Iain
la source
0

Au-delà d'un livre, il est important de décider du type de jeu que vous souhaitez créer. Cela aidera à informer votre chemin en général. Je suggérerais de choisir quelque chose de simple, Démineur ou Tetris ou peut-être Lightcycles of Tron, où la logique de jeu est assez simple et les exigences graphiques sont minimales juste pour obtenir quelque chose de basique.

dash-tom-bang
la source
0

Bien qu'il existe de nombreux livres, je n'en ai pas trouvé un qui me plaise. La plupart semblent s'en tenir à des "jeux" qui ne sont pas particulièrement intéressants du point de vue du jeu, et n'entrent pas vraiment dans les détails d'implémentation des graphiques, des boucles de jeu, etc.

Ma recommandation serait, plutôt que de chercher un livre, de vous apprendre par la recherche Google. Il y a des tonnes de tutoriels en ligne pour créer des jeux simples, choisissez simplement un jeu comme Tetris (ou autre), faites-vous une liste de tâches de programmation, puis quand vous êtes coincé sur quelque chose (peut-être n'êtes-vous pas sûr d'accepter la saisie en temps réel , ou comment dessiner des graphiques à l'écran) recherchez la réponse à cette question spécifique. Répétez chaque fois que vous êtes coincé, et lorsque vous aurez terminé, vous aurez une assez bonne idée de la façon dont un jeu est organisé.

Ian Schreiber
la source