Never say no to new opportunity: My story of Global Game Jam 2020

“Hey do you want to join the game jam this weekend with us?” My friends asked. “But I know nothing about game programming.” “Me neither. But that is why I join, to learn new things.” And just like that I was convinced to join the Global Game Jam 2020 and it was the most memorable experience we have ever had.

The short-lived excitement

All great ideas start with doodling of the pencil on paper and that was exactly what we do when we receive this year’s theme: Repair. Many ideas were discussed and finally we decided to do a side-scrolling shooting 2D game. The scene was set into a post-apocalyptic war and players shot collapsed bridges and gates to repair it. He also has to face with mutant birds and monsters along the way. Sounds exciting but also challenging for 5 web developers who had no experience in game programming.

Then we explore Unity, which we would use to program our game. The good news was the programming language behind that was mostly our good friend C#, which we use so much in our web programming. Therefore, we were confident that we could adapt to it in no time. Or at least that’s what we thought.

Overwhelming and regrouping

The excitement from the first day did not last long. We were soon bombarded with a ton of problems that we had no idea which one to solve first. And when we googled the solution, we were overwhelmed again with a page-full of code that we again had no idea what it was about.

Take a deep breath. Close my eye. Suddenly, I remembered my technique of debugging: the Programmer’s cat. Every big challenge is made up of small problems that we could solve one by one easily. Following that rule, I divided up my task into a smaller chunk and conquered them one at a time.

My task was to create an enemy for the game. To do that, first I needed to make it animated, then make it move left and right patrolling a specific path and finally the enemy would be able to shot at the player trying to kill him. It was still a difficult task but it was certainly less than the beginning now that I knew which step I should take.

Image may contain: phoneMy enemy AI

An infinite loop of problem

Things were much clearer but because we were trying to learn what people have learnt for 2 years in just 2 days, it was still a long way to go. We were caught in an infinite loop: learning, encountering problems, learning to solve the problems, encountering new problems, learning to solve the new problems. After spending 3.5 hours, I can finally make my mutant bird flapped his wings. My celebration was cut short when I found out he can not move. Then another 2.5 hours were spent to figure the way to make him move by some CSS Transform technique. Once again, after that, I had no time to patch myself in the back, because he could not turn around so he would fly and fly until he hit the wall. This took me another 2 hours to solve and when I was done, so did the night. However, for the first time, I had a slender hope that we could finish this on time. Or at least that was I thought.

My mutant bird can flap his wings but can not move

He could move now until he …hit the wall

Finally he could move and turn smoothly after a night of practicing.

Merge error: A final comfortable headache

Just when we thought that the hardship is over. When we combined our part on Github, we face the ultimate challenge: Merge error. We had to check every file and every single line of code to track the change. It was a tedious task but we were all happy knowing that we were so close to the end and looking back on all the problems we have overcome, this one was more like a comfortable headache. With that attitude, we finally manage to finish and submit on time. Here is the game that we built, please enjoy. For a complete game, visit our site at https://globalgamejam.org/2020/games/environment-defender-0

Through this post, I want to thank all of my teammates who have trusted and invited me to this incredible occasion and who share the same passion and eagerness to learn like me. Thank you all!

Leave a Reply

Your email address will not be published. Required fields are marked *