Frequently Asked Questions
When I started the book I made a point of using a target system I had never worked on before, ever, that lead to a lot of headscratching and frankly some silly errors as I went through the process.
This was a deliberate choice I made, even if it made me look like a bit of a numpty at times. I wanted to go back to being a beginner, like the target audence I was reaching out to.
I also tried my very best to keep the code at the simplest level possible, so there are certain things that were done that make me cringe even now. Some of which I will correct in time. But the simple fact is when working with a machine you've never used before, there's a lot of things that won't work as you expect them, and its a great sense of achievement when you do get them to work, even if they work badly. So I like to try the simplest/worst approach possible, make sure I understand what is going on, then optimize and refine the code! However in the book I left out most of that optimize stage and it sure as hell ain't refined. But I got a massive thrill taking some of the "working" code and getting it to run 3x faster or in less memory, or by using a clever shader trick.
I am going to assume, (perhaps wrongly) that you also will get the same sense of joy and achievment out of that, which is why I've left a lot of my own discoveries out of the book. There are significantly better ways to handle the GPU, for example. Some C++11 systems and methods make life a lot easier. Why don't I use references in my code? Can I used a Linked List? How can I do normal mapping in my shader? Why not use a 2D renderer?
I could go on, but the simple answer to most of these issues, is that I left it for you to discover so you could get that sense of achievment yourself.
Now that being said, I will over time provide answers and code to most of these questions, most likely in the forums, but I suggest you don't go looking for the answers there yourself, at least not until you've thought about it and tried to answer them, even if you do it wrong. Making mistakes is the best way to learn the right ways to do things.
So this Page is going to be specifically for questions you ask, not all of which I will answer directly but I might hint at.
Just mail me with a question, or I'll take note of common ones in the forum and I'll post them here.