I had high hopes for this book. Okay, 370-ish pages from start to finish is as insane as learning C++ in 21 days or Java in a weekend, but I put that to one side. This book is what I'd love to have on my shelf - covered OpenGL and SDL, two open source libraries, both widely used, both very capable. Then things went wrong; I opened it.
22 pages before anything of substance - it covered Inno, using CVS and setting up various bits on the machine. I can ignore that, it doesn't concern me, but it does take the page count down to about 350. Okay, still enough to give an overview of SDL...
The first code example fails to compile! Totally fails. Why? Look at the code and the description
// specify that you want to use // objects defined in the std // namespaceusing namespace std; int main(int argc, char *argv[]) {// define a string object. can // also be defined as a // std::stringstring text_string;// instead of strcpy we can use // the = operatortext_string = "Hello world";// instead of strcat we can use // the += operatortext_string += " I am a std::string";// when needing a pointer to the // character string buffer, // always use the .c_str() // methodcerr<It looks innocent enough, but it is assumed that the reader has little or no C knowledge at all (the book is for beginner to intermediate). What is this
strcpy,
strcatand what on earth is a
methodand
operator?
Also, why doesn't it compile? That's right. The
#include
string
#include
s or bothering to really explain what is going really doesn't help.
I can gloss over those. I have a bigger beef.
Remember I said it was for beginners - it launches very quickly into using templates. Me, I didn't hit templates for yonks while learning, yet the author seems to consider them fair game for beginners! If they had been written with care and with a lot of explanation, I could let it ride. This isn't. In fact, some parts are just wrong.
Up to around page 68, there isn't very much in there that would be considered programming, though the design chapter is quite good. Page 69 is where the book really stops being of use - it goes platform specific. A massive opportunity missed. From this point on, the source is very much Windows orientated andit becomes more and more less use to anyone not using Windows.
There is a section on dlls and interaction with COM. Why? The beginner wants to get something running and wants to link to the SDL or OpenGL libraries, not bother with their own - they want quick, simple and pretty.
Now, gentle reader, how many people think that they can master graphics programming maths? You know, 3D models, vectors, matrices - that sort of thing. Quite a few, yes? How many think that it can be covered in enough detail in 20 pages? Not a hope. The author should have used the pages for something more productive and had a line in about using something like "Beginning Math and Physics for Game Programming" - an entire book which uses the SDL and OpenGL, but covers the maths in a great deal more detail - and accuracy.
I could go on, but you get the picture. It's not a very good book. Given that one of the finest books on OpenGL (OpenGL Programming Guide, Vsn 2) runs to almost double the page count, covers everything in far higher detail and yet costs a shade under a tenner more (according to Amazon), it speaks volumes on what this book hopes to achieve.
Me, if the other half bought it as a present, I'd think she was having an affair and it was her way of telling me so.