- Form vs. Function
I'm thinking about writing regularly about my experiences writing Amazing Contraption. This may start out as the first of a series of articles about the game, it's design, the writing, and the release of it. Or it may just be one very boring self-indulgence. We'll see.
Anyway the topic of today: Prioritizing functionality over design
Sometimes it's hard to make things work they way you want them to. Sometimes you cave and do it the easy way. Sometimes you stick it out. I have always believed that this is a major difference between things that are really good and things that kind of suck. Things that are good are made be people who though it out.
So I want to talk about an example of when I didn't tough it out in Fantastic Contraption and why I think I got away with it.
This is about wheels and sticks. If you want to understand what I'm talking about then go play Fantastic Contraption for a minute. It's free, suck it up.
So now that you are familiar with wheels and sticks you know that wheels spin when you attach a stick to them. But they don't, really. The wheel and the stick both turn in relation to each other. The wheel turns the stick just as much as the stick turns the wheel. So you could use the wheel to turn the stick! Bet you didn't think about that.
And it's a good thing you didn't think about that because when you try to use wheels to spin sticks the whole house of cards comes tumbling down.
See you could connect two, three, or three hundred sticks to one wheel. And not all of them can spin. Only one of them can. If more than one did then crazyness would ensue. Trust me it would, no they would not all just synchronously spin in happyness, what if you attached one stick to an anchor? Then the other ones would spin twice as fast! Not a good thing.
But what's the alternative? Pick a random stick and make that spin? What a suck solution.
It's also the solution I went with. When you attach more than one rod to a wheel only one of them torques against the wheel. The others just limply swing in the breeze. It took me forever to even try this solution because I thought it would be counter-intuitive and would drive people nuts. I naturally assumed that any break from real-world physics would be jarring. But I was completely wrong. No one notices. You didn't notice (yes, I know _you_ noticed, how clever you are, but did it hurt your gameplay experience?).
And I think noone notices because in our world wheels spin. Mabey there's a country out there where cars are chunks of metals wildly spinning around stationary rubber wheels. But in the rest of the world we expect the wheel to start spinning. We don't scrutinize the forces behind it. We just take for granted that wheels spin. So it doesn't matter what stick the wheel is attached to. The sticks are just supporting characters.
The lesson here is: think like a human. They take mental shortcuts and sometimes you can get away with taking the same shortcuts in your code.