Inspiration
"A lack of cultural awareness around mental health means that the average person is unable to distinguish between sadness and depression."
This game has inspirations from many sources, but the most significant inspiration was the challenge of mental health. We wanted to make a game that can be fun and still feel like a game, but subconsciously explore the journey of going from a dark mental place to experiencing peace. We found the metaphor of one's mind starting at the bottom of a dark pit, surrounded by discouraging messages and your own demons, and fighting and climbing their way back up to the light to be a powerful one, especially since with a platformer game, it's very easy to fall or get knocked back and suffer significant setbacks. Recovering from depression is not easy in real life and it won't always be a smooth transition, so the format of this game was perfect for what we wanted to do. For influence from other games, we took games like Getting Over It and Jump King into consideration for their extreme difficulty and unforgiving platform-style level design; it is easy to fall a long ways and almost lose all hope because of how much progress has been lost, and that's something that we wanted in our game. On the graphics/art side, we took influences from games like Limbo for the minimalist, dark art style at the bottom of the pit, and games like Journey for the aesthetic of the main character. The demon character was loosely based off of one of the demons in the original Doom game.
What it does
The game begins with the main character at the bottom of a long, dark pit. The player's field of view is narrow and small, guided only by a dim torch, so it's difficult for them to see their surroundings. The player must navigate through the two dimensional world by jumping, running, and avoiding enemies. The enemies that roam the platforms of the lower levels are literal demons, representative of the player's inner demons. These demons don't kill the player but rather knock them down, analogous to the fact that your thoughts can't hurt you, only set you back. Discouraging messages pop up all around the player, showing how minds in the darkest places can't escape terrible thoughts. As the player navigates through the level, they may encounter jumps that, when failed, will set them back quite a distance. Eventually they reach the second stage of the pit. Here, the player has escaped most of the inner demons, and can start to see some light. To reflect this, the level gets brighter, the music gets less somber, and the torch allows the player to see more of the level. Here, instead of fighting demons, players must progress through a series of tough parkour challenges, with difficult jumps requiring perfect timings, and if failed, can set the player all the way back down to the first level. This is representative of how, even if someone has managed to escape the very bottom of the depression pit, a few setbacks are enough to completely send them back. After the player has reached the top of this level they reach the final stage, where the torch reveals even more, and the music gets even more hopeful. Here, there is a mix of skill jumps and avoiding the final demons. Overcoming these final demons are the last obstacles to reaching the surface: reaching happiness. Once the player reaches the top, the victory music sounds, and the game ends, with the player enjoying the sun and trees and finally being at peace.
How we built it
We built this project primarily in Unity. The code was adapted from the platformer game preset in Unity, but we made our own modifications. The level was made in the in-engine level editor in Unity. The art was done entirely by us using GIMP, a free digital art program, and we learned how to animate and import these sprites into the game as well. Menus and entities were created and managed using the game object interface in Unity. The music was obtained through internet searching for copyright-free, royalty-free music. The specific sources for the music are listed in the sources document. Most of the actual programming was done through writing C# scripts, which is what Unity uses. Scripts were adapted from the platformer preset in Unity and edited for our own purposes. We had to write scripts to configure where and when different soundtracks would play, and we wrote scripts to configure collision between players and enemies. We also used the scripts to create the text boxes with the discouraging comments and configure the torch's light level (how far the player can see). Finally, we used a script to produce moving platforms.
Challenges we ran into
The primary challenge we had that was evident throughout the whole process was our lack of experience in any relevant skills. For a start, none of us had any experience in art whatsoever. This made creating sprites and animations an extreme challenge. Two of us downloaded GIMP and worked on creating the sprites and animations for the game. This took us most of our time, because of how much we had to edit the sprites and how many different frames in each animation there were. Another specific area we lacked knowledge in was C#. Here, at least some of us had basic experience, but some of us had none and those who had some knowledge did not know much. We made constant basic errors in writing the scripts and spent a lot of time figuring them out. There were even some features we had to give up on purely because of how complicated they were compared to what we knew. In general, none of us had ever used Unity before, and this meant that very basic things like managing Game Objects and UI Prefabs came at an extreme difficulty. We also ran into many specific, individual problems, in every area. For a start, the implementation of the art sprites into the game was quite difficult. The method of creating animations meant that it was hard to keep the positioning of the sprite consistent throughout the whole animation, which gave our characters a jitter effect. Also, the size of our sprites was not always consistent across the animation, which made it even worse. By tweaking the animations, we managed to reduce this as much as possible, but it was difficult, tedious, and time consuming. We also ran into issues with Github. None of us had major experience with Github, and Unity projects contain nearly 10,000 files. This made things complicated, since we knew little about how to actually push or pull updates to our repository or create new branches. This was compounded by the fact that we were constantly editing files and then giving up on the edits, leaving them broken and useless, which would also be pushed to the repository. Our Github issues culminated when two of us accidentally downloaded the original Unity project, replacing our local files, and erasing all the personal work we had done. Luckily, we managed to get our files back, but it took nearly an hour to figure it out. Eventually, we gave up on Github and used Google Drive to share our files. Finally, our biggest individual issue came with programming the music in the game. We had different audio tracks that we wanted to play at different game regions, but this was more complicated than we originally thought. In the script, it was quite a challenge to get the audio tracks to play when different regions of the game were first reached, but this was only touching the tip of the iceberg. The real problem was trying to get the music to play again after the player leaves the region and comes back. We didn't want each soundtrack to only play once for the whole game, so we spent hours as a group messing around with various methods. We tried using the IEnumerator and not using it, we tried using Update() methods and standard Start() methods, and we ended up with over half a dozen variables for the script. The worst part is that this came in the late night, when we thought we were nearly done with the project. However, in the end, we did get it to work.
Accomplishments that we're proud of
Despite our relative inexperience with C# coding, we did finish some scripts that we were quite proud of. For example, generating various different texts at different locations on the screen that changed constantly for an extended period of time was quite difficult to do. Another nice piece of code was the script for determining the torch light level. Other scripts we were proud of included scripts for moving platforms, getting knocked back by enemies, and playing the enemy's death animation. On the art side, given that none of us had any art experience, we were quite proud of what we produced. The sprites were quite impressive, since they ended up looking quite nice and had a good theme, but what was most impressive was the animations: it took forever to get them to a usable state but in the end some of the animations were actually quite realistic and looked good. We were quite proud of the level design as well, since we felt like we had the perfect mix of easy and difficult jumps, and we felt that it was forgiving or unforgiving at the right times. The level was also quite big, so it took a lot of effort to complete it. In general, we were proud of the work we put in and the progress we made despite the challenges and inexperience we faced.
What we learned
For many of us, this was our first experience with C#. While it was kind of a trial by fire, we got a pretty good foundation over the 24 hours we spent struggling with compile errors and bugs. We also learned more about graphic design for games: while most of us dismissed it's difficulty before we actually tried it for ourselves, we came to realize that it is one of the most complicated and difficult parts of game design. We specifically got far more comfortable in Unity, to the point where many of us would consider making Unity games for fun, as a hobby, outside of HooHackathon. In general, we gained a greater appreciation for the amount of effort and creativity that goes into video game design and I think all of us will appreciate it more and even relate a little bit when playing video games in the future.
What's next for The Climb
We were quite proud of the product we produced and we think it has decent potential for the future. We have some plans on some changes we'd like to make to touch up the game a little bit. For example, including different and more unique enemies would be nice. We'd also like to improve the text system a little bit to make the text changes based on position/events triggering instead of being purely based on time. We could also touch up the graphics a little bit to make the game look better. Finally, we'd like to have a more impressive victory animation. After polishing the game a little bit, we think it would be cool to put the game online to allow people to download and challenge players to speedrun the game and submit videos of their best times. The sky is the limit for The Climb and we are excited to see what the future has to offer.


Log in or sign up for Devpost to join the conversation.