1 of 1

CPSC 4160 / I Have to Get to the Top

Jonah Colestock

Game Description

I Have to Get to the Top is a 2D metroidvania climbing simulator where you play as a nameless protagonist aiming to climb to the top of a mountain. The game centers around difficult and punishing platforming, and players are expected to fall down and fail often during their climb. The intended audience of this game is players who enjoy a challenging and punishing experience.

The objective of the I Have to Get to the Top is to climb to the very top of the level. Players control the nameless protagonist across a plethora of challenging obstacles. When players inevitably fall down the level, they can find shortcuts to climb back up faster using abilities they’ve earned along the way.

Completing sections of the level, gaining new abilities, and mastering the movement of the character provides a rewarding experience that satisfies the player as the progress through the level’s hardships.

Game Mechanics

The gameplay revolves around tight 2D platforming, with different obstacles such as spikes that force the player back to their last safe ground. As the player progresses through the level, they gain new power ups that allow them to maneuver through obstacles in new ways.

The key power ups are dashing, where players launch forward through the air, double jumping, where players gain an extra vertical boost mid-air, and grappling, where players instantly zip to a grapple point in front of them.

The level design encourages players to experiment with their movement and figure out the full reaches of their mobility.

Technical Description

I Have to Get to the Top was developed in pygame, a barebones python-based game development engine. The game runs at a consistent 60 frames per second.

self.clock.tick(60) is use to set the framerate.

All visual elements were created by myself in MS Paint. Music tracks were also made by me in beepbox.co. Sound effects were either retrieved from freesound.org or made by me in sfxr.me.

The game’s graphics are simple and undeveloped, as my creative vision involved all elements of the game being my own and I am not a very artistic individual. I’m still kinda proud of the sprites and music, though.

Controls

Normal movement involves using A and D to move left and right, respectively. The spacebar is used to jump, and again to double jump once the ability is obtained. Left shift causes the player to dash, and the E button can grapple players forward.

Game Limitations

Future Work

Future iterations might more in-depth new-game-plus mechanics, player customization, and improved graphics. Different soundtracks could be made for different parts of the level, and I could improve sound effects by adding different walking sounds for different surfaces.

Integration controller support or allowing players to customize their control scheme would also be possible improvements to player experience.

Game objective

Game Screenshots

The game’s platforming challenges will force players to learn to dexterously manage each button and discover the unique ways to combine each key’s ability in sequences. All controls are displayed in the game’s start menu, and each ability’s new control is shown near the item itself.

First, the game’s visuals and audio were limited by my lack of artistic experience. Technically speaking, the game’s development greatly suffered through the use of pygame. My prior game development experience has been in far more sophisticated engines, and the lack of developer-friendly tools led me to be resourceful in using what I had available to me. I also couldn’t have been able to do everything I wanted to without reference to various online resources, namely DaFluffyPotato on YouTube.