Swap Monsters

How do you build one cave that works for three characters with completely different movement abilities? I designed the route around switching between a dash, a glide, and a projectile, then built the systems that make those choices matter.

Swap Monsters cave level showing the character, switching meter, platforms, signs, and breakable crystals
RoleSolo game designer and gameplay programmer
DurationTwo-week, 30-hour virtual course
EngineGodot with GDScript
StatusPublished playable build
ProgramUrban Arts
ScopeOne complete cave level, three characters

Why I built it: I wanted to learn Godot by building and publishing a complete game. Although the course provided a starter framework, I cleared the existing game content and rebuilt the player systems, mechanics, and level around my own three-character concept.

Project context: Each student worked independently from the same Endless Access Moddable Platformer foundation. I replaced and customized the player systems and developed a new cave game with my own mechanics, route, progression, and character interactions.

Player Controls

Move
W, A, S, D
Jump
Spacebar
Use Ability
Left Shift
Switch Character
Left, Up, and Right Arrow Keys

Making every character feel necessary.

I wanted switching to be more than choosing a different sprite. Each character needed a movement or interaction ability that solved a different kind of obstacle. The level then had to introduce those abilities clearly and create reasons to combine them.

ExploreRead the obstacleChoose a characterSpend a switchUse the abilityRecover and continue

Three abilities, one shared route.

Bunny ability breakdown showing an air dash across gaps and up walls

Bunny: Air Dash

Crosses gaps and gains height along steep walls. The dash turns open space into a route instead of a dead end.

Owlet ability breakdown showing the glider slowing a fall

Owlet: Glide

Slows the fall while preserving horizontal momentum. This makes long gaps manageable when a dash would drop too quickly.

Dude ability breakdown showing an arrow breaking a crystal barrier

Dude: Projectile

Fires an arrow that breaks crystal obstacles. Dude creates access while Bunny and Owlet handle traversal.

See the three-character system in action.

This walkthrough shows the cave route, character switching, unique abilities, switching meter, breakable obstacles, and the playable level progression.

Seven working days from controller to published level.

01Character feel

Assembled the first animated character and added randomized footstep sounds.

02Controller

Removed the original player script and built a state-based controller with movement, jumping, attacks, wall interaction, and air movement.

03Switching

Added three characters and reset the air dash and double jump when switching.

04Abilities

Separated the dash, bow, and glide, then adjusted the camera so players could read the route at higher speed.

05Resource system

Added a four-stage switching meter, recharge behavior, breakable barriers, and meter-restoring crystals.

06Map planning

Sketched the cave route and planned where each ability would become useful.

07Build and ship

Assembled the planned level, added instructional signs and finishing details, and published the playable build.

Teaching through the route.

The cave introduces one problem at a time. Signs explain the immediate action, but the geometry does the real teaching: gaps ask for Bunny's dash, long drops ask for Owlet's glide, and crystal barriers ask for Dude's arrow. Later sections combine those ideas and make the player decide when switching is worth spending a meter segment.

Organizing movement, swapping, and interactions.

GDScript showing the physics process and character state switching

State and Movement

Character Controller

The controller routes movement through the active character state, applies shared physics, manages the switching meter, and hides ability-specific visuals when they are not active.

GDScript showing how Dude's arrow is instantiated and aimed

Ability System

Spawning the Arrow

Dude's ability instantiates a projectile, sets its direction from the player's facing direction, adds it to the scene, and positions it at the arrow marker.

Resource System

Four-stage Switching Meter

Each character swap costs one stage. The meter regenerates while the player is grounded, and breakable green crystals restore a stage. That turns switching from a free menu choice into a limited resource.

State MachineTimersCollisionsProjectilesSignals

Thirty minutes. One line.

The bow kept spawning arrows incorrectly. It took about 30 minutes to trace the problem to one line of code. Finding it took much longer than fixing it, but it reinforced why keeping the controller and ability states organized mattered.

Best Unique Character Abilities

My Urban Arts instructor selected the project for “Best Unique Character Abilities” and nominated me for the RIT Alumni Award based on my progress during the course.

“I'm probably proudest of how organized the code is and how smooth the swaps and abilities feel.”

What I learned: The biggest thing that clicked for me was scripting in Godot. Once I understood how different scripts interacted with each other, adding new mechanics became much easier.

What I would improve: With more time, I would test the level with players who had never seen it before and use their feedback to improve navigation, balance, and edge cases.

What I built and what I started with.

Built in Godot using the Endless Access Moddable Platformer starter framework. I replaced and customized the player systems, programmed the three-character switching and abilities, created the switching-meter and breakable-object mechanics, and designed the cave's route and progression. Visual and audio assets came from credited third-party sources, including CraftPix, itch.io asset creators, Endless Access Studio, and Pixabay.