Don't keep it simple when programming?

When I play Rise: Race the Future (a car game), I crash into the artificial "walls" beside the road in the exact same way every time (no matter in which angle I run into it, the car gets stuck with the nose towards the wall). They could have created more ways to physically interact with these walls but they made it simple by making them all work the same everywhere. Creating a game is a bit like being a God, you decide the physical rules, create a world that follows them and let things start living in it. But being a God isn't easy! For every new concept you add to your game its complexity increases logarithmically, because one thing can affect another, that can affect a third thing, and in the end so many things can affect each other in so many different combinations that the number of possible things to do in your game get close to infinite. No programmer can keep track of an infinite amount of possible events, so then you're forced to accept there will be glitches and loopholes caused by imperfect code that you, the game's God, may never know about. Or, you just "keep it simple" and reduce the number of concepts, and by that also reduce the number of possible things to do in the game, so you're able (or, are more likely to be able) to keep track of all possible outcomes of the user's interaction, so you easier can find, understand and fix bugs, so you can create something stable and predictable. Fewer things = fewer problems! But isn't problems exactly what you want when you make art? Because stability, predictability and perfection can't be what we want, right? I at least know that I want more ways to crash into the walls in Rise: Race the Future, and if that's a problem, then I want problems.

Golden emails