Category Archives: Game Development

Posts related to the development of games.

Global Game Jam 2016

#gbcggj

That is a hashtag that trended in Canada for a little while last week – and I’m glad to say I was a part of it.

Last weekend, the Global Game Jam took place. The way it works is that at 5pm Friday (for every jam, timezone dependent), a theme is announced. You have 48 hours (5pm Sunday) to create a game that fits the theme. This can be done in teams or individually. The game jams are also set up at dedicated sites – there is no doing game jams from home. My team went to George Brown College in Toronto.

This was my first game jam. I went with my capstone group from college, otherwise known as Robot Monocle. We also had a team mate’s relative join us and do our music and sound. Together, we were Team Excelsior Techtronics, and we made a game called Insular.

Friday, at 6pm, everyone was in a room together and they showed us the Global Game Jam 2016 introduction video. At the very end of the video, the theme was announced. “Ritual”. As soon as it was announced, the hundreds of people in the room immediately broke out in conversation. The organizers quickly quelled the conversations and gave us a bit of information.

First, do not put the theme on social media, due to the time zones that did not hear it yet. Second, the designated floors are the fifth and sixth floors, and there are signs with team names set up in the rooms, so we need to find our team locations.

My team’s location was on the sixth floor. The computers provided were Macs with the option to dual-boot into Windows – which our team did. We quickly got our environment set up and began the toughest part of the jam: coming up with a game idea and the tools to create it.

We created a Google Drive document to brainstorm a bunch of ideas. We iteratively got closer and closer to where we wanted to be. We eventually decided upon having the player suddenly be on an island, and having until midnight before everything resets. Before reducing our scope, we thought it would be neat to include a bunch of hints and certain things to do throughout the day until the end goal was reached… That way the player would develop a sort of “ritual” of things to do as each day goes by. Unfortunately, 48 hours isn’t nearly enough time to do something so elaborate. In the end, we got three rituals that need to be completed before a portal is lit up and you walk through… and the game exits. Congratulations! You managed to escape the game!

We decided to develop the game with Unity. None of us really knew how it worked except for an assignment we did in college, so much of the weekend was spent learning how the tool worked rather than pure content creation. Nevertheless, I’d say the weekend was quite a success. I hadn’t had this much fun programming in a very long time. I got to create some really neat functionality. For example, I created a time controller that was responsible for keeping track of the time of day – but it also supported having a list of time-triggered events through an implementation like the observer design pattern. Essentially, it was a list of objects containing a condition (a Func<bool>) and an action (Action). Any other class that wanted a time-triggered event could easily add one to the list.

I also implemented a neat generic ritual queue base class that supports a queue of GameObjects (which is the base class for all Unity game objects). The first sample ritual was circling a tree – which involved touching three invisible triggers. Each time you would hit one of the triggers, it would send itself to a central ritual controller and add it to the queue. Once the queue is filled, it cycles older items and calls a function to see if the condition has succeeded. For the tree-circling ritual, for example, it looped through the queue (which contained only the last three triggers) and ensured they were in the correct order. While this ritual was removed, a similar one was added with seven triggers.

All of this code is on GitHub at this repository. If for some reason you’re interested in seeing only my commits (which, might I say, has the coolest code), click this link. All of the code is in the Assets/Scripts folder. The Audio folder contains audio management scripts, which make use of the Observer-style pattern time controller. The Ritual folder contains all of the code needed to perform the rituals and to win the game. Outside of these folders include the time controller and various other useful scripts, such as the game reset at midnight, the player drowning, and the code responsible for moving the sun.

We also used Pivotal Tracker to keep track of the tasks needed to be done. It’s public and can be seen here. Be sure to click the Done link on the left to see all of the tasks.

After such a pleasant experience, I do hope to participate in the Global Game Jam next year! A big thanks to the organizers at George Brown College!

Share

First Game: Tile Flipping?

As promised in the previous post, this is the first of many project starters.

I must admit that I have already done some work on it. For a project, it has been incredibly easy so far. However, I’ll leave the post-creation analysis for after I’m completely finished. For now, I’ll give a brief overview of the project and what my intentions were when I started it.

