top of page

Bo's Big Adventure

Student Team Game Project

Bo's Big Adventure is a 2D platformer, made in a custom C++ engine, where the player can toggle objects between different realities to create ways of moving through the environment.

Bo's Big Adventure: Welcome



Gameplay Programming

Player Controller and Object Behaviors

I created a player controller for a 2D platforming game including movement acceleration and wall jump mechanics. Along with this, I implemented jump memory (when a player presses jump just before landing, they will jump when they make contact with the ground) and coyote time (a player can jump for a short time after walking off a cliff) as quality of life improvements. I was also responsible for creating behaviors for bouncy mushrooms (jump pads), a moveable box, checkpoints, and an interactable particle system.


Tools Programming

Dear ImGui, Tiled, and JSON I/O

In this project, I created an editor using Dear ImGui, allowing the team more control of the project. The editor could create and edit game objects, add and play animations, switch to any levels, play sound effects, access cheats, and manage the two particle systems. Along with the ImGui editor, I helped create integration with the custom engine and Tiled, a program for designing 2D levels with a tileset. From this, our designers and artists could create levels easily in Tiled and have the data imported into the custom engine.


Particle Systems

Emitter and Interactable Reality Switch System

For Bo's Big Adventure, I created two separate particle management systems. The first of these systems was a standard particle emitter that allowed particles to be spawned from game objects according to different variables. The other particle system created was for the game's main mechanic, switching realities. I built a system that would replace objects in the other reality with a grid of particles. Then, I gave this grid of particles a repulsion from the player and a return-to-home behavior.


UI Programming and Input

For menus, I created a state machine that could be used in all menus for the project. Using this allowed easy implementation for the main and pause menus. I also worked on pausing simulation on all game objects during the pause menu by using separate game object lists depending on the state of the game. Input used SFML keys in the background, but I created an unordered map using std::string to help useability in the project. Keys had states for being up, down, just released, and just pressed.


Graphics Programming

DirectX 11

I created a graphics window and the ability to render game objects. Once those worked, I worked on several types of shaders, seamless tiling for terrain, instanced rendering, and GPU particles.

Bo's Big Adventure: Projects

Get in Touch


  • LinkedIn
Bo's Big Adventure: Contact
bottom of page