The Making of Elephant Quest
The last few months have been a difficult but rewarding process. With the release of Elephant Quest I experienced what it was like to make a large-scale shooter/RPG hybrid. I enjoyed every minute of it. As a postmortem to the final project I wanted to share a few key aspects of the game and what it took to develop them for the final release.
Elephant Quest is a 45-room romp across five different worlds and facing 10 different enemies. The artwork is by the oh-so-talented Jimp and the programming and design is by myself. This game is a leveling-up-is-fun game mixed with simple shooting, and in-itself is simple but long in gameplay. Variances in terrain and enemies offer up a challenge to fight through stage-by-stage and grow more powerful by spending experience.
I started the process by understanding what I wanted to make. Yes, the Elephant plays the character but what does he do? The things I wanted to focus on was exploration, leveling up, and skills.
Exploration was a fun one. I started by creating a 48-level world map. I cut out index cards at various sizes and scaled each level appropriately onto a window.
After a bit of real-world fuddling I got this world into Flash, which allowed me to see what levels went together and not. Levels were replaced and placed again until they fit nicely in the world in the game. Doors were reconnected to levels based on where the player needed to go and how difficult it would be to get there. It was an important match up of level design, difficulty in completion, and aesthetic layout on the screen. By the end I eliminated 3 rooms completely, and ended up tweaking the heck out of the rest. Here is what the final version looks like to the player:
After level design and placement I went onto room theme and design. My artist Jimp worked with me on a palette of level styles which I could assign to the various quadrants of the world. I pretty much told him to do a few different climates and he delivered with an interesting group of level designs. Here’s what he offered up:
Down the list: Forest, Caves, Clouds, Ruins, and Grasslands.
After each area was assigned a theme I moved onto enemy and NPC (Non-Playable Character) design. Each player more or less has their choice of where to go and when to go there so I had to make sure it was a strict balancing act of difficulty. A player could rush through the game as fast as they could and gain 20 levels while a slow player could take their times and get to the last battle at 40 levels. I had to make sure there were paths that would cater to both styles of player. An overpowered player will receive less XP per enemy by the end but will continue to make it through levels quickly, while the rushing player will have a harder time at the end but will progress faster in level.
Non-playable characters were placed as final mini-quests to allow the player to level-up faster and gain more weapons. These quests are not mandatory but helped formulate the world and kept the game is a happy tone regardless of the constant laser battles and shooting. I tried really hard to make the quests super simple to follow yet entertaining and rewarding enough to be worth the hassle. Why there’s an elephant looking for 10 balloons is beyond me but it makes an easy path of quest-received to quest completed.
Leveling up was a whole other beast. I wanted to make leveling up bizarre. Inspired by Final Fantasy X’s sphere grid, I wanted a really interesting way of putting skill points into the game. As the player kills enemies they earn credits to spend on buckets of skill points. A bucket may contain Dexterity Points, Agility Points, and so on. These points get spent on skills within different categories such as running or weapon power.
There were 300+ ability point buckets placed on this giant map. Each ability point bucket was hand-placed in a way that different paths allow for expert reach of different categories. If you head left you’re more likely to earn a lot of intelligence while you’ll earn a lot of dexterity going right.
I basically took a highlighter to a massive paper map and then started moving it to code. In the end I regretted starting on paper as it was not easy to assign so many buckets within code.
Finally, the skills. Each skill has to tie into the game very carefully. The points need to seem worth it, so I adopted a list of 16 different skills I wanted in the game. By the end of the game most nearly all of them were either replaced, modified, or flat out rejected. Skills really depend on what you need when you need it in the game. A skill like “lockpicking” is not going to be incredibly beneficial for a game with only 6 locked doors, and a perk like “survival” doesn’t really mean much to the player without a long-winded explanation. Here is the original list of skills:
Working with Jimp on artwork is always a lot of fun. I trust Jimp a lot with his artwork and creativity so when it came to this game I gave some very light interpretation of the script. I wanted it to be a happy, not-dark game with a few enemies and interesting world design based on blocks. He delivered quite nicely.
I gave him a dimension of tile and he worked to fit that dimension. What this allowed me to do was easily create a surface in which the elephant could run and play on.
After much enemy, character, and UI testing, the game was complete. Granted this article was only a skim of the surface of the production process but overall it gives a glimpse of some of the work that went into the crucial parts of the game.
I think if there’s one thing I learned about from this project is that game size and game testing are exponential to each other. While it takes just a few minutes to add a new stage to the game it requires at least 3-4 go overs for at least an hour to make sure the level fits everywhere into the game. Multiply this by 45 levels and you’ll realize that this project is going to take a while. Something that started as a small little game suddenly became a huge timesink. Even things like rearranging the skill trees are a huge amount of time. A simple Dex bucket getting moved could mean the difference between higher jumping and feeble jumping for a few levels. It’s rather difficult to judge these things so simply but after a lot of effort it ends up working.
That’s it! I hope you enjoy(ed) Elephant Quest and the making of :).