Programming is a cruel mistress.
I've always been especially fond of the way that you can leave a project alone for two days, run a build, and then discover that 15 things that previously worked fine have gone completely tits up. This was my quandry today when I found that doors stopped you jumping, and that out of hundreds of objects being loaded, one identical object with no interesting features caused a crash.
Coding real-time applications is a lot more tricky than transactional or request/response applications, especially when logging brings with it a large performance hit. Compared to enterprise-grade content management, games programming has fewer distinct systems and thus interfaces to deal with, but is a lot more difficult to make transparent.
One day I'll get around to writing a paper on visualised IDEs, that represent objects and datatypes as 3D shapes, and invocations as lines between the shapes.
In other news, I've got a right earache.