WELCOME...

...to the personal blog of Kynan Pearson. You might know me from my work on the Metroid Prime Series, Donkey Kong Country Returns and Halo 4. This blog is here so I can share some of my design philosophies, dump some ideas and post some of my random art. These are all my views and do not represent those of my employer.

SubtractiveDesign@hotmail.com
https://twitter.com/KynanPearson

Tuesday, January 15, 2013

Guide to Making Metroidvania Style Games: Part 1

BEFORE WE GET STARTED


Metroidvania: A style of game (2D or 3D) which often features exploration based gameplay where a player controlled character gains new abilities that allow them to progress. These games are often action adventure titles with re-traversal elements. They include a growth system that unlocks meaningful upgrades that are required for game completion. The name Metroidvania comes from mixing Metroid and Castlevania though there are other games which use the same foundational design philosophies. These titles include all of the Zelda games, Shadow Complex and Cave Story. There is really no significant difference in game structure between a Zelda game and a Metroid or SotN style Castlevania.
The following series is intended for game makers who would like to take on the difficult task of creating a game within the Metroidvania genre. If you have never made a game before and are looking here for advice on how to make games I suggest you first get your feet wet by jumping into a tool such as Unity, Unreal Engine, Construct 2 or any other assortment game construction tools. You’ll need to know how to make games beforehand as I’m not going to teach you how to make games from scratch.
If you are still reading then I expect you already have the skillset required for game development and are looking for insight towards planning a game in the Metroidvania genre. This is going to be a multi-part series so if you don’t find what you are looking for right now I will probably get to it in the one of the next few parts.

METROIDVANIA 101

Planning a Metroidvania game can be a daunting task and there are a lot of pitfalls you can run into if you don’t plan correctly before starting development. The reason you don’t see a lot of Metroidvania style titles is that they don’t typically work if you are using a linear development model. A good Metroidvania game requires the developer to understand how all abilities and tools function before getting started making levels. (Note: You can still make a Metroidvania game without having all abilities implemented beforehand but it makes it highly likely you will be more limited in what you can do later without massive amounts of rework.) Not only do you want to have all of your player earnable abilities implemented, but you’ll also want to set up a string of test levels which simulate your progression and growth through the game (I will cover this in more detail later).
These are my personal philosophies and thoughts on Metroidvania development so don’t take this as a rigid planning model. Only you will know what you need to do and how to do it best so look at this as a guide and not law. Some of the most innovative decisions you can make require you to break the rules from time to time. The design strategies discussed here work for 2D or 3D games and any assortment of camera styles (side scrolling, overhead, first person, etc…).

GAMEPLAY SYSTEMS PLANNING

Before you start building levels you need to build the foundation of your game.

1.       Define the premise of your game is and what makes it unique.

a.       Is it 2D or 3D?
b.      How does the camera work? (Is it a side-scroller, overhead, player controlled, first person, third person, spline based, scripted, static, etc.)
c.       What does the player control? (A character, a vehicle, an object, etc.)
d.      What style is the game? (sci-fi, fantasy, realistic, cartoony, exaggerated, unique)
e.      What defines the game and makes it stand out to players? (mechanics, premise, look, story, characters)(you either want to do something unique and memorable or do something someone else has done better than they did it)

2.       Define the base player package properties. (What can the character do before acquiring any new abilities?)

a.       How does the character move? (Fly, walk, roll, slide, etc.)
b.      What does the character do to interact with the world? (Jump, shoot, slash, grab, kiss, fart, etc.)(The interactions in the game should support the premise and these standard interactions will define the character of the game. The can be original or derivative.)

3.       Define what abilities, weapons, tools, equipment that the character will obtain throughout the course of the game. These abilities can improve prior traits, they can stack on top of existing abilities, they can be equipped, and they can have limitations such as ammo. Most of all you want to define what differentiates each ability from others.

