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