Le plus dur quand on commence un jeu en C++ est de se créer un toolkit, SFML est sympa mais c'est avant tout une librairie multimedia, elle ne permet donc pas de gérer une très grande partie des besoins qu'on a dans le jv.
Pour commencer de manière efficace il faut que tu trouves (ou fasse) des bibliothèques ou classes pour:
-un moteur de collisions (pas physique, juste les collisions, par exemple AABB vs AABB, pixel perfect, polygones...)
-la gestion des entités (un peu a la game maker) avec la possibilité de les créer, détruire, afficher, update...
-un système de texture atlas et d'affichage de sprites animés efficace (capable de créer un atlas de texture a partir d'un dossier par ex)
-généralement une classe de tilemaps est nécessaire (dépend du jeu)
-un pool de sons qui permet d'instancier des sons de manière dynamique (et donc qui permet de ne pas se préoccuper des sources audio, qui sont techniquement limitées)
-de quoi sérialiser des données (enregistrer/charger efficacement)
-des fonctions mathematiques de base et des structures pratique comme un vecteur a 2 dimensions
Bon tout cela vaut pour la 2d, la 3d a beaucoup de besoins supplémentaires (chargement de modèles animés, moteur graphique, etc...)
Une fois ces outils trouvés et maîtrisés, il est temps de passer a la pratique.
Pour débuter le mieux reste de faire du clone game (pas besoin de se préoccuper d'autre chose que du code), participer a des jams style ludum dare, et regarder des petits codes sources d'autres personnes pour voir comment ils font (toujours instructif).
En C++ une bonne maîtrise du langage est nécessaire aussi, se limiter aux bases te feras perdre plus de temps qu'autre chose au final.
Je conseille aussi de passer complètement a C++11 qui est une refonte majeure du langage, et est d'autant plus adaptée au jeu vidéo avec les pointeurs intelligents, les lambdas, les foreach, les nouvelles bibliothèques (random, chrono, thread) et la panoplie de nouveaux concepts.