So, cheating, what's up with that?
When we play a game, we only know what we see and hear and the bounds of our control. We test the boundaries, we see how things react, and if it makes sense (being consistent is usually a plus), we generally accept the world.
Cheating for me, as a developer, is recognizing how little players often see of the mechanics under the hood, and using that to your advantage.
It's all a facade!
Art is a place we've gotten pretty good at cheating. If players could use no_clip in Waking Mars, they would see how close to the edge of the screen the world turns to empty blackness. I used no more sprites than necessary. The parallax which I had a lot of fun designing levels around was also restrictive, and demanded a lot of precision, because I could make a stalactite look very close to the camera, but move the camera slightly further, and suddenly much of my sprite placement would look wrong or detached.
When I was learning level construction with Half-Life 2 Deathmatch I was fascinated to watch framerate as I ran around Valve's shipping HL2DM levels. Narrow corridors and smaller spaces had the same framerate as the big open areas! They knew they could add more detail to tiny narrow places, not only to even out the framerate, but also create more fidelity. The larger areas could have fewer details because there was a lot of stuff on-screen. Super cool trick, and I was none the wiser until I paid close attention to how even the framerate always was. (My own levels had very inconsistent framerates.)
I believe you should cheat with your gameplay and world mechanics.
Cheat wherever possible to create the feel you want. In my iOS game Dead End, zombies collide with each other but not the player. Which is weird if you think about it. But it's all about the system the player will experience. If zombies don't collide, they pile into insanely dense crowds. But if the player collides with zombies, you'll never get through Dead End's tiny world. I do slow you down when you're touching zombies, because I imagine your character pushing his way past, pulling their hands off of him. It's important to create the sensation, the experience, and it can be fun figuring out the simplest way to do so.
I don't have any complicated attack algorithm in Dead End, either. If your player's collision shape is touching a zombie, I start a timer. If that timer reaches a certain threshold and you're still touching the same zombie, ouch, you're hurt!
Know where to cheat.
The important thing is to know what resolution of anything you need to do. I'm finding that my current method of hurting the player in Dead End is a little more problematic on my iPad version of the game, where everything is bigger and it's more obvious that there's not zombie attack AI.
Let me jump!
In my manifesto on game development, I would place the movement of objects/oneself within the world to be a very important, if not the most important, element of interactive art. Movement is the most clear interactive power we have in games. This is why I am often bothered by blatant movement restrictions in player-character-driven games.
I will start off by acknowledging Dead End's own failure with movement. The game is played single screen, no environment scrolling, what you see is what you get, and your player cannot keep running even though there are no clear barriers at the edge of the screen. He just turns around. It's weird, I admit it. And it's poor world consistency. I also had a hard time with the both Dear Esther and Knights of the Old Republic. Why can't I step across a small 2-foot tall barrier to check out the wilds of some alien planet? The low barriers in KOTOR perhaps were intended so it felt as if I was very closely part of a larger world, but the lack of clear barriers made the invisible ones even more jarring when my character should be able to step over them.
In Mass Effect I wasn't bothered by the world boundaries, because they were tall, often over half my character's height. Meanwhile, with Dear Esther, movement being all I was given, I found myself "playing" it, wondering what were the movement boundaries of each location. Not an ideal way to play a contemplative piece, but I thought the point was about absorbing every visual detail, so I was often testing where I could move to. I was looking for every secret of this visual novel, and in the process becoming very aware of the restrictions on movement.
Cheat, but be smart about it.
Cutting corners is how you get ahead, it's about efficiency, and I love efficiency. But remember that the experience is always the most important thing. If we won't notice something, then do quick and dirty. In the end, you want me to feel something. I also have experiences I want you to feel. The mechanics need to serve that, and whether the internals are dirty or clean, months and years after you're done, will you care about anything but the game experience?
(For further reading [partial inspiration for this post], see Sophie Houlden's great post about using Unity versus an engine built from scratch.)
Randy is an indie developer/artist who shipped Waking Mars recently with Tiger Style Games and also makes his own games, namely his iOS masterpiece Dead End, which you should totally buy for a dollar! (It's getting a universal/iPad update soon!) Randy's new game made with a couple of friends, Total Toadz, is also awesome!
You can also follow his ramblings on twitter.