ADVENTURE BEAKS

Assemble an expedition party of elite penguin adventurers in Adventure Beaks, a 2D auto-running platformer featuring dynamic 3D artwork. Players explore ancient ruins and exotic lands while collecting artifacts, using responsive touch controls to run, jump, slide and dive through 50 levels, 16 bonus challenge levels and 150 side missions.

SUMMARY OF RESPONSIBILITIES

  • Developed core gameplay concept and design

  • Primary programmer for all game features

  • Collaborated with artists to develop the look of the game through custom shaders

  • Implemented Facebook and cloud save integration

  • Orchestrated UI setup and animation


DETAILED BREAKDOWN

When GameResort initially prototyped Adventure Beaks, we had recently shipped Stupid Zombies 2 and were eager to create a fresh IP. Prior to Stupid Zombies 2, we had released Probe the Humans, which had performed satisfactorily, overall. It’s difficult to accurately pinpoint why any game doesn’t find a broad audience; however, there were several lessons learned that helped us to develop the primary goals for our next project:

  • Ability to interact with prominently featured in-game characters.

  • Cleaner controls. The control scheme for Probe the Humans required players to drag their finger around the screen to collect items from the ground, resulting in two major issues; first, players’ hands and fingers would obstruct gameplay, and second, the controls weren’t quick or responsive enough. We wanted to develop a game with more of an internal rhythm, where the gameplay revolved around performing a sequence of actions with precise timing.

  • Dynamic gameplay featuring exploration, discovery and progression. Probe the Humans featured limited unlockable content, but it was inherently repetitive because the game was an endless runner. Adding more progression to our next free-to-play title could be better leveraged for IAP.

With these goals in mind, a logical choice was to develop a 2D platformer. In order to keep the controls simple enough for touch screen devices while still preserving a sense of rhythm, I decided that auto-running made the most logical sense. After iterating on a basic prototype and refining the controls, the team decided to move forward with the concept. The following sections include a breakdown of several unique and interesting features that I developed over the course of production.


LEVEL EDITOR

GameResort hired a designer at the beginning of production on Adventure Beaks, so early on, we reached a decision to make the game level-based. With this in mind, I designed a level editor that would aid in maintaining the core goals previously outlined.

The levels were tile-based, with basic square tiles for defining shapes and triangular tiles to create ramps. Tiles were developed with a single mesh per tile and assigned to a set. The set defined which mesh should be used for each space, based on whether or not the surrounding tiles were occupied.

Tile set. Images on the left show conditions for each tile.

Tile set. Images on the left show conditions for each tile.

I developed a basic tile painting tool that supported painting, erasing and filling. The user-friendly tool enabled the designer to quickly paint the type of tile in each space (either square or triangle), and the tile mesh was automatically chosen for each space algorithmically, based on the rules in the set. This also simplified the process of re-theming levels, whenever necessary.

Level editor asset showing different tile painting tools.

Level editor asset showing different tile painting tools.

Early on in the development process, I had the idea of preserving a sense of rhythm by keeping the player speed constant. By maintaining constant speed, any moving objects in the levels could be perfectly choreographed in the editor to create precise gameplay moments. Platforms, enemies and obstacles were assigned to paths and moved based on the player’s position in the level. To preview this, I added a scrubber to the level editor.

I also designed a tool to visualize the arc that a player would travel if they jumped, double jumped or dove in a level. This tool, when used in conjunction with the level scrubbing, allowed for visualizing the player’s position relative to moving objects at precise moments in a level.

Our level designer made excellent use of these tools, creating some truly ingenious levels. This quote from a Touch Arcade review of the game sums it up well:

“The level design is in fact some of the best I’ve seen in a platform runner so far, and one of the reasons I found myself returning to play this game over anything else.” - Lucy Ingram, Touch Arcade


SUIT UP

Two of the design goals for Adventure Beaks were to have more prominent characters and a better sense of progression. Levels were designed to feature multiple paths for replayability, and chests were hidden throughout the game and filled with cosmetic items for the penguin adventurers to wear.

All dressed up and nowhere to go.

All dressed up and nowhere to go.

I also created a rotating store of cosmetics, where players are able to spend coins earned in levels to acquire additional items.

In-game clothing store.

In-game clothing store.

Each piece of clothing was authored using an editor-only prefab that defined its attributes. I wrote a script that processed each of these into a runtime asset and created a Wardrobe library that referenced all of the clothing in the game.

Editor asset for the “Space Lurker Head” hat.

Editor asset for the “Space Lurker Head” hat.

Since each piece of clothing was skinned, this required removing the skeleton from the original clothing asset and cacheing the bone weights. This made it possible to skin each clothing asset to the penguin’s existing skeleton when applied in-game.

Another part of this process was to generate an atlas with an image of each clothing item for use in the store and fitting room. Post-processing was applied to add an outline for each clothing item.

Atlas with images of every clothing item in Adventure Beaks

Atlas with images of every clothing item in Adventure Beaks

The in-game chests were developed to choose clothing from a shared pool. Each chest opened offers players a single clothing item, and once a specific item is given from the pool, it won’t be given again. This allowed the chest content to be randomized, while still guaranteeing that a player who collects every chest in the game will accumulate a full set of clothing.

Chest contents were randomized because the game originally had a feature where players could view Facebook friends’ penguins and even use their friends’ adventurers if they ran out of lives. By randomizing the chest contents for each player, we could reduce the chance that two players would have similarly dressed penguins.

Chest contents list. Players had to collect all the clothing in a segment before moving to the next.

Chest contents list. Players had to collect all the clothing in a segment before moving to the next.

For the clothing store, each clothing type (including hats, shirts, accessories and skins) includes an asset that defines which pieces of clothing will be offered by the store, depending on how many items of that type the player has purchased. This is done by defining several milestones, with each milestone guaranteed to provide a certain amount of common, uncommon and rare items. Each milestone is also guaranteed to offer a certain number of duplicate items. Once players have purchased all items in a milestone, they progress to the next one. 

Hat milestone settings.

Hat milestone settings.


Wheel of Misfortune

Players also have the opportunity to spin the Bonus Wheel to earn additional items. Within every level, five letters that spell out “BONUS” are randomly placed throughout each section. If players collect all five, they get to spin the Bonus Wheel once the level is completed. The wheel consists of six slots, with each slot offering the chance to earn a unique item. Although the wheel appears to have a 1/6 chance to land on a given item, this is not the case, as some items are rarer than others. 

Where will it land? Only the game knows.

Where will it land? Only the game knows.

Using a finger, players flick the wheel to spin. How fast a player flicks the wheel determines how fast it will spin. A minimum velocity is enforced, to ensure that players are unable to simply position the wheel on their desired item. Once the wheel is in motion, it slowly decelerates to a stop, providing the illusion that the player has actually spun it. In reality, the position it will stop at is predetermined before a player even spins. This is achieved by determining where the wheel would land after a player spins it, based on the initial flick velocity and a constant deceleration. How far this position is from the intended item’s position is calculated, spinning the wheel at a constant velocity until it is in the correct position, before beginning to decelerate. The effect is simple, but fairly convincing in-game.

Previous
Previous

Tank Party

Next
Next

Stupid Zombies 3