Beginning C++ Game Programming: Learn to program with C++ by building fun games, 2nd Edition
R**H
Its a good way to get back into c++ and SFML is a good framework for learning game development
The book is simple because the author is teaching someone that knows nothing about c++ including basic data structures. However, for this is a perfect approach even for the one who knows this because it gives the student a simple example to make into more refined code. This gives an example but allows one to put their approach to it. I have only gotten a bit into the book. I will update this review when I get closer to the end.
J**P
good book for reference
100% would recommend!
S**N
Learn C++ and OpenGL
I really liked the incremental approach to learning C++ using games. The final game architecture is amazing and shows how to abstract game components into classes. Just what I needed.
A**R
Very good book, just one alert!
Very good book, explained step by step. BEWARE: I got a virus while downloading the files from github.
J**G
Great book, easy to follow
C++ fundamentals are laid out in an easy to read and easy to follow format. Plenty of practice exercises to reinforce the material.
A**A
Greatest book for beginner
Despite some minor typographical errors, this book's approach and explanation is easy to follow and the example code is very well written overall.
D**T
Pog
This book is pretty pog!
F**C
Good book, but significant errors detract from its usability
I originally wrote this review when I had worked through Chapter 18 in this book with Chapters 19-23 still ahead (so 520 pages of 700). I have now completed the book (second edition) and am revising my review accordingly.First, some background. I'm not an absolute beginner, but close. I've dabbled with the Visual Basic in Microsoft Access and Excel. Previously I've read beginner books on Visual Basic and C#.This book in general does what it purports to do, teach C++ by explaining the code as you create several games. As another reviewer wrote, the projects rely heavily on SFML libraries. In each chapter the principles are explained, some generic (sometimes psuedocode) examples are given, then the actual game code to add is given followed by a more detailed explanation of what the code does. Sometimes the author gives a first level explanation of a concept, enough for the project in process, and then provides a url to a deeper explanation (which is fine). In a few instances he has the reader add a statement in the code for a concept he has not previously explained and does not explain, leaving the reader to wonder, "What does that do?" Example: he gives code to read in a text file line by line and then examine each line character by character, but does not explain what the code is doing and how; the functions used and their syntax remain a complete mystery without extra research.The other issue is that there are a fair number of errors in the code examples (a common complaint I see in reviews of similar books). I was able to figure out what the code should have been, but doing so definitely slowed progress. Some are minor, such as a missing or superfluous semicolon or a class name where not needed (e.g., in a header file having Class::Class() instead of Class(), the former throwing an error). Problematically, the downloadable example files are supposed to be error free, but in almost every case (perhaps all) they contain these same errors and will not compile. Probably the most egregious case is when the text is covering OpenGL shaders to add a ripple effect to a background and it provides the GL Shader Language code and .frag and .vert files to do this. Because GLSL is outside the scope of the text, the author rightly only briefly explains the code. However, the code provided in the text and in the .frag file doesn't compile so the shader doesn't work. Fixing this took extensive research on my part. (Hint: Visual Studio doesn't detect this error until it compiles the whole project when you run the game. The error message shows in the Microsoft Visual Studio Debug Console Window. Look at it before you close it.)In one instance the code compiles and the game program runs, but the code doesn't do what it is supposed to do. Specifically in the chapter that includes sound spatialization, a sound is to play when a character gets close enough to a fire pit, the sound is to be spatialized right/left, the sound is to grow louder as the player gets closer (attenuate) and the sound is to stop when the player gets far enough away. With the code in the text, the sound starts, never spatializes, never attenuates and never stops, even when the player goes on to the next level. Fixing this was quite a challenge. Fortunately the skills taught up to that point in the text are sufficient to code the fix, but the fix requires fairly major changes to the project.In the final game in the book, in the final chapter on covering this game, after laboriously creating many .h and .cpp files, when you run the game it compiles but crashes. The author declares two private variables in a .h file but never assigns a value to then, so when the functions that use these variables are called, crash. Once you figure this out, with some non-trivial effect you can make corrections, but this should not be necessary. (Specifically, the private variables m_PUC and m_PTC are declared in GameInputHandler.h but never initialized in GameInputHandler.cpp. The GameInputHandler::initialize function has nothing in it.)Lastly, the publisher's support site provides the downloadable code files and other resources. It is set up to provide access to an errata file for each of its books, but unfortunately there is no errata file for this one. I submitted a very long list of errata through the site. The publisher responded, "Thank you for your patience. We got the update from the author and he has informed us that he will file all the errata and update the same in the third edition of the book. We will appreciate it if you could wait for the 3rd edition for all the necessary changes." With that response it appears the author's intent is not to publish an errata file on their site for this edition and incorporate the errata into the next edition.If you buy this book and run into one of these issues, comment on this review and I'll try to respond with the fix I found. Unfortunately, I can't upload corrected files with this review.Final comment. The last game in the book is joystick enabled, at least in part. While you won't need a joystick to play the game (everything can be controlled with the keyboard), having a joystick will let you exercise all the code. "Joystick" includes a joystick, Xbox controller or other gamepad connected to your computer by cable or Bluetooth.
M**W
Great resource for learning or teaching C++ in a fun way
Excellent resource for learning or teaching C++ programming. Topics are introduced in a rational order and the applications are immediately obvious from the implementation in the games. Well done!
J**E
Good for beginners and above
Although I was disappointed to receive it with the cover damaged, I don't rate books based on that. I usually avoid books from Packt> Publishing. They are written by authors with good knowledge, but terrible at explaining things, and the published does nothing to fix it. I am pleased to say this is not the case. John Horton manages to explain the content in an easy to understand way. I have completed only 2 chapters, but pleased with the progress.The book is oriented to Windows users (most of those who want to learn game development) but with notes to Linux and Mac users on chapter 1 (the most challenging for a new programmer). In my experience, Linux users won't find it difficult to follow the book once the initial set up is complete.I am not new to programming, but I am to C++ and game development. I like that the author treats the reader as a beginner but not in a condescending way (IMO).Definitely I can recommend this book to those who want to learn C++ even if game development of SFML is not the final goal.
A**I
un testo di riferimento per iniziare con C++ ini Unreal molto valido sono soddisfatto
testo molto utile per iniziare a programmare in C++ in Unreal Engine
M**D
Learning to program games whilst learning C/C++ is fun
I'm just a hobbyist, who writes small programs for fun. Using graphics and audio has always been time consuming and difficult for me, but being introduced to SFML has brought new gaming possibilities. I have a basic understanding of C and C++ but thought OOP would need too much extra knowledge. This book has really enabled me to get to grips with OOP in a fun and practical way. I'm only on chapter 8, but have learnt enough already to provide a colourful fun game. I like the writing style too. Very enjoyable. I wish I had it a few years ago. I've learnt a great deal of new knowledge very quickly.
K**R
Zu viel OOP?
Für eine Einführung in C++ ein Spiel zu nehmen ist eine super Idee; Und der Author weiss das auch detailiert umzusetzen. Allerdings werde ich das Gefühl nicht los dass das Vorhaben in Klassen-Spaghetti Code gemündet ist. Ich meine das zu viele Klassen erzeugt wurden - zu viel verteilter Code. Sieht man in das Source Verzeichnis mit einer Anzahl grösser 25 Klassen, das Spiel aber z.B: invader++ würde ich mit weit weniger prozeduralen code schreiben. das Spiel dagegen wirkt im Vergleich zur komplexen klassenhierarchie enttäuschend schlicht.Das ganze im Entity Component System nach data oriented Pattern zu schreiben wäre aber zu schwierig. Als Einsteigerbuch sicher spannend, aber gerade OOP zeigt in C++ Grenzen, vor allem wenn das Spiel komplexer wird.
Trustpilot
3 days ago
2 weeks ago