I’ve changed a lot of files, and because this is a major change expected to break the game somewhat, I’m doing it in a new repository. I’ve been working on my laptop, so the next step is … download the new repository on my desktop machine and make sure everything compiles and runs and can upload a build to Steam. Except wait, we really should...
In the previous posting I said it “was a good place to stop for the night”. And I had decided to, but as sometimes happens, I changed my mind and worked for about another 45 minutes until I had solved the problem. I knew I had a problem in at least some DDS files. I checked the old version of Braid to narrow down one particular file causing a...
Here’s what I have done on Braid since the previous blog posting. It’s about a day’s worth of work, maybe a little more (it consists of a few sessions spread out over the weekend). In case you ever wanted to know what it’s like being an indie game developer … … Found and removed about 3kLOC more of unused source files. New source count: 78,127...
I am still puzzling through the right way to think about some ideas in compression, so let’s take a break from that and talk about generally cleaning up the source code. To ease the maintainability of the game going into the future, there are many things that could be done. I’ll detail some of those here. I just spent a few hours trying the most...
Previously, discussed the particle systems in Braid. They need to be generated differently from the way most games do it; this created more difficulty with regard to random number generation than games usually have. Back when Braid shipped, I had determined that a more-random seed would give me better behavior; so I got a more-random seed by...
This is a guest post by Fabian Giesen. Actually it’s an off-the-cuff email, so please tolerate that it may be a little sketchy. In the next post about working with Braid’s particle systems, I want to visit the idea of fast-forwarding LCGs. Fabian really ran with the idea here, and since I am going to summarize the idea in the next post, it felt...
The game Braid originally shipped to the world in 2008, and after some ports in 2009, I have only worked significantly with the code on a few occasions. But I want to maintain this game indefinitely into the future; in the back of my mind, there have always been some clean-ups that I have wanted to perform on the code. Often when shipping a game,...
(Here begins a comment written by John Carmack in 2014, about an email he sent to a programmers’ mailing list in 2007.) In the years since I wrote this, I have gotten much more bullish about pure functional programming, even in C/C++ where reasonable: (link) The real enemy addressed by inlining is unexpected dependency and mutation of state,...