Crashland Heroes

Crashland Heroes is an endless runner for android. The game seeks to merge the the fast paced action of an endless runner with the depth and intensity of an action-rpg.

Responsibilities:

    • Design Consultant – Worked with devs (mostly in the planning phases) to create game systems that worked well together and were enjoyable for the player. These included the game’s economy, basic movement mechanics, and level design. The development team lived in Portugal so work was shared entirely online. Because of this playable prototypes and image-based documentation worked best.

 



Prototyping

As endless runners with manual shooting did not exist at the time on mobile, I had to do some prototyping about how this could work. Below is a prototype testing out different weapon firing styles. To prevent tapping fatigue, it was decided that most weapons would work off a recharging energy meter that rewarded quick bursts of taps instead of constant prolonged tapping (tapping to shoot simply felt a lot better than automatic shooting). Weapon 7 below stood in contrast to this just to see how the opposite style would feel.

Click on the prototype window and press the listed keys on the keyboard to try it out:

Firing styles in prototype:

  • Semi-auto Rifle (4)- Shoots as fast as you can pull the trigger. The damage of each shot depends on how much energy is in reserve when it is fired
  • Rocket Launcher (5) – Slow to reload, but gives feedback to player regarding reload status. Designed to have a rhythm to firing and reloading
  • Burst Rifle (6) – Each shot fires a three round burst. Energy is removed in discreet chunks each time a burst is fired, and chunks must recharge fully before it can be fired again. Energy level does not influence damage in any way
  • Super Repeater (7) – Works opposite to previous weapons as experiment. Firing rapidly reduces accuracy, but increases damage. Could be a versatile weapon good for various situations

Design Contributions

Game Economy

My design for a game economy was based on traditional mobile game economies, and modified to better fit our game and its world. There was a basic currency (coins), a premium currency (gems), and a host of ‘special items’ that were obtained from defeating enemies. Players could purchase upgrades to make themselves stronger using either a combination of coins and special items, or by using a small number of gems. This model made the premium currency inherently more valuable, while allowing for lower currencies to still be important.

There were plans for three level themes to be in the game, each with different enemies. Using this, we could tune special items to have various drop rates in each area. This meant that smart players would know in order to get more of one item, they had to play in one area versus another, adding another layer of strategy to the game.

Level Design

Part of my role was figuring out how to strike a balance between authored and random content in regards to level design. Due to various restraints, it was decided to string together pre-constructed sets of enemies and obstacles to build levels at runtime. These could be created by hand, or procedurally generated in an editor based on certain restrictions. While some elements were the same each time a pattern was loaded, some things such as the contents of a breakable pot or the behavior of an enemy could be random within a certain range of options. This allowed for both fine control, as well as random interactions from within the same set of tools. Two example level chunks can be seen below


Final Thoughts

My time with Crashland Heroes was enjoyable, but difficult. The development team lived in Portugal, making both time and language major barriers. I discovered that using playable demos and image-based documentation I was able to communicate effectively, though my advice was still not always understood in the manner intended. the main downfall of the project was simply that the team wanted to make a game that was far bigger than their capabilities allowed, and much of my attempts to quell this were ignored.