a.       How many unique ways can the character movement abilities upgrade? (Does it jump higher, fly, boost, run, crawl, roll, slide, swing, spin, swim, etc?) (All movement properties require limitations and unique mechanics. You don’t want one to invalidate all others.)
b.      How many unique ways can the character transform? (Does it change shape, become another character, alter its state, etc.)(Transformations can completely change a characters movement properties, collision and vulnerabilities.)(All transformations require limitations and unique mechanics. You don’t want one to invalidate all others.)
c.       How many unique ways can the character interactions grow? (Weapons, projectiles, magic, elemental damage types, contact, special abilities, etc.)(All interactions require limitations and unique mechanics. You don’t want one to invalidate all others.)
d.      If the character uses projectiles then how many different ways can they move? (do they arc, fly straight, dissipate over time, fire rapidly, come out from off screen, zigzag, bounce, reflect, stop things, blow up, etc.)
e.      How many unique ways does the character see the world and how do enemies see the character? (Visors, Visibility Options, Invisibility, Lights, Dimensions, Secrets, etc.) (All visibility options require limitations and unique mechanics. You don’t want one to invalidate all others.)
f.        How many unique hazards are in the game and can the player earn something that prevents them from being damaged by these hazards? (Suits, Charms, Armor, Forms, Hats, etc.)(To prevent or reduce damage from hazards such as Fire, Lava, Water, Enemies, Electricity, Space, etc.)
g.       How many special world altering abilities can the character gain or use? (Stop time, change gravity, teleport, fast travel, activate, etc.)
h.      Does the player have health or require fuel and ammunition that can expand or increase over time? (How much do players start with and how much is the maximum capacity they can carry?) 

Remember that abilities, tools and equipment can be implemented in different ways. They can be active, requiring the player to press a button or do a command to use. They can be passive, automatically doing what they need to when they need to. They can be equipped and unequipped by player choice. They can have limitations that prevent them from being used repeatedly or in certain areas. They can be used to interact with the environment, enemies or obstacles. They can have limited quantities or be one time use events.

SYSTEMS IMPLEMENTATION

Now that you’ve conceptually planned what you want to do with the main character and how they can grow it’s time to begin. Remember that a great Metroidvania game has nuances to how all of the mechanics work. The best mechanics are versatile with multiple uses. They create new gameplay opportunities and include limitations so that they can be implemented in configurations that create challenging moments for the player. This is the failing point for most attempts at making a Metroidvania game. The abilities you gain should all be unique and rewarding with detailed and polished mechanics. Now it’s time to create.
You should have a list compiled of the abilities you want to include that might look something like the one below.
Example Abilities List – I’m using simple and generic abilities in this example. Your list should hopefully be more creative and unique.
·         Default Abilities – Slash, Jump, Walk
·         Ability Upgrades – High Jump, Fire Projectile, Cat Transformation, Poison Suit, Night Vision, Reverse Gravity, Ice Slash, Run
The quantity of abilities that players can unlock is up to you. You can create as few or as many as you think you need to make your game. The list at this point is not ordered.
Ability Standards – you will need to have level construction standards that show the ranges your abilities can reach when used. This will help with level design and tuning. (Example: Default Jump Max Height: 2 Meters - High Jump Max Height: 5 Meters)(Illustrations and diagrams help with planning)

·         First build a proxy of the main character and setup the characters base movement properties. (you don’t need art or animations, all you need is a box to represent the collision) Make a small test level that is a reasonable approximation of a real play space in order to get the feel right. It doesn’t have to look good, but you’ll want it to “feel” good even if it’s ugly. (Build on a grid – don’t eyeball your measurements.)
·         Next you’ll want to implement all abilities that alter the way the character can move in the world. This is the most important part to finish as it will define all of the limitations and restrictions you will have in how you construct levels and what they will include.
·         Once all of your movement altering abilities are implemented and tuned so that they can work well with each other you can start blocking out a simple string of levels or rooms.

(At this point there doesn’t have to be any representation of enemy interaction but it would still be beneficial to start work on character interaction abilities. They will be used for interacting with the world as well)

