SPHERO
UnityC#CinematicsTeam of 2

SPHERO

2026
← Back to Projects
Nominated For Award

SPHERO is a 3D adventure platformer where the player has the freedom to control how they want to platform. Most games give players the ability to experience a game through various routes. We take it a step further and allow the player to choose how each platforming action, such as jumping, wall jumping, dashing, and double jumping behaves. Each action can be set individually, allowing for an infinite number of combinations.

Skills I Used

  • C# Programming
  • Project Management
  • Shader Programming
  • Game Design
  • Level Design
  • 3D Modeling
  • 2D Art
  • Tech Art
  • UI Design
  • Usability
  • Narrative Design
  • Cinematic Design
  • Presentation Skills
  • Sound Implementation
  • Debugging

Tools I Used

  • Unity
  • Blender
  • Photoshop
  • ClickUp
  • GitHub
  • FMOD
  • Shader Graph
  • Visual Effect Graph
  • Substance 3D Painter
  • Premiere Pro
  • Large Language Models

Project Media

Official Trailer — The official reveal trailer for SPHERO.

Shape Changing Mechanic

In SPHERO, I created this unique shape changing mechanic. I allow the player to apply a shape to a platforming action, which alters how that platforming action behaves. Through this, I was able to create a freedom-driven game that each player can experience in a different way. Some players may prefer the fast-based movements of the rocket, while some may prefer the more controllable nature of the spring. It is up to the player to decide how they move in SPHERO.

Gameplay Demo — Gameplay footage demonstrating SPHERO

Custom Movement Controller

To allow for many different movement possibilities and have it interact correctly with outside influencers, I created a custom movement controller for the player in SPHERO. This gave me the ability to set the exact variables of how a movement performs, and allow those movements to work with moving or rotating platforms. As a result, almost any form/type of movement is possible in SPHERO.

Gameplay Demo — Gameplay footage demonstrating SPHERO

Interactive Grass Shader

To upgrade the visuals of SPHERO, I decided to implement an interactive grass shader. To achieve this, I used a compute shader that takes in mesh data and returns positions for grass blades. From there, I generate the blades through a custom HLSL shader where it is then rendered through cubic chunks placed around the game world. The bending interactions are achieved through sampling a mesh's UVs and painting, using a compute shader, onto a custom render texture that the grass references.

Grass Image — Image of the grass in SPHERO

Freedom-Driven Level Design

SPHERO centers around the mechanic of allowing the player to choose how they wish to platform in the game. As such, level design becomes a point of complexity, because it has to allow the player to platform using the shapes they choose. To achieve this, I tried to design levels in ways that allowed the user to use different combinations of shapes. Although the player can't complete levels using just any shapes, they can discover different combinations that work.

Level Design — Image of the level design in SPHERO

Custom Terrain Workflow

To create the terrain of SPHERO, I had to come up with a custom terrain workflow. My process to create SPHERO's custom terrain starts with a drawing of the terrain in question. Once I have the drawing, I can overlay it in Blender and turn its outline into a curve. From there, I fill the curve, remesh it, and shrinkwrap it to the original curve. Once I have the terrain plane, I can add cuts for different elevations, etrude the faces, and bevel the edges to achieve smooth effect. The result is a polished piece of custom terrain.

Terrain — Image of a planned terrain piece in SPHERO