Je suis développeur web C # et je souhaite étendre mes compétences et m'amuser en le faisant. Je connais quelques notions de base de C ++ et j'aimerais écrire un simple jeu / moteur de jeu 2D pour moi-même en utilisant C ++. De quelles autres bibliothèques ou SDK ai-je besoin et où trouver des tutoriels et des ressources d'information pour aller de l'avant?
J'ai déjà étudié XNA avec C #. Il y a beaucoup de ressources pour cela, mais je préfère utiliser des produits non Microsoft. Le but de cela est de s'amuser un peu tout en devenant un programmeur mieux arrondi.
Veuillez noter que je ne demande pas le meilleur endroit pour commencer. Je demande juste un point de départ.
Merci pour toute aide!
Je suggère d'utiliser SDL . Cela fait longtemps que la documentation et le support sont assez bons, et c'est l'un des moyens les plus simples que je connaisse pour obtenir une surface de dessin à l'écran. Cela vous permettra de vous entraîner à écrire des classes en C ++ (car vous voudrez probablement encapsuler beaucoup les appels de la fonction SDL C) et vous donnera également une certaine expérience de l'utilisation de pointeurs et de références et de la gestion de base de la mémoire. La gestion de votre propre mémoire est l'une des principales différences entre C ++ et C #.
la source
Personnellement, je choisirais Allegro 5 , pour les raisons suivantes:
Il a un système de construction basé sur CMake. Cela rend beaucoup plus facile que la plupart des systèmes de construction de travailler sur plusieurs plates-formes. Cela semble être une chose mineure, mais c'est assez important dans l'ensemble. Cela rend la construction de la bibliothèque beaucoup plus simple.
SFML est toujours dans un flux important. 2.0 est un changement assez substantiel. Alors qu'Allegro a déjà subi un changement important avec la version 5, et c'est maintenant une question de stabilité.
Il couvre la modularité d'une manière différente de SFML. Avec SFML, vous demandez des composants spécifiques, mais vous les obtenez tous. Si vous demandez le composant graphique, vous obtenez tout le composant graphique. Avec Allegro 5, vous obtenez toujours le composant graphique. Mais si vous ne voulez pas utiliser les chargeurs bitmap d'Allegro, vous n'avez pas à le faire; vous pouvez utiliser le vôtre.
Il a une très bonne documentation. SFML utilise une documentation de style Doxygen, mais même cela est assez spartiate. Alors qu'Allegro 5 est plus complet, les fonctions sont regroupées en fonction des systèmes spécifiques qu'elles couvrent. Ce n'est pas parfait, mais c'est mieux dans l'ensemble.
Ils sont assez intelligents pour ne pas essayer de faire du filetage. Avec C ++ 11 / Boost.Threads soit largement disponible ou juste au coin de la rue, l'utilisation d'un autre thread wrapper peut être plus que problématique: il peut être dangereux de faire fonctionner correctement votre code.
la source
Je pense qu'un endroit fantastique pour commencer est LazyFoo . Cela vous permettra de devenir opérationnel avec SDL plus rapidement que n'importe quel autre endroit que j'ai vu. Je recommanderais d'entrer rapidement dans OpenGL (dès que vous pourrez le supporter) car vous obtiendrez beaucoup plus pour votre programmation - avec une accélération matérielle. Si vous suivez cette voie, je recommande ce guide .
la source
Je recommanderais SFML si vous utilisez c ++. Il vous montrera rapidement quelque chose à l'écran et l'utiliser avec votre code de jeu c ++ est simple.
la source
Considérant qu'OpenGL accélère le côté 2D de nos jours, il n'est pas si important d'avoir accès aux moteurs de rendu rapides qu'Allegro et SDL ont (ou avaient dans les versions antérieures). Cependant, lorsque je choisis une bibliothèque, je me concentre sur la maturité du projet, la base d'utilisateurs et les documents plus que sur la vitesse (tant que la vitesse est raisonnable), et je dirais que SDL et Allegro gagnent sur ces fronts. SDL a également été de publier trois titres AAA comme Civ: Call to Power.
la source