ASCENDERS

Ascenders is a 2D platformer where the character auto-runs, reversing on walls upon contact, and the player must take advantage of their environment to progress up a tall vertical stage. Moves like jumps, rolls, dives, and divekicks all interact with the terrain in unique ways enabling players to experiment with their movement toolkit. Camera follows character using unqiue node-based teqnique allowing for control over camera constraints and position.

Solo Project Software: Game Maker Studio 2, Paint.NET, Audacity Roles: Game Designer, Artist, Programmer, Level Designer Unique Systems: Camera-Node system, Movement System

PROCESS & DETAILS

Wanting to up my programming and design skills and make a unique movement system, I began re-using a simple platformer code I had written. I began thinking and landed on the idea of the action always moving regardless of player input. By forcing the character to run automatically it makes the player think on the fly and make quick descisions with no time to stop and take things slow. These design descsions revolving around quick descision making, reaction, and contant flow of action felt core to where my enjoyment of video games lies.

I kept the auto-running behaviour, disabled left and right input, and made horizontal collision with walls reverse the charcater's speed and direction. If I placed this character in a traditional horizontal platforming stage, it wouldn't make good use of the wall dependant movement mechanics. I decided on designing a tall vertical stage with a mix of vertical and horizontal platforming challenges. With that settled, I brainstormed, designed, and developed various vertical movement options to compliment the horizontal movement in the vertcial space.

As the environment and level design dictate the way players interact with the game, I placed a strong emphasis on the presentation and framing of the level. To do this I thought of ways to frame the action to focus directly on a chunk of the level to ensure players get a clear view of the space for them to work off of. To achieve this, I experimented with various camera systems through sketching and scripting. What I settled on was a node-based camera system with a high degree of control over framing and camera positioning.

MECHANICS DESIGN

[ GROUND MOVEMENT ]

Upon horizontal collision with a wall while grounded, the character's movement direction reverses. Requires players to plan out and be intentional with character movement and alignment.

[ WALL SLIDE ]

Upon horizontal collision with a wall while in air, the character will cling and slide down the surface. Allows the player to both have precise control over the character's vertical position and to reverse the character's movement direction upon reaching the ground.

[ WALL JUMP ]

when pressing the jump button in wall slide state, the character jumps off the wall, reversing the movement direction. Gives player agency over when they want the character to detatch from the wall as well as a vertical boost in the opposite direction.

[ ROLL ]

When the action button is pressed while grounded, the character performs a roll that locks character input until they uncurl. This move is used to break obstacles and can also bypass a wall slide by rolling off a platform into a wall, instantly reversing the character's direction. Skillful use rewards players with access to hidden obstacles, alternate routes, and secrets, while the risk is committing to the roll which you can’t jump out of until the timer ends, making hazards and falls more dangerous.

[ AIR DIVE ]

Pressing the action button in midair triggers a diving arc in the movement direction, doubling the character’s speed. Hitting a wall halves the speed back to normal and forces the character into an air roll, which then transitions into a ground roll upon landing. Landing directly on the ground also halves speed and forces an immediate roll. Skillful use allows faster traversal, longer jumps, and access to new routes, while reckless use is riskier than a normal roll, increasing the chance of hazards or bad landings. This added punishment balances the move, which proved overpowered without limits.

[ DIVE KICK ]

while in the air dive state, a tightly-timed press of the jump button just before colliding horizontally with a wall, the character performs another air dive, reversing the movement direction. Allows back and forth chaining of air dives, although timing is very tight. This is essentially a small extention of the air dive so colliding with a wall or the ground inherets all the same pros and cons.

NODE CAMERA SYSTEM

I designed and developed a node-based camera system that allows me to place node objects, each with their own unique ID, anywhere in the level. Upon a collision between the character and a camera transition trigger object, depending on the direction the character is facing during collision, the ID of the next or previous node is passed to the camera. The camera then calculates the closest point to the character within the node's bounds, and smoothly transitions there. This works by checking all four sides of the node, checking whether the character's y position in within the top and bottom y position of the node and same with the x positions, if true for Y is within From there the camera tracks the character while staying within the node's bounds. Scaling the node in the Game Maker Studio 2 room editor directly sets the node's boundaries, allowing me to change the framing of a section simply by moving and scaling that node.

LEVEL DESIGN

Levels are structured as a series of linear, bite-sized challenges that flow together, rewarding skilled, experimental players with shortcuts and skips. I wanted to ensure levels were molded around the character's movement mechanics and level terrain to enhance each other. Using my camera system in conjucntion with Game Maker Studio 2's room editor, I was able to create a large vertical level that feels focused, takes advantage of movement mechanics, and is challenging but fair.

level design: stage-01

ARTWORK

The artwork is focused on bouncy, responsive animations for quick feedback and simple, colorful environments to keep traversal clear and engaging. I made sure to balance clarity and visual detail by giving all foreground spritework black outlines and higher detail while all background assets are simpler using a less color values.

sprite work: character sheet

environment: radio city

sprite work: character sheet & rails

environment: grass plains

sprite work: character sheet

environment: desert

environment: snowy mountain

GAME PAGE

COPIED TO CLIPBOARD