SFML Game Development, avis sur le livre

16 novembre 2013 18:23:32

Suite à une demande de la part de l'éditeur, j’ai récemment, j’ai lu le livre «SFML Game Development» disponible à l’adresse: http://www.packtpub.com/sfml-game-development/book .

Voici maintenant ce que j’en ai pensé:

Introduction:

Ce livre présente des concepts de base pour la création d’un jeu 2D en utilisant la SFML2.0 et le C++11 en technologies de bases. Les thèmes abordés vont de l’installation de la SFML à la gestion de réseau, en passant pas la gestion des entités, actions du joueur, création d’une GUI, mais également la gestion des sons, musiques et autres ressources ainsi que la création d’un moteur de particules et «posts effects».

En bref :

Le livre est très complet parcourant tous les outils de base permettant la création de jeux. Bien que que le jeu créé au fur et à mesure du livre soit un simple jeu 2D vue de haut, les concepts abordés sont applicables à la plupart des jeux actuelles, qu’ils soit en 2D ou 3D. Une connaissance de la SFML préalable n’est pas requise, tout étant détaillé pas à pas. Une connaissance du C++ est par contre recommandé. h3. Plus en détails : Biens que les concepts abordés soit bien détaillés, leur implémentations est parfois étrange. Par exemple, une des erreurs qui revient le plus souvent est la mauvaises utilisations des containers de la STL. Très souvent std::vector est utilisé alors qu’il y a bien plus adapté à la situation (array, list, stack …). Il est toutefois à noter, que cela ne change en rien la logique du code, mais simplement des soucis d’optimisations. Un autre point que j’ai trouvé étrange lors de la lecture de ce livre, est que std::move est utilisé dans les premiers chapitres (abordant donc les rvalue-references) mais que les «move constructors» ne sont jamais abordés, et que std::move n’est plus utilisé par la suite alors que de nombreuse optimisations aurais là aussi pus être faites avec, sans pour autant changer la clarté du code. Le dernier points que je détaillerais n’est présent qu’une seul fois dans le code. Une surcharge est faite pour la méthode «load» de «ResourceHolder», dupliquant une partie du code (rompant les concepts définies au début du livre prohibant la duplication). D’après moi, l’utilisation de «template variadiques» couplé à std::forward aurait été bien plus judicieux, et aurais également permis d’aborder ces ajout au C++ de façon simple et efficace.

Mot de la fin :

Beaucoup de concepts sont abordés implémenté et utilisé, et bien d’autre sont simplement citées pour les curieux ou pour améliorer le code proposé sans pour autant rentrer dans les détails. En claire un très bon livre, que se soit pour les débutants, les curieux ou encore les initiés.
captcha