Intermission
This book is already impressively long for how little I have to show for it. Getting dynamic shapes rendered to the screen is a huge milestone, but there is still such a long way to go that it's almost paralyzing to think about. My git commit history for both the book and the project are inconsistent at best, so it's hard to tell how long it's been since I started writing again - remember that I took an entire year off after starting chapter 2, before picking up again with section 2.2, in which I explained what a "game loop" is. If I had to make an educated guess, I'd say it's been about a month and a half since I started things back up, which puts me at about one (unedited) chapter every two weeks. Not bad.
Later in that chapter, I explained why progress on the book is so slow. Since then, I've definitely gotten into more of a "groove", and I try to write a little bit every day, whenever possible. I figure that if I have trouble sleeping anyway, I might as well use that time sitting in bed to do something productive. I know that's an unhealthy practice, but it has been working. My wife has absolutely no trouble getting to sleep - a skill of which I am envious - and doesn't seem to mind when I stay up typing.
It takes less time for me to implement the things I'm somewhat familiar with (such as the render feature abstraction) than it takes me to implement something I've never done before (such as building the shell of an iOS app in Objective-C). This may seem obvious, but it might give you a better idea of the relative pacing of the sections within each chapter.
In chapter 2, the only outputs from my application were an empty window and some logs, so I decided to include samples of the logs in order to convey how the application was behaving. In chapter 3, I transitioned from logs to screenshots, which seemed more appropriate once I actually had something visual to show. In chapter 4, still images were no longer sufficient to convey the dynamic changes of the images being drawn, so I started keeping animated GIFs alongside the text files for the book. I realize that I cannot print these GIFs into a physical book, and I'm not quite sure what to do about that yet. Perhaps dead trees and ink are not a suitable format for a development log after all.
I find myself comparing what I've written so far to other books in the technology genre, mostly in terms of word count (the text files are written in Markdown format, so I have no concept of page count yet). So far, I'm hovering around 50,000 words. The longest technology book I've read was about 300,000 words, and it literally took me years to finish it. Between my own time constraints and the density of information in the book, I moved through it slowly. Jason Gregory's Game Engine Architecture, Third Edition was as enjoyable to read as it was thorough, and I loved every bit of it. At the rate I'm going, this book is bound to be a few hundred thousand words as well, though it certainly won't be nearly as informative. Hopefully it doesn't take years for anyone to read through it.
The writing of this intermission began as the introduction for the next chapter, until I realized my ramblings had nothing to do with the topic. In the spirit of the book, I feel compelled to leave the words in the same chronological position. To make it less of a digression, I'll take this chunk out of the chapter and squeeze them into a small break between the chapters instead.