This is Game Maker's Toolkit, I'm Mark Brown.
If there's one game I've played more than any other, it's Spelunky - a viciously hard
platformer that takes the side-scrolling thrills of games like Mario and Castlevania, but snatches
away your ability to learn the level layouts and enemy spawns by mixing up the map, every
time you die.
But what makes Spelunky so special is that even though the levels are randomly cobbled
together, they're always fair and enjoyable. Even after 1000 runs, I've never stumbled
upon a crappy level.
They just don't feel like the product of an algorithm - which, in some games, spits out
levels that are messy and unfocused and full of dead ends. In Spelunky, these procedurally
made stages are as sharp and satisfying as the levels in some hand-crafted games.
And that's because creator Derek Yu struck the perfect balance between random and authored
content.
He explains how he pulled it off in his new book, titled Spelunky, which I highly recommend
to anyone interested in design. But, while you're waiting for it to come in the post, I'm going to use
some info in the book to explain how a Spelunky level is half generated, and half designed.
And then we'll look at why it was so important for the game to have an infinite supply of
unique levels.
Though, first, we need to go back to where it all began - because while you might think
of Spelunky as looking like this, it actually started life as a free, pixel art game, now
named Spelunky Classic.
So, every level in Spelunky is generated by a script that starts with the same basic shape
and size: 16 rooms in a boxy 4 by 4 grid.
The first thing the script does is pick a random room from the top row, and makes this
the entrance.
It will then randomly place a room to the left, right, or beneath this room. This process
is repeated from room to room - and if the path hits the edge of the level, it also goes
down - until we get to the lowest level; when it tries to go down once more, an exit is
made.
Every room on this main path has openings to the left and right, but rooms where the
path drops also have exits on the bottom, while the rooms you drop into are given exits
at the top.
What you end up with is a guaranteed path through the level that you'll always be able
to get through without using ropes or bombs. The other rooms are not on the critical path,
so they may be open, or they may be walled off depending on their design.
Next, each room is randomly given a template. Derek Yu hand crafted a number of room designs,
with different layouts for rooms where you drop down, rooms you land in, corridors you
run through, and rooms not on the critical path.
But these templates are not set in stone, and parts of them are randomly generated.
Sometimes entire chunks of tiles are plastered on at random. This means that while you might
start to see familiar set-ups, they will always have their own unique quirks.
Next, a script checks every tile on the map and rolls a dice to see if it should place
down a monster, some treasure, or another object. Again, it's not entirely random - gems
and crates are more likely to appear in spaces surrounded by walls, and enemies generally don't spawn
in cramped spaces. And everything is weighted, so a level isn't filled with fire frogs or
crates containing jetpacks.
Describing his level-making algorithm, Derek Yu says "This system doesn’t create the
most natural-looking caves ever, and players will quickly begin to recognize certain repeating
landmarks and perhaps even sense that the levels are generated on a grid. But with enough
templates and random mutations, there’s still plenty of variability. More importantly,
it creates fun and engaging levels that the player can’t easily get stuck in, something
much more valuable than realism when it comes to making an immersive experience.”
There's still more to a Spelunky level, of course. Those rooms not on the critical path
can contain golden idols that set off a boulder trap, or a sacrificial altar where you can
trade bodies for helpful items.
A room can also be a shop where you can buy, or steal items. “The difficulty of buying
all the items you want and the consequence to your score" - your final score is based
on how much loot you found - "creates a strong temptation to steal from the shop", says Yu.
If you do pilfer an item, the shopkeeper will not only try and kill you with his shotgun,
but his buddies will appear at the end of every level for that run, and attack you in
a mad, unpredictable fury.
Every level also has a damsel in distress, which gives you one extra health point.
While the health pick-ups in other games - be it a mushroom or a turkey leg or a pizza - are
activated immediately, Spelunky makes you carry the damsel to the exit, leading to tricky
moments where you have to lug multiple items through an unpredictable maze.
And finally, there's the ghost. Stick around in one level for too long and a spectre will
appear and instantly kill you if it touches you.
All of these additions, which are highly authored, but scattered about the procedurally generated
worlds, are about making choices and weighing up your options. Derek Yu says "I wanted to
force [the player] to make difficult decisions and experience both the satisfaction of choosing
correctly and the regret of choosing poorly".
So do you sacrifice your score by spending money on the shop? Or do you just rob it and
deal with the consequences? Do you risk throwing a damsel down here, or leave your shotgun
behind? Do you grab the golden idol, and risk getting smushed by a boulder? And can you
collect these gems before the ghost appears?
Those decisions would be far less interesting to make if you had already played the level
before and knew the right path to take or could predict the exact outcome of snatching
a golden idol. But because you never know how the stage will be laid out, the game forces
you to read the situation and make a plan, before watching it all go hideously wrong.
And that's all the more painful when you know you'll be sent back to the very start of the
game, now with all new levels to tackle. The stakes in this game are super high.
Plus, not allowing you to master the stages means you'll need to master the mechanics
instead. You'll need to understand the quirky physics of your jump and the tiny reach of
your whip. You need to learn the unique properties of each enemy, so you can to predict what
will happen when you enter their domain. And you have to learn about the items, and the
secrets, and the tricks that will keep you alive for longer.
So Spelunky proves that an algorithm doesn't necessarily lead to soulless levels - balancing
authored and random content can lead to levels that are satisfying to play. And by removing
the ability to learn levels - either after you die or on your second or 1000th playthrough - this
game encourages you to learn the underlying mechanics, and makes you read the situation
carefully before making those very difficult decisions.
Thank you so much for watching!
Spelunky is one of my favourite games of all time so it's great to be able to dig into
just one aspect of what makes it so special.
I will no doubt come back to the other bits - like the emergent gameplay and the crazy
secrets - in future videos
if you would like to help this show please consider subscribing on YouTube to get new
episodes delivered directly to your inbox, or even pitch in a few dollars per episode over on Patreon.
just like these top tier subscribers have done