Today I'd like to talk a bit about the role of abstraction in game design. I often try to abstract what I see when I'm playing, as I think it's a valuable skill to practice if you're starting to make games or creating something new.
Abstracting helps you recognize the forces at play and see the bigger picture. If you perceive a game and its elements only in concrete terms, you can miss out on what makes them work or what makes them engaging. Concrete is specific, abstract is universal.
By stripping a game's elements out of their presentation layer, turning it all into boxes, gears and patterns of change, you'll be able to better visualize the mechanics at work, what solutions are they for, or what challenges they present. It may be second nature to most game designers out there, but I often find the idea to be new to people who want to design games but don't know how to start, and even to folks who are already knee-deep in the industry.
Eliminate threats, open door
Take, for instance, that common Zelda scenario where you must kill every enemy in a room, then the classic tune plays and the door opens. Strangely enough, in most levels of Uncharted your partner serves this exact same purpose.
In Uncharted 2: Among Thieves (haven't played the others), the battle sections will often end in some kind of obstacle that requires both characters to work together in order to advance, like a high wall or some heavy contraption that needs to be operated by two people.
As it happens, your sidekick will only go there and give you a hand after every last enemy have been neutralized, as she's usually busy fighting the bad guys at your side (another one of her awesome functions). Kill everyone, and your partner will proceed to help you climb the wall or spin the wheel, opening the "door" to the next section.
The thing is: the high wall wasn't put there just because it's how streets look like in Nepal, but because, as in Zelda, something needed to force the player into completing that battle. Not in a tune plus magic door kind of way, but as something that fits well in Uncharted's context, like a fellow adventurer kicking a hanging ladder down. Same mechanism, different presentations.
The Player's Journey
We can see an abstraction as a pattern, a trope or a LEGO block of game design, be it an already popular one (like XP, risk-reward, match-3, score, boss battle, mana, capture the flag, quest, currency, completionism) or one that you see in a single game, name it the "happymaker" and start saying it will be the next big thing. They are archetypes of interaction, interchangeable from one game to another, more or less in the same way as we have the recurring figures of the Hero, the Mentor, the Herald, the Call for Adventure, the Ordeal and so on in traditional storytelling.
Thinking in abstract terms helps you shape the experience by coming up with features inside-out, from their gameplay value to their thematic appearence and behavior. Thematic-wise, a "key" could be a computer, a prisoner, a magic flute, a voodoo doll or a partner, as long as you get it and you gain access to a locked area. A power-up could come as a dinosaur. A level-up could be a merchant. A racing game may in fact be a bullet-hell, a fighting game or a roguelike. Money could be score or currency, depending on whether you're accumulating and comparing, or trading it for stuff.
As with the Hero's Journey in storytelling too, this helps in identifying the flaws of a game's design and fixing something that doesn't feel right, to then get the presentation layer to work well alongside that.
Borrowing to make anew
This is my latest take on Flappy Bird (hey, I really do like Flappy Bird's design, sue me). It's a prototype called Blip. In Blip, you have to press the pink button to play a sound, and press it again the exact moment the sound stops completely.
There's no sign of pipes or birds, but it was created as a simplification of Dong Nguyen's game's main dynamic of flapping against gravity. As in, you're constantly approaching failure, and you have to touch just in time to release the tension for a little while, which earns you one point. Press too early or too late, and you won't make the gap.
TinyHack is a very cool game rooted in abstraction. It's a very traditional dungeon crawler presented in 9x9 pixels, in which the hero is a white dot, enemies are dark red, keys are yellow and the health bar is a single pixel that changes color as you get hit. The website comes complete with a random title, story and cover art each time you play, adding fantasy to the adventure in Atari fashion.
Back when TinyHack launched in 2011, it inspired me and my friend Rodrigo Tjäder to make Versii, a 9x9 game that we planned as a series of minimalist competitive minigames, drawn at random each new round. In the only minigame we got to implement, a Jedi duel, the Jedis were white dots and their swords were red and blue pixels. You can play it in this dirty .zip if you feel like.
As ugly as it was, people had lots of fun playing it. It had Star Wars sounds to help convey the theme, and as soon as you put your hand on Versii there was no doubt about what were the dots or how to play it. The duel experience was all there.
Last year, I partnered up with my colleague Cauã Silva to remake Versii for the 3rd GBJam and the Local Multiplayer Jam. I rewrote it in Lua while Cauã made slick art and animations to forge a new face for the game, one that in the end had little to do with Star Wars (even though the original sounds were still there). We called it Micro Lightsaber Fight.
I like to think we managed to borrow the intense hypothetical experience of having a lightsaber fight, instead of heading straight for the presentation layer and running the risk of missing the point. God knows where we'd have stopped, with all the swings up and down and jumps and deflecting incoming blaster shots and wookies and what have you.
Think abstractly, act locally
Bear in mind I'm not arguing that this is the 'right' way to approach game design, I don't think there's such a thing. I like to see my games as boxes and circles interacting in meaningful ways, ways that can provide fun, because it really helps me keeping things small and not devolving into feature creep. That's specially valid when working with small teams or designing for platforms with heavy constraints.
Of course, in the history of videogames, art and narrative have often led the path to amazing results: Journey, Kentucky Route Zero, Gone Home and the Metal Gear Solid series are great examples of that.
But sometimes, you see a game that just feels like it was made upside-down: An enemy with a shield when the player doesn't have a clear way of overcoming shields. Several cool weapons that work essentially in the same way, or that don't feel like they belong in the same game. That huge fire-breathing dragon that looks fantastic but it's a dull boss that doesn't fit with all you learned during the adventure. A rip-off of a game that thinks it's copying everything that made the original a success, but misses the point completely and end up being shit. You know the feel.
Learning to abstract, to see the naked patterns instead of their fully-clothed counterparts, is a great tool to understand and create game systems. The more you get used to it, the more you start to recognize similarities in completely different games and even different media. Which, in turn, helps you craft new experiences by mixing elements that you have already seen at play elsewhere, borrowing solutions from unexpected places, and coming up with some new bricks of your own to fill in the voids.
See you next time!