One thing that I really enjoy about making games is how surprising it usually is. This is notably because code gets very complicated and only rarely does exactly what you were thinking it would do. Generally speaking, the response to this is to fix the code of course, so that it matches “the vision”, but often the “broken” code doesn’t actually break the game, and so you’re left with the question of why you should fix. Obviously you could adhere very strictly to what you intended, but you could also accept the new way that things are. People sometimes call this a “beature” (a bug that’s also a feature).
And it’s not just a matter of accepting some kind of poorly implemented version of things, it can definitely be the case that a misbehaving program can do what you wanted better than you’d been able to come up with yourself. This happened in Gurney, one of the games in the soon-to-be-released Mumble Indie Bungle. Fittingly, an aspect of Gurney is that as you slowly lose consciousness the game “glitches” to represent the dissolving of your reality. However, when I was playing the game, I noticed that toward the end-stages of the game it would start playing these really great soundscapes that absolutely seemed to capture a kind of panicky near-death sensation. It would loop different sound effects, building something evocative of an EKG machine, for instance, or build up textures of hissing.
Except it wasn’t set up to do that.
Instead, what seems to have been happening is that certain sounds were getting caught in a loop because the object that created the looping sound wasn’t being destroyed properly and so wasn’t canceling its loop. The proper code would never have had the soundscape, it would have been much tidier and cleaner. And much less evocative. So of course I left it in and it’s one of my favourite things about that game now, perhaps the most emotionally powerful aspect of it, even. So thanks, beature.
The other great thing about the beature, and it’s something I’m a strong proponent of, is that it’s a lot easier to just leave the bug in the code. After all, it means you don’t have to fix it. I’ve had some version of this in many, many of my games actually. For instance, there’s a “performance art” glitch in Art Game in which the entire population of the gallery may suddenly moonwalk out of there (through the walls). Left it in. Too hard to find, and kind of too cool not to be able to see. Thanks, beature.
In short, maybe it’s true that you should kill your darlings, but as a corollary you should also keep your little misshapen mutants around. They may know what they’re doing better than you do.