C:\Users\Kevin\Projects\The-Ascent>

Phaser 3 • Platformer • Grappling Movement

The Ascent

A platformer game made using Phaser 3, built around grappling as the main focal point of movement, traversal, world interaction, and boss mechanics.

project: cmpm 120 final group project engine: phaser 3 role: lead programmer

./project_summary

Project Overview

Concept

The Ascent is a browser-based platformer centered on grappling movement. The player uses movement, jumping, grappling, and world interaction to climb through the level and reach the final encounter.

My Role

My main role was lead programmer, covering movement, collision, world interaction, player state machines, grappling logic, and boss mechanics.

./gameplay_systems

Gameplay Systems

State Machines

  • Handled most player movement and interaction through state machines
  • Included running, jumping, grappling, kick-down actions, and related transitions
  • Used state logic for branch range checks and highlight behavior
  • Kept player behavior organized as mechanics expanded

Grappling

  • Created an invisible connection between the player and grapple hook
  • Added a visible rope-like restraint to communicate the grapple connection
  • Used minimum and maximum rope lengths for each grapple hook
  • Limited movement after grapple release until the player officially landed

World Interaction

  • Worked on player collision and level interaction
  • Implemented movement behavior around platforms, branches, and walls
  • Supported traversal logic for the climbing-focused level structure
  • Helped connect movement mechanics into the playable environment

Boss Mechanics

  • Built the Beetle Boss using a state machine
  • Made the boss chase the player while grounded
  • Added random movement behavior when the player was not grounded
  • Created falling object attacks and shell-break progression

./boss_fight

Boss Fight Logic

Beetle Behavior

The Beetle Boss reacts based on the player’s grounded state. When the player is grounded, the boss runs toward them. When the player is airborne, the boss uses more random movement.

Pressure Mechanic

After a set amount of time, the Beetle roars and causes objects to fall from the sky, discouraging the player from staying still on platforms above the boss.

Final Phase

The Beetle’s shell must be broken by outside boulders, then the player finishes the encounter by using a kick-down action on the boss.

./worked_well

What Worked Well

Movement

The grappling mechanics made the movement feel fun, interesting, and distinct from a basic platformer.

Team Contributions

The team did strong work on the art and level design, giving the mechanics a more complete game world to exist in.

Boss Design

The final boss included interesting effects, behavior logic, and a multi-step defeat condition that gave the game a stronger ending.

./potential_improvements

Potential Improvements

Frame Rate Behavior

  • The game could run differently depending on the computer
  • Time delta was attempted but did not fully solve the Phaser behavior
  • Some speed adjustments were made based on current frame rate
  • The solution helped, but was not a perfect fix

Jump Reset

  • The physics setup did not include a clean built-in jump reset
  • Jump reset behavior had to be handled manually
  • This caused occasional bugs and edge cases
  • Wall and block-side contact could create unintended reset behavior

./tech_stack

Technical Focus

Phaser 3 JavaScript Platformer Design Grappling Mechanics State Machines Collision Systems World Interaction Boss AI Browser Game Development Team Collaboration
Previous
Previous

Harmonia

Next
Next

Field Goal