Level Design

Level design is an extremely important aspect of the game design as the levels are your direct line of communication with the player. As a designer, you may serve as the level designer for your team, so it is a good idea to build up your experience with it now.

In this lab, we ask you to use a level editor to design a level for a game called PyroKid. We understand that this game might be drastically different from your own game, but the point of the lab is to get in the level design mindset. Each of your own games will also have a level editor application, so this may also be a good chance to start thinking about how you want your level editor interface to look.

Note: This is a remake of the original flash game at http://www.kongregate.com/games/pyrokid_inc/pyrokid?acomplete=pyrokid/, which was created by a former student. The new version is an HTML5 port as Flash games are no longer supported. You are still welcome to play the original if you have a Flash emulator.


PyroKid and Level Design

Link to Game

Take some time to familiarize yourself with the game and some of the levels that have already been designed by the original team. After playing through several levels, take note of the levels you specifically enjoyed playing and what aspects of those levels made them better than others. If you don’t have time to solve all the levels but want to see the more complex level designs, you can watch a walkthrough of all the levels. However, this walkthrough is of the original game. The remake removes some features and levels of the old game.

Using the Level Editor

From the main menu screen, choose the Level Editor. You should see what looks like an empty level of PyroKid.

Here is what each button does:

[1] Start

Starts your level

[2] Download

Downloads your level as a .json file

[3] Upload

Uploads a .json level file into the editor

[4] Clump

Clump highlighted blocks into a single block

[5] Connect

Connect highlighted blocks with a metal connector

[6] Exit

Place an exit hole in the wall

[7] Bomb

Place the bombs that blow an exit hole in the wall when set on fire

[8] Clear

Clear the selected tile

[9] Crate Tile

Place wooden box tiles that burn up and disappear

[10] Lava Tile

Place lava tiles that stay ignited

[11] Dirt Tile

Place the standard dirt tiles, which do not catch on fire and are not affected by gravity

[12] Steel

Place metal tiles that are impervious to fire and fall if their connection breaks

[13] Lizard

Place salamander enemies that can catch fire without dying, but are killed by falling blocks

[14] Player

Set the player’s start location

[15] Spider

Place spider enemies that take one hit to kill, or killed by falling blocks

[16] Armored Spider

Place spider enemies that take two hits to kill, or immediately killed by falling blocks

The width [17] and height [18] buttons allow you to make the level smaller or larger. Use the arrow keys to move the camera if you increase the width or height.

The dirt tiles will clump together automatically, but for all other platform types, you will need to select Clump [4]. Then, click and drag to highlight the tiles you want to clump together.


Selecting the platforms (left) to clump them together (right)

To keep tiles from falling, switch from Clumping Objects mode to Connector Mode. All objects are affected by gravity except for dirt, so in order to keep from falling they must be connected to a dirt tile. Click and drag to highlight the tiles you want to connect. These connections will break if one of the connected platforms is destroyed by fire.


Selecting the platforms (left) to place the connectors (right)

To increase the size of the map, just change the numbers in the Map Width [17] and Map Height [18] boxes using the + and - buttons,and then click on the Width/Height button to apply the change in size.

Also note that the Arrow Keys pan the camera to move around the level


Lab Instructions

Now that you understand how to use the level editor, it is time to get started with the lab. You will be creating your own levels for PyroKid, but we want you do that in a methodical manner.

Create Some Design Goals

Before you actually create your level, you should first think about the player. Part of your goal as a level designer should be to present the player with a smooth progression of challenges both within a level and throughout the game. Some important questions you should consider while designing your level include:

  • Is this a tutorial level that teaches the basics?
  • Is this an intermediate level that challenges the player?
  • How does this level compare to the previous levels?
  • How should this level introduce new gameplay mechanics?
  • What kinds of frustrating elements should it avoid?
  • What happens if this level combines mechanics X and Y?
  • What kinds of chain reactions can the player set off?
  • What kinds of challenges do you enjoy in PyroKid?
  • What do you want to make the player do?
  • How do you want the player to solve to this challenge?
  • Where do you want to lead the player?
  • What kind of pace should this level have?
  • Are you able to beat this level in a reasonable amount of time?
  • Are you having fun?

As you think about these questions, try experimenting with different designs in the level editor. When you are ready, answer these questions in a text file, goals.txt, the first file you will submit for this lab.

Create Your Level

Use the level editor to design a level for PyroKid based on your design goals. This level should be creative and made completely by yourself. However, there are some guidelines you must follow while designing your level. A good level should be made up of several sub-challenges that prepare the player for a larger challenge that combines elements from the previous sub-challenges. In other words, it should make use of both the reinforcement and recombination of challenges, as shown in this example-level.txt.


Panel A requires the player to set the salamander on fire to clear a path


Panel B requires maneuvering around armored spiders on eternal flame tiles


Panel C reinforces both Panel A and Panel B in the BBA pattern


Panel D recombines A and B to set the salamander on fire without igniting the eternal flames.

Pyrokid is a platformer consisting of four different platform types and four different enemies, all of which react differently to fire and gravity. In designing your level, make sure you understand how these different elements interact with each other under different conditions. We will grade your level based on the following:

Sub-Challenge A

There should be an interesting combination of gameplay objects that challenges the player.
It should be more complex than a single enemy on a platform, but not so complex that your level takes more than five minutes to play.

Sub-Challenge B

There should be a separate combination of gameplay objects that challenges the player in a different way than Sub-Challenge A. For example, you might present the player with salamanders that set fire to connected platforms for Sub-Challenge A, and then fill pits with armored spiders for Sub-Challenge B.

Reinforcement

Each of the sub-challenges are repeated in some order that prepares the player for the final challenge. For example, you might use a pattern such as AABB, ABAB, or AABA when presenting the player with your sub-challenges.

Recombination

The final challenge combines sub-challenges A and B in an interesting way that results in an even greater challenge. Sticking with the earlier examples, a final challenge might be to ignite an eternal flame platform that causes a platform carrying a salamander to fall in line with another platform full of armored spiders. The player would then need to set fire to the salamander so that it can clear the path of all armored spiders.

When you are finished creating your level, press the Download button to save your level as level.json, the second file you will submit for this lab.

Playtest Your Level

Once you have finished your level and are satisfied with the placement of your gameplay objects, get at least three friends to play your level. Silently observe their actions and take notes on how they attempt to beat each challenge. Compare these notes to the design goals you wrote earlier and assess how well your level design met those goals.
Tell us how you tried to design your level, how your implemented design compared to your design goals, and what you would try to change in order to improve your design given the feedback from your playtesters. All of this should go in the last file you submit for this lab, review.txt.


Submission

Due: Thu, Feb 23 at 11:59 PM

You should create a zip file containing the following files:

  • goals.txt
    This is the text file containing your answers to the design goal questions.
  • level.json
    This is the text file of the level that you created and exported from the level editor.
  • review.txt
    This is the text file containing your playtest results and ideas for improvement.

Submit this zip file as lab4design.zip to CMS