Ribberto's Rolling Adventure

Role: Lead Programmer, Systems Designer

Genre: Collectathon / Adventure

Development Time: 4 months

Team Size: 9

Engine: Unity 2018

In Ribberto's Rolling Adventure, play as a frog chef named Ribberto and explore an open 3D world, collecting ingredients for a soup and using fast and momentum based movement to ride and stick to surfaces.

On this project, I was responsible for:

  • Managing a team of gameplay programmers

  • Collaborating with leads of other disciplines on game direction

  • Prototyping and implementing game systems

  • Implementing animations, VFX, and SFX in the game

  • Bug fixes


Reactive Environment

One of my main goals in creating Ribberto was to create a world that felt alive. Since the team didn't have enough time or manpower to create other characters to populate the world, I focused on making all of the objects in the world very reactive to the player. Levels contain destructible objects like pumpkins and crystals, which will explode in a burst of light when the player rolls into them. There are onions that can be pulled from the ground and trees that drop "zuccoinis" when the player rolls into them at speed. 

There is haptic feedback whenever the player interacts with anything "alive" in the game, and levels have moving pieces to give the impression that the world is dynamic. Ultimately, I wanted the player to feel like they weren't the only thing on-screen that could change, and so I made sure everything can change when the player interacts with it.

Unobtrusive UI

Since this is an adventure game where the player should be focused on exploring the world, I wanted to ensure that the UI provided all necessary information without distracting the player. There are two types of collectibles in the game, and each one has a separate counter. When Ribberto collects an item, the appropriate UI slides down from the top left corner of the screen, and then slides back off-screen after it is no longer needed. So, while the player is collecting zuccoinis or starmatoes, they can see how many they currently have, or if they approach a door that requires a certain number of starmatoes to unlock, the starmato count slides onto screen so they don't have to wonder how many they've collected. When the player has collected enough starmatoes to open a door, the starmato counter turns gold to indicate that they can do something with them.


Combining Systems

Ribberto is a very talented frog, so of course he has a lot of systems all working together to help him be the best. As the lead programmer, my job was to make sure that every system the boy needed could work without interrupting any other systems. So, he can roll up walls without it affecting his behavior while rolling on slopes underwater. He turns semi-transparent when the camera gets close to his model, and that behaves as expected no matter what animation state he is in. He plays VFX for running into things, changing speed, or picking up collectibles, and those can overlap as needed. SFX are triggered by physics interactions, often simultaneously, and none are forced to end early. It was chaos getting everything to cooperate. It was awesome.