I have been a huge fan of gaming since my childhood. I was introduced to gaming by my brother at the age of 8 and when I was given the opportunity to create a project at my college, what better way to go about it than indulging in my main hobby. And hence, I decide to create a game.
Choosing to create what game was one of the most difficult choices I faced. Even though I enjoyed a lot many games, choosing a specific genre proved troublesome. This is when I first learned the importance of limiting the scope of a project. Most games are a labour of love and require huge amounts of time to create them but looking at my own limitation and the time constraints, I set out to create a game in the resurgent genre of rouge-likes.
Since I was new to creating a game, the journey ahead of me was perilous and eventful. My first major hurdle came when I had to choose the theme of my game. I decided to base the game on a snake and its adventure. This led to me developing a full set of sprites which included the character, it’s enemies and the pickups. I was extremely excited as this was the first steps of my journey in creating an actual game.
My journey proceeded smoothly as I pieced together various parts of the game. I created the initial floors, then placed the characters, gave them movement and created a visual limit for the playable character to give the player a bit of challenge. As the game started to flesh out, I became more and more confident and excited about its future. I decided to add in music and sound effects to enhance the gameplay. Herein I encountered by second hurdle, where the excitement took over and I began to add in functionality into the game that would not only push the deadlines but would go way and beyond the first vision of the game. This led me to take the hard decision of scarping off a lot of code that would add in functionality (e.g., Robust inventory management save and load slots etc.). I decided to keep the game functional and playable without a lot of modern fancy functionality.
The most tough part of the game came at the end when I had to connect all the pieces of the game so that they would work in tandem with each other. I spent countless hours trying to tweak the music and the gameplay sounds to the actions performed by the player in-game. Then I spent even more hours trying to catch edge bug cases that would occur infrequently but would ruin entire game sessions. This also taught me that integrating components as you go buy is much easier than combining everything at the end and hoping for a miracle that all works together. At the end, I did prevail, and the game ran perfectly. Looking at how I had some time, I decided to add in the extra jazz such as an in-game menu, the pause functionality and the loading of games from the last played level. In the end, I completed the game with a week remaining to complete other documentation tasks.
The journey to create a game has been really an eye-opening one for me. I thought I knew how tough it is to create something as complex as a game, but even with limited scope I sometimes struggled to cope with the sheer amount of interdependent code. It also taught me a lot of programming pitfalls and mistakes that we usually commit in an over ambitious project and have learnt to better handle them which I am sure to use in my upcoming projects. At last, it all became worth it when I played the game, I created for the first time. In hindsight, I would do certain things differently but overall, I am proud of my creation and would like others to experience it as well and to enjoy the “way of the snake”.
P.S. A huge shoutout to my big bro for helping me out in all stages and to guide me through some of the tough parts of the game.