The Ascent

A Platformer game made using Phaser 3, using grappling as a main focal point of movement.

Playable Link

GitHub Source Code Link

 

The Ascent was a Final Group Project for school. This game was a collaboration between Kevin Lewis, Elijah Rossman, and Kristopher Yu. My main role was Lead Programmer which included, Movement, Collision, World Interaction, State Machines, and Boss Mechanics.

  • Gameplay

    State Machines - Almost all of the movement and interaction from the player is handled through a state machine. This includes running, jumping, grappling, kicking down, etc. The logic in that checks if the branch is within range and should be highlighted is also using a state machine.

    Grappling - The grappling creates an invisible string connecting the player and the grapple hook, then a brown restraint is added to simulate a rope from the grapple. When releasing the grapple, you are not allowed to move or jump until officially landing on the ground. For every grapple hook, there is a minimum and maximum length that the rope can be, so that it is able to function correctly.

    Boss Fight - The Beetle Boss was made using a state machine as well. When the player is grounded, the Beetle will always run towards the player, else the Beetle will move randomly. After a certain amount of time, the Beetle will roar and cause objects to fall from the sky to try and limit players just standing still on the platforms above the Beetle. The Beetle must be hit a total of two times by the outside boulders in order to break the shell. Once the shell is broken, the player must kick down on the Beetle and the game will be over.

  • Worked Well

    Fun and Interesting movement thanks to the grappling mechanics.

    My teammates did an excellent job with creating both art and level design.

    Final Boss has pretty cool effects and logic.

  • Potential Improvements

    Game runs differently based on the computer it is being played on. Even though Time.delta was attempted, it never ended up working for Phaser, but I was able to somewhat fix the problem by changing the speeds based on current framerates. Not a perfect fix, but it definitely was better than nothing.

    There was no reset jump built into the physics we were using, so the jump reset is done manually in a very roundabout way, which causes jump resets to be very buggy at times. Along the same lines, there was a point where you could basically multi-jump by landing on the walls since the walls are a collection of single blocks and landing on the side would reset the jump. This was kinda fixed, but still not perfect.

Previous
Previous

Harmonia

Next
Next

Royal Dash