January 2021 / Solo Project / Godot 3, Git, Aseprite
A Clambering is a game made in 1 week for the Maine Game Devs Holiday Jam. Inspired by sleepy summer memories (and a pinch of Bennet Foddy's games), the player's goal is simply to climb! As sole developer, I was responsible for pretty much everything in the game's development.
Problem Solving - Inverse Kinematics
Most of the problems I solved were centered around finding a cheap, effective way to make the arms bend with the mouse controlled movement. Many of the tutorials (such as this excellent one by Alan Zucconi) relied heavily on some intermediate vector math, which was effective, but a bit cumbersome to implement.
I noticed that most of the math involved, however, could be done by simply using the vector libraries that came with the engine. Accordingly, I leveraged those built in functions such as direction_to(), and angle_to_point() in order to re-create this math in a quicker, more legible format.
The code that powers a given hand's Inverse Kinematics.
The results of the above code
A gif of the player flinging themselves. Note how the hands both turn red while not gripping.
Progression
A large part of how I conveyed things to the player was through audio. For instance, when the player starts at the forest floor, they can hear the sounds of crickets and birds. However, as they ascend any given tree, the creature sounds slowly fade away into the sound of gentle winds.
However some things, such as the state of the player's arms and hands, were conveyed with graphical details. The Inverse kinematics allowed the player to see their max grab range quite clearly, and the colors of their hands cued them into which hands were reaching and which hands were gripped.
Lastly, the fling maneuver, which allowed players to pull themselves up and throw their own weight through the air, was encouraged with level design. By having gaps that grew in distance over the course of the level, I slowly acclimated players towards the idea of using their momentum to soar over empty space