I don’t know if I’ll ever take the effort to give proper names for the game projects (though if I’m hit with inspiration I’m sure I’ll use whatever great names I come up with). In the meantime, my first project is extremely simple and therefore suitably has a very simple name: Tile Flipping.

Why did I choose something so simple? Perhaps it was out of an act of desperation: I did not want to have any excuse to procrastinate any further. It is difficult to start and to work on a project when so many other things are begging for attention. Anime, World of Warcraft (with its awesome new expansion), learning Japanese, reading… There are a lot of interesting things to do but only a finite amount of time. Therefore, priorities need to be in place. Knowing my tendencies to jump onto something with instant gratification, I decided to prevent myself from procrastinating any longer and to get myself started as soon as possible. I knew that if I took too much time to come up with something fun, I’d get lost in the many possibilities and end up putting it off. I’m sure this will resonate with some of you.

Therefore, I picked the first and easiest thing that came to mind: a tile flipping game. One of those where you click a tile and its surrounding tiles flip, in which the goal is to get all the tiles facing the same way. I didn’t want to get stuck on choosing which language I was going to use (yet another place I could have so easily procrastinated) so I chose the quickest and dirtiest tool for the job: HTML and JavaScript.

Having such a simple first project also gives me the opportunity to come up with an interesting second project. I haven’t set any time limits for myself but I want to get the ball rolling and so I’ve been brainstorming for multiple games to follow. I’ve had a few good ideas floating so I’ll come up with something interesting and worthwhile to take the time to complete. My goal with these games is to learn and to improve myself in creating and delivering games.

Though I don’t have much to offer in terms of games for this project, I hope even one person reads this and decides to step out of their procrastination cycle. It’s very easy to read motivating articles and surf /r/gamedev all day but time’s ticking and no experience is had being passive. If you feel the same way, take this opportunity to come up with something. Anything. A tiny game such as a tile flipping game – anything to get your foot in the door. Get started.

Well, this turned into a rant. If this has inspired any of you, now or years from now, please comment here so that others can also see and get motivated.

My future blog posts won’t be so preachy! Hopefully the next blog post you see (and soon) is a nice postmortem post about the tile flipping game (and a link to try it out). Around that time I will also announce my next project which will hopefully be a lot more interesting! Stay tuned!

Once again, thank you for reading, and make sure to check out my Twitter! @zalgryth

Share

Future in Game Development and Blog Resurrection

As you may have noticed, this blog has been dormant for quite some time. This has been partly due to not wanting to bury the EE Artist post, though with a bit of effort I could have found a way to pin it or something. The other reason is quite obvious: because I haven’t had anything interesting to write about. Looking at the past collection of posts, I had made it clear that this blog had no goal and that posts were simply an attempt to entertain and to practice my writing (though in the end I did not get a whole lot of practice). But I do enjoy writing and I will admit I am a little happy to be writing this and glad that I found a new topic that I can blog about. I know most of you are probably thinking, “Get on with it!”

A quick sidenote for those of you who know what I’m referring to when I say “pls cod”… pls cod was a project I started with the help of fellow players and enthusiasts. It was definitely an interesting project and I would still be more than happy to complete it and to see its results. However, what I’m saying here will come as no surprise since I have not touched or mentioned it in months: I am putting pls cod on official hiatus. I have not given up on it – it is a very interesting game and project overall. However, it is quite an undertaking and I feel like I bit off more than I can chew. I may be quite experienced in programming but I’m very much a newbie when it comes to game development. For that reason, I have decided to stop the endless procrastination and officially allow myself to work on other games for the time being.

I am going to be following advice that has been said by many different game developers. I will be focusing on creating a series of small, complete games. I won’t be making them weekly like the article suggests – I won’t give myself time limits. But I will be making the scope small enough that they could be made in a week or two. I have already started on the first one and I have a couple ideas floating for the next few coming up.

Whenever I start and end a project, I will post about it here. I will post about what I hope to accomplish and what my expectations are when I start a new project. When I finish, I will post about what I learned, what I should have done differently, etc. Essentially a postmortem. With it will be a link to play or download the game. It is my hope that this will get the metaphorical ball rolling and that I can start my career in the game development world.

I’ll leave it at this for now. I will post the “start of project” post when I get the chance (probably tomorrow evening).

Cheers!

P.S. Be sure to check out my Twitter account: @zalgryth

Share