I've always wanted to be a game programmer. I will directly attribute my skills (and blind spots) on coding to my early attempts at making a game engine.
Too bad I've never made an entire game. Its always demos and proof of concepts for my engine. That changed when I joined the Global Game Jam on 2010.
Global Game Jam (GGJ)
I was an admin for the Manila Chapter of IGDA (International Game Developers Association) during 2009 - 2011, and we were coming up of ways to promote the local game industry. One of the admins have just heard about the Global Game Jam which had was just created. GGJ is an event where people from around the globe will make a game by jamming - a term borrowed from musicians which describes random people gathering and playing their musical instruments with no specific song in mind.
The GGJ is meant to invoke that feeling of jamming, but instead of music, we will be making a game with strangers (or at least its encouraged to jam with strangers) in under 48 hours.
By 2010, the admins have the University of the Philippines Diliman onboard and IGDA Manila's first game jam have began. I was originally part of the logistics team, but was encouraged to take part instead; which directly led me to experience the game jam, something that I am grateful for (thanks Ryan).
In music jams, the theme will be obvious by just listening. With games, the International GGJ organizers choose a secret theme that will be revealed at event start. There will be a social blockout as different countries start at different time zones.
2009's theme was Deception
I decided to build a game around fighting games.
I love fighting games. I've been competitively playing this genre since the release of Marvel Super Heroes.
Fighting games, while unrealistic, is built on the framework of outsmarting another player by using the tools available to them by the game mechanics and their character. I've pitched the idea of using just two attacks and blocking; with both players trying to land an attack by means of deception. Its a simple idea, but I was hoping to expand the design later. Spoiler: we never had time to expand the design.
Nothing is realistic in fighting games
Finding a team
I cannot draw. So I needed to look for an artist. Tien was available and was onboard after hearing my pitch. Ivanwafoo was a student at that time and was looking for experience in game development, so I also brought him in as our playtester.
I've talked about the technical details of programming the game in another post. But in general, I've learned a lot! The GGJ have a direct impact on how I code.
I've feel that I've become a better public speaker from the game jam. We only have 5 minutes to show off our creations, a time limit that I have since came to know as an elevator pitch.
What I've learned
I've learned more about programming than months of working on my game engine. I've learned to prioritize what are important (a concept that I'll know later as minimum viable product), collaborating with a team, and the experience of making a game completely from scratch to finish.
This is also where I realized that I won't be able to make my own video game and at my pace. This basically caused me to kill the game engine I was building at the time.
GGJ presentations are 5 minutes. We've built the game so that you can see both endings in 5 minutes. This was a great idea on paper. But execution wise, we went over by a little bit. This experience taught me to practice my presentations before giving them.
I've also learned the value of a "presentation build". Going to the second ending after showing the first took would have taken too much time as we'll repeat the entire game again. But because of the way I coded the game, I was able to live code and skip to the ending (Iirc, the audience reacted to me cheating to win. Its a great audience reaction).
Overall, I directly point to the first IGDA Manila Global Game Jam event for the direction my programming and presentation style took. To this day, I still see subtle shades of my experiences in my own work. It makes me nostalgic to see that our original ggj post is still up to this very day.
- To play, first download or clone the game from Github.
- Download Python (preferably Python 3.4+). Either put the python executable in your path or include the path when running the shell commands
- Change directory to the game. If you downloaded as a zip file, unzip first.
- Open your shell/terminal and run the following: pip install requirements.txt
- Run the game: python main.py
I'll be talking more about the game in the next post.