PROGRESSION TESTING SEQUENCE

You have your mechanics implemented, so now you need to block out an expanded test environment to figure out a few things. You want to build your level assets so that they have standardized entry ways. (Use uniform sizes and build on a grid) This way you can move your level assets around and change the order in which they can be strung together.
The progression testing sequence is going to be a collection of rooms strung together one after another. This sequence will be used to figure out which abilities players will unlock and in what order.
Each room should accomplish the following goals.

1.       Allow players to enter the room and see a graphical representation of the ability they are going to unlock.
2.       Force players into a one way situation where they have no other option than to collect the item.
3.       Allow players to touch the item in order to acquire the new ability.
4.       Force players into a situation where they are required to use the ability in order to exit the room.
5.       Allow players to exit this room only after using the ability in order to enter the next room.

These rooms should be self-contained experiences. They shouldn’t be large rooms and they don’t need to look good. All of the information players need should be provided immediately in view in the default camera. This should represent the most generic use of the ability a player has just earned. The room and situation should be clear and easy to understand. The only thing in the room that needs to be fun is the very small section which requires the use of the new ability. (DO NOT TRY TO MAKE THE LAYOUT INTERESTING OR COMPLEX AT THIS POINT! This could cloud your judgment and distract you from your goals at the phase of development.)
Once you have blocked in all of the rooms which include all of the unlockable abilities, try to string them together in the order which you think you would enjoy earning them.
 
TESTING THE SEQUENCE

Now that you can test the sequence you will begin to see what the game can be like in compressed form. (You get a taste for the feel of the character at any given point in their growth sequence based on when you collect abilities.)

·         Could a player complete the entire sequence and get all abilities?
·         Did the order that the player earned the new abilities feel correct? Did anything stand out as out of order?
·         Where you able to prevent the player from progressing without acquiring the new ability?
·         Did the ability feel good when you used it in the room you created?
·         Did players get confused about how to use the ability or where to use the ability in the sequence?
·         Were players able to get turned around or progress through the sequence incorrectly?

As you answer the questions above start thinking about how to improve anything that needs improvement. If players are getting the cooler abilities too soon then try to rearrange the rooms and the orders in which they acquire them. If players are breaking the progression then try to fix the example or tune the mechanics to allow for a limitation. If players are confused then try to fix the room or the mechanics of the ability. If anything feels wrong or awkward then either fix it or replace it.
At this point it’s ok to fail with an idea because you haven’t started building the game yet. You need to get it right.
If everything functions and you can progress through the whole sequence of levels without a problem then you can move forward. If everything feels good and you are happy with the order of progression using the movement based abilities then it’s time to work on interaction abilities. Make sure you can activate any ability at any time using debug options. This will save you a lot of time.

WORLD, OBJECT AND ENEMY INTERACTION TESTING

Now that you know all of the ways the character can move it’s time to figure out the enemy and object interactions. Create another simple test environment to figure out your world and object interactions.
You will probably want to have:
·         Doors – These will separate your areas and are a great way to block off areas until the player has earned the right ability or item. (Special weapon, key, suit, items, etc. are required to unlock.) Create all door types in your test environment! Try to use a single standard door size with different looks that represent what the player should use in order to open them. Remember doors can:

o   Open and Shut repeatedly
o   Lock behind the player to force them to deal with a situation
o   Unlock based on a puzzle or defeating an enemy.
o   Require an ability, weapon or key to unlock.
o   Be used to mask loading or help with area transitions.

·         Destructibles – These are objects that can break, dissolve or disappear in order to allow players to progress or find hidden items.
·         Obstacles – These are things that can damage the player. You might be able to bypass them by using unlocked abilities. Each should serve a purpose and be tuned to be overcome with ease once the player has acquired the right tool.
·         Devices/Moving Objects – These are things that require the use of certain abilities in order to activate them. They will move the player from one point to another and should be required to be used in order for the player to reach a new location. (Zip lines, elevators, moving platforms, gears, pistons, power sources, etc.)
Remember that some of these things can and should be utilized before unlocking new abilities. Others should require abilities to use. Each ability the player has should have at least one interactive element that works well with it. (Or requires an ability to use it)

