Making
Platforming Games
I’ve had quite a bit of interest from
people wanting to hear some advice on making side scrolling platforming games... So
I’ve taken some time to write up some of my thoughts on making a solid,
traditional, 2D or 3D side scrolling platformer.
It takes a lot of time and
effort to make something look and feel great. I’ve always loved platformers and
have tried to keep up with all of the most significant releases and the most
interesting independent ones. I still continue to play platforming games when
something big or unique comes along. I’m surprised how often I see games that
have tons of potential but just miss out on a few details that prevent them
from being legendary. I want there to be more definitive, iconic, polished and
memorable side scrollers, mostly because I want to play them and get swept
away.
I’ve decided to put together a quick
reference list of the things I try to thinking about when creating a side
scrolling platformer as well as the things I look for when playing them. Some
of these elements don’t apply to everything since the mechanics can be so
diverse between games. I’m pretty much going to talk about games that have run
and jump gameplay with additional systems here and there.
Don’t
Underestimate
It’s never easy to make a polished
game. Anything you plan to do is going to take 3-4 times longer and require
more effort than you will anticipate at first. You’ll get better at predicting
how long something takes to do with experience but even the most experienced
developers often make the mistake of underestimating the time and resources it
takes to make something polished.
Nothing is “a given” or trivial.
Everything matters. A 2D/3D side scroller can actually be harder to make than
other genres because every single screen requires unique configurations if you
are trying to make something solid and memorable. Making games takes work and making
great games requires even more. Experimentation takes time and it’s going to
take time to figure out what works. Even if you’ve made platforming games
before, each game has its own unique qualities. It does get easier with
experience and there are some general rules/philosophies that work in most
situations.
Broad
Appeal
In some ways it’s actually easier to
make a weird or quirky game. You can do
whatever you want and the mechanics can be as unique as you want them to be. If
you aren’t trying to make a game that has broad appeal then move on to the next
section. To be broadly appealing then a game should be accessible in gameplay
and even in visual theme. It’s really hard to be definitive, elegant and
iconic. That’s why there are so few platforming games that stand the test of
time.
Foundation
·
Your
camera is your game – The camera in a side scrolling
platformer is one of the most important parts.
o Your
camera needs to be stable and smooth.
o In
most solid platformers the camera shouldn’t keep the character in the center of
the screen.
o If
you have “falling to death” then the camera shouldn’t scroll down when a player
falls in a pit. The bottom of the screen should equal death if you want to make
it clear to players. It also shouldn’t move up when the player jumps unless the
character is going off of the top of the screen.
o You
should try lock your camera to a single axis so that it’s only moving left to
right or up and down in any given section of a level that players have control.
This means you will reduce the amount of camera shifting and keep a frame of
reference.
o Players
don’t feel confident when speed running or being reckless running at full speed
if the camera shifts around when they jump. It makes for a less consistent
experience and doesn’t feel as solid as some of the best platformers of all
time.
o Build
your levels to support a particular style of camera.
·
The
Jump Needs to Feel Great – The jump is everything! If the jump
doesn’t feel right then the game will suffer and more often than not fail. The Team
will try to come up with “band aid” features thinking the game needs more in
order to be fun. If your game isn’t fun just running and jumping then you
messed up and need to get that part right before moving on. (This is usually
the most significant problem in a platforming game that isn’t good) Here are a
few tips for making a jump feel good.
o If the jump is too floaty then it’s harder to
land on enemies and platforms reliably. This will cause players to miss time
their jumps and they will get impatient waiting for the character to come down.
o If
the jumps are too fast then players will tend to land in front of enemies or
platforms since they will jump early. This often results in characters that
jump into the sides of platforms on the way their way down.
o My
opinion is that a good jump is responsive, weighty and forgiving. It should go
up fast, have a little hang time and then drop pretty hard. (this is personal
preference and can change based on the type of character and game)
o If
you allow air control during a jump then test to see if players can recover
from a bad jump while in midair. If they almost never recover then you should
increase air control. If they recover even if they react very late in the jump
then you might have too much air control. It’s a balancing act.
o If
you don’t allow for air control after a jump then you need to build you levels
on a measured grid using very strict standards. Play a lot of Super Ghouls and
Ghosts.
o There
are 2 major styles of jumping to choose from.
§ Digital
– If you jump and let go of holding a direction on the dpad or stick then the
character stops on a dime and drops down without any inertia. This is really
precise and feels gamey.
§ Velocity Based
– This jump retains inertia in the air. If you jump while moving and let go of
holding a direction on the dpad or stick then the character will continue
moving without slowing down. Players will have to compensate against the
inertia to slow their movement. I personally prefer this method as it gives the
character a sense of weight. (play 2D Mario games for an example)
o Jumps
can be fixed so they always jump a consistent height or they can be controlled
so that the longer you hold the button the higher the character jumps. I
personally prefer the second method since it gives you the ability to add more
variety to levels in regards to jumping.
o Jumping
also can have forgiveness systems such as:
§ Ledge grab
– allow players to catch a ledge when impacting just below the edge.
§ Wall jump
– allow players to recover when hitting a wall just below an edge.
§ Allowing late jump
– allowing a short window of time where players can press jump and get a jump
even if they barely ran off a ledge.
§ Edge assistance
– Bump players up onto a platform they barely miss if they haven’t fallen below
the edge.
§ Sliding up
– allow players to wall skate up in order to slide up and over the edge of a
platform if they hit the wall just below the edge.
·
Run
Modifier – Running isn’t required to make a
great side scrolling platformer but it gives players a more layered experience.
Allowing players the ability to increase their speed through the use of a run
button or a mechanic is a major foundational element to some of the best
platformers of all time. This allows the game to be played in 2 completely
different ways. Players can play the
game in a controlled, easy and consistent manner by just moving through a level
by default. If a player can chose to increase their speed then you allow them
to enter a “risk vs. reward” scenario. They can jump farther and move faster
but the cost is that they will have less time to react to obstacles and enemies
as they come on screen. This means there is an increase in adrenaline when you
play by moving faster. This speed increase provides players the ability to feel
a greater sense of accomplishment when “flowing” through the level at high
speed. This will also make it easier to implement a time attack mode since
there will be a greater range of times between players who run and those who
proceed with caution.
·
Collision
– A platforming game is only as good as the
character, enemy and world collision and the interactions that contact
provides.
o Level
collision should be very clean and precise. The art should match the collision
as much as possible since this is what players see. Build your game around
standards.
o Players
don’t like to hit their head while jumping unless there is a reason to do so.
Don’t build low hanging areas that players will jump into unless you have a
mechanic that uses this. It’s frustrating to miss a jump because you bumped
into some collision hanging down over a ledge you were trying to jump to.
Especially if it’s because the developer thought it looked better and not
because there is a gameplay reason.
o Walls
and the edges of platforms should be totally flat so that if players jump into
them while grinding into them then they can slide up them without hitting their
head on some lip or overhang.
o You
always want to know when you are going to fall off of a ledge so try not to
round edges or get crazy with the art. This goes hand in hand with the
representation of the playable character. The characters art should match the
collision as closely as possible so that players know exactly when they will
fall when approaching and edge.
o Enemy
collision can make or break your experience. If you are coming down on an enemy
that you can “BOP” then you should get the “BOP”. If you are getting hit by the
enemy when it looks like you should be hitting them then you need to fix the
problem by implementing the damage or bounce state differently.
o Interacting
with enemies should feel consistent and predictable so don’t move their
collision around erratically or animate them outside of their collision bounds.
Those are the foundational elements
that I believe need to be right. Particle effects, Sound, Animation, Graphics
and the way things sort with one another are all incredibly important too. If
you do anything poorly then the game can suffer so just remember that there
might be more to fix when addressing a problem with the feel of the game.
Development
Tips
Now that we’ve covered the foundational
elements I wanted to just list out a few other helpful tips that don’t get into
as much detail. If you have any questions about the meaning of any of these or
need clarification then email me or leave a comment and I will try a give you a
response if I can. These are all my personal opinions and philosophies so don’t
worry if you don’t agree. I’m just trying to provide guidance if you don’t feel
you know what is right or wrong.
o Use Measured Jump Distances
– Don’t require maximum jump height or distance on any jump unless it is a jump
to an alt route or secret. You should always give a bit of buffer room in case
players jump early or late so that they still land comfortably. If they are
jumping up onto a ledge then they should come down onto it and not just barely
slide onto the top from below. This way they feel that they came down and
connected with the platform after a successful jump.
o If it is awkward then fix it –
If you make an interaction or a level sequence that feels awkward then you
should probably remove it and replace it with something that feels better. This
can be things like bumping a player before a jump or having them land in a
weird location. Play the game as if you are making mistakes and see where
you’ll end up. Taking the awkward moments out of your game makes the game feel
more polished and can be the difference between an ok game and a fantastic one.
It doesn’t take much to make people feel bad about the experience. It’s ok to reword
and redo something until it is right.
o Names Matter - What you call something when it is
being created defines it. A level called generic level 01 has less potential to
be good than one with a name like Laughing Bouncers. Words have power and they
define things. When you hear words describing something they will inspire
people to do more.
o Take the Easy Path
– There are things that are easy to do and there are things that are hard to
do. If something is hard
to do then it will take lots of time and generally be more difficult to change
or tweak. There is a good chance you can do something easy that gets you
similar if not superior results. Plus you can see the results more quickly and
refine/polish it with the extra time you have.
o Give it Character - Everything
you create is an opportunity to have character. A round creature is more interesting to bounce on
than an object more often than not. It doesn’t have to be alive to have
character but you want it to be memorable.
o Make it Memorable
- Every level should be
remembered and defined by a “single”
thing that stands out. This could be a gimmick type or a moment. If too
many ideas are used then you won’t remember any of them.
o You’ve got to keep em' Separated
- Background separation
is important. You should never be confused about what a playable area is and
what background elements are. If you can’t interact with it then it should be a
different color or brightness than what you can. If people try to jump onto
background elements thinking they are playable area then you have failed and
you should fix the problem.
o Landmarks
- Sometimes a really
slow moving landmark in the background is more memorable than lots of different
elements. Take Rygar for example. The most memorable level element in the game
is sun right in the middle of the screen at all times. One large ball of light
stands out in your memory more than any of the other background details. It
probably took less effort than other levels too.
o Good Ideas
- a good idea can be
reused multiple times. A bad idea makes you struggle thinking how to use it
more than once and work hard trying to implement it in the first place.
o Out of Sync
– Sometimes having elements (level obstacles) that are timed differently and
feel out of sync with each other make for more interesting gameplay sequences.
Imagine you have 3 pillars bobbing up and down. Even if they are all moving the
exact same heights you can change their timings to spice them up. A good
example would be having one completing its movement in 3 seconds, the next
completing its movement in 9 seconds and the last one completing its movement
in 6 seconds.
o Memorable Repetition – Sometimes
doing the same thing over and over and over again can be memorable so long as
it doesn’t happen all the time.
o Breaking Patterns –
A great technique for making a memorable sequence is to establish a gameplay
pattern and then break it when players begin to predict and expect it. (little
little big, little little big, medium big big big little)
o Everything Matters –
don’t ever use filler content. Every screen is an opportunity to do something
new. If you have a section of the level without anything interesting then put a
secret cubby there with hidden pickups.
o Secrets –
Use secret cubbies to hide things often and in obvious places. If you see
people accidentally bumping a wall when they play a level then put something
they will find there. You can set up situations to attract people’s attention.
o Split Paths
– If you have 2 different routes in a level make sure that the player can see
both at all times. It often sucks to
play a level that branches where you lose sight of your other choice. Some
people will be bothered and really want to go back and see what they missed.
This takes them out of the moment and disrupts the flow of the level. If they
can see both paths at the same time then they will be able to see if they missed
something of interest and aren’t forced to worry or stress about it. They can choose
to overlook it or move on.
o Motion Matters
– Moving things are more memorable than static things. You can create all kinds
of interesting configurations to play on using different movement patterns and
shapes. Try to keep things consistent and understandable in a level. You want
players to get into a rhythm of understanding. Using too many different
configurations of motion can end up being a random mess.
o Iconic –
Everything you make in your game can be memorable and recognizable. If you put
any item, enemy, object, level detail or character from your game on a shirt
would it be appealing? Could you tell which game it came from immediately? Does it surprise you? Does it have personality?
Do you remember it? Can you make it more interesting or funny?
o Don’t Band-Aid –
Super Mario Bros. was a good game with run, jump, and fireballs alone. If you
feel the need to create something completely new then look at your core
mechanics and see what could be improved.
o Interesting Pickups
– You can use pickups such as coins, rings, bananas, etc. in order to make
levels more interesting and keep players occupied. Collecting these pickups
should have a reason and provide a benefit to the player. If you give them too
many too often then they aren’t valuable. If you give them too few then they
are a frustration. You can use interesting configurations of moving pickups to
make a level more memorable. Pickups can move up and down, move on a path,
rotate, bounce, disappear, or any number of other things to differentiate one
group from another. You’re pickups don’t always have to be static in place.
o Pickups as a Guide –
You can sometimes use pickups to guide players to play in a certain way but you
don’t want to abuse this. If pickups always show the perfect route then you are
basically playing the game for players instead of letting them use their own
timing. You can guide players into secret locations or help them time a hard
jump by using pickups.
o Use a Definitive Idea
– Try to pick an idea for a level and stick to it. Jack and the Beanstalk is more
memorable than Jack and the 12 beanstalks attached to 3 buildings, a tower and
2 busses moving over a river covered in oil and burning. (Even if the second
version sounds more original to you!) People tend to forget levels that use too
many different ideas. You want to be able to say “it’s the (insert a memorable
word) level” when communicating with friends.
o Use Other Senses –
a level element can use other player senses in order to be interesting. You can
find interesting ways to use how players see something. You can mess with time,
gravity, music or any other number of elements in order to make something cool
and unique/
o Even Pacing isn’t always Good
– If something stays the same difficulty the whole time then it’s not
interesting. Mix up the difficulty to keep players interested and involved.
o Getting to the end is the reward and
not the challenge
- Difficulty should often ramp more like this: Easier, Hard, Medium. There
should always be some element that has a bit of challenge otherwise players
might not feel connected. Ease them into the unique mechanics of the level.
Challenge them in the middle giving them a hard situation to deal with and then
ease off and let them show off a bit towards the end.
o Restrictions Create Gameplay –
Often times preventing a player from doing a specific action can allow you to
create new gameplay sequences. For Example: Placing spikes on a low hanging
ceiling will kill players if they press jump. This means that you can now force
players to deal with a unique situation only using their movement. This means
you can mix up the gameplay from the standard style and provide interesting
challenges that require more specific movements.
I know there are
going to be certain games and certain situations where these tips won’t apply
or aren’t going to work. These are just a few of the things I try to think
about when making platformers. You are the only person who will know what is
best for your game. Let me know if you have found this interesting or useful
and feel free to ask questions if you’d like any more information.
I love platformers
and could talk about design philosophies related to them for hours. I have
plenty more to add to this but it’s already long enough. I personally find it
easier to talk about these elements than to write them down so I may end up
recording something with friends later.
Thanks for reading.