ENEMIES

Each enemy needs to be fun to engage with whatever default interactions the character has available. They can be hard to deal with but they should still be manageable. You should plan enough enemies to have at least one enemy, per ability, that is vulnerable to that ability or weapon. You should also have enemies that are fun to fight even when you have a maxed out character. It’s up to you to figure out what enemies work best for your game and the levels you include.
The enemies are there to reinforce the great feeling of character growth. They are an important part of the equation.

FINISH THE ABILITY TESTING SEQUENCE

Once you’ve completed at least one door type or obstacle that requires a new character interaction to bypass you can finalize the ability testing sequence.
You can now create new test rooms where players can unlock or earn abilities which allow them to interact with the world. You will add these rooms into the original test sequence you created. The goal is to fill in all of the doors and pace your interaction unlocks with your movement modifiers so that they go together nicely.
Most people will evenly place interactions (new weapon or attack) between movement upgrades so that the pacing is even. You might not want even pacing because a perfectly paced game is predictable. People can get bored with predictable.
Use your best judgment when pacing out where all of the abilities are located in the test sequence. At the end you should have a micro version of the entire game you will make. You should be able to enter each room, one after another, and unlock abilities which allow you to progress forward and unlock the door to the next room. There should be one room per obtainable ability with only one required interaction in order to progress. From here you will figure out the exact order that players should be required to earn abilities in order to progress on the critical path to completion.

 
Don’t worry about sequence breaking with these test levels. If you did your job correctly with the layout then shouldn’t be possible.
At this point you will know how the game plays and what the abilities do. You will know that you can prevent progress until a player earns and ability, item or weapon.  You should also know when you will unlock each ability and you will have a good feeling about that order. You will have an assortment of interactions and enemies to get you started. Your game is only as good as your mechanics and if the character doesn’t feel fun to control at this point then you need to work at it until it does.
You should now have a list which includes all finalized abilities and what order the player is intended to unlock them in order to progress through the game. Your finished progression list might look like this:

1.       Run
2.       High Jump
3.       Fire Projectile
4.       Poison Suit
5.       Cat Transform
6.       Ice Slash
7.       Night Vision
8.       Reverse Gravity

Up Next Level and World Planning!

TO BE CONTINUED IN PART 2!

(PART 2 will discuss how to plan your levels and world layouts! I will also discuss best practices when laying out a world so that you get the most out of the abilities the player unlocks. These will include the tricks that separate the good games from the bad. The most important part of a Metroidvania games levels is the core interaction loop.)

Here is a preview of the core interaction loop layout I will walk you through in part 2. Thanks.


5 comments:

  1. Very nice. I look forward to your further installments.

    ReplyDelete
  2. Really nice. Currently starting a project, and I can see now that careful planning and testing every ability is really important. Going to read the 2nd part.

    ReplyDelete
  3. Thanks for sharing this stuff, you rock!

    ReplyDelete
  4. Hi, I just want to say that this is a very good article!

    It's funny, but a lot of how I planned out the Hasslevania games (H2 in particular) coincide with your guide. For example, wearing different suits of armor influences your jump heights so making all the platform heights uniform was extremely important to set up beforehand. A regular jump wearing the default orange jumpsuit can clear 6 "bricks" high but wearing the heavier iron armor can only clear 4 of them.

    I'd like to invite you and anyone else reading this to please check out my screenshot map of the first Hasslevania game I made. Though it had some shortcomings I'm dealing with in its sequel, I was very proud of the overall level design as it was my first Metroidvania.

    You can check my website out for more info here. The H1 map is on the Hasslevania 1 section of course.

    http://dxfgames.com/

    Thanks again!
    Del_Duio, dxf games

    ReplyDelete