Tiga Game Hack (November 2013)
I was sure I could squeeze 24 hours into my ridiculously busy Masters course. And I did.
Similar to the Global Game Jam, my University was hosting a 24 hour game hack, organised by Tiga. The main event was held in London, but this year, they expanded to the other side of the UK, in Dundee.
The chance of making another game as well as the promise of free food (and on that front, they delivered in bulk!) made it an easy decision to join the game hack. There was the added bonus that the entrance fee went towards charity.
I made the decision to drop my previous goto engine, Gosu in favour for Unity3D. Due to working with it over the summer, it was fresh in my mind, much easier to work with and I could deploy it to more platforms a lot easier. I'd obviously still stick with 2D, as I had no artist available and 2D is quicker anyway. 2D is simply a case of using an orthogonal camera. Or so I thought. I realised too late that I had no idea how I would do the sprite animation. I'd likely have to use a shader to move through the UV coordinates.
Fortunately, not 3 days prior, Unity had released Unity 4.3, which included a dedicated 2D rendering pipeline. Not so fortunately, I was using the University's computers which had 4.0 installed and I didn't have administration privileges. I would have to run back home and grab my 5 year old laptop.
The theme for the hack was childhood. The game that immediately came to mind was the ground is lava. Great, now I just need to make it. Before I could leave however, I was offered the chance to join the team that contained some of the people I worked with on Wee Paper Planes. They applied too late and so were't initially in the hack but had managed to get in. It'd be foolish to turn down team work and a likely better game, so I agreed.
I was now working on a game where you're defending the Earth from asteroids. Not original but we could make it fun. To link it to the theme I suggested that the main character, a kid, could see a news report on a meteor shower, which of course happens all the time but the kid could interpret this as a threat to humanity and thus he must save Earth. So he gets in his cardboard box ship and fights off asteroids. The gameplay mechanic that the designer wanted was where you hold the left side of the screen to rotate counter clockwise and the right side to rotate clockwise, then holding both down shoots. There was another coder but with me joining, he went on to work on a shield that he'd made for the computer and wanted to port to the mobile platform. That was fine by me, it let me have free rein of the gameplay mechanics.
We worked the solid 24 hours. I was surprised at how fatigue never really effected me, however, it was clear the team was getting restless and short tempered. Fortunately, there wasn't a fall out and we held our own. What we ended up with was actually really fun. So fun, I pushed it to my phone. I was pleased to see that it ran, though as expected, it quickly eats up my battery life. There were some moments where we hit brick walls in code so I'm so happy with what we ended up with. On one such moment, the asteroids were flying off in bizarre directions, instead of straight at the Earth as they were meant to. I commented out the line of code that moved them and they stood still. I then uncommented the line and they moved to the centre. The other coder was my witness to this. He gave a sympathetic bow of the head as I vented my frustration. We didn't have time to think over what happened and instead cracked on with making the game.
We ended the jam with not only a playable game, but a fun one. Not some prototype of one level, but one you could actually play through thanks to the infinite nature of the wave gameplay. Unfortunately, the shield wasn't in a state that could be played and we had over shot ourselves with the implementation; we only ended up with the basic type of asteroid and I wasn't able to implement the drones. However, there were still updates to be bought: stronger bullets, faster reloading times, faster fire rate, faster rotation around the earth and a larger clip size. I was really pleased with the outcome. So much so, that I was usually playing it when people came over to try it out. I'm again fascinated by how a simple idea can be reap such fun.
During our spare time, mainly on various weekends, we have continued work on the game to finish off the various aspects that didn't make the jam. The main thing I added was the drone support. I was again really happy with the results. Instead of going for an approach where I try to find the nearest asteroid and make the drone attack that, I simply attached a circular collider which acts in a similar fashion, this allows me to utilise the more efficient collision detection of the physics engine instead of layering on my own code. When the drone hasn't locked onto a target, it flies towards a target which is orbiting the earth, this gives the effect of the drone orbiting the earth and then flying at an asteroid that is within it's vicinity. I have a drone manager to help organise the drones. The manager acts as the drone factor too, helping to limit when a drone is spawned.
As well as adding in new features (including a statistic label to the main menu, mainly to feed my ego so I can boast about the amount of waves I managed without taking damage), I tidied up things that weren't quite up to scratch in the jam version, the main change being the control system. Due to me constantly testing and thus getting good at the game using the mechanism that the designer had wanted, I was actually quite happy with the way it played. However, people struggled with the controls and there was an exploit which removed the skill based aspect of the game. So I changed it to instead use a virtual joystick. However I personally hate them so made sure it was as unhindering as possible. The player needs only press down on the left half of the screen to activate the "centre" of the stick, and then they drag their digit left/right to alter the rotation. This not only allows for shooting while rotating but also allows for more analogue precision. I played with this for a while and then decided I wanted the option for the older version (it would also allow for testing on the computer rather than having to push to device). Going back I realised just how much better the new control system was.
Similar to the Global Game Jam, my University was hosting a 24 hour game hack, organised by Tiga. The main event was held in London, but this year, they expanded to the other side of the UK, in Dundee.
The chance of making another game as well as the promise of free food (and on that front, they delivered in bulk!) made it an easy decision to join the game hack. There was the added bonus that the entrance fee went towards charity.
I made the decision to drop my previous goto engine, Gosu in favour for Unity3D. Due to working with it over the summer, it was fresh in my mind, much easier to work with and I could deploy it to more platforms a lot easier. I'd obviously still stick with 2D, as I had no artist available and 2D is quicker anyway. 2D is simply a case of using an orthogonal camera. Or so I thought. I realised too late that I had no idea how I would do the sprite animation. I'd likely have to use a shader to move through the UV coordinates.
Fortunately, not 3 days prior, Unity had released Unity 4.3, which included a dedicated 2D rendering pipeline. Not so fortunately, I was using the University's computers which had 4.0 installed and I didn't have administration privileges. I would have to run back home and grab my 5 year old laptop.
The theme for the hack was childhood. The game that immediately came to mind was the ground is lava. Great, now I just need to make it. Before I could leave however, I was offered the chance to join the team that contained some of the people I worked with on Wee Paper Planes. They applied too late and so were't initially in the hack but had managed to get in. It'd be foolish to turn down team work and a likely better game, so I agreed.
I was now working on a game where you're defending the Earth from asteroids. Not original but we could make it fun. To link it to the theme I suggested that the main character, a kid, could see a news report on a meteor shower, which of course happens all the time but the kid could interpret this as a threat to humanity and thus he must save Earth. So he gets in his cardboard box ship and fights off asteroids. The gameplay mechanic that the designer wanted was where you hold the left side of the screen to rotate counter clockwise and the right side to rotate clockwise, then holding both down shoots. There was another coder but with me joining, he went on to work on a shield that he'd made for the computer and wanted to port to the mobile platform. That was fine by me, it let me have free rein of the gameplay mechanics.
We worked the solid 24 hours. I was surprised at how fatigue never really effected me, however, it was clear the team was getting restless and short tempered. Fortunately, there wasn't a fall out and we held our own. What we ended up with was actually really fun. So fun, I pushed it to my phone. I was pleased to see that it ran, though as expected, it quickly eats up my battery life. There were some moments where we hit brick walls in code so I'm so happy with what we ended up with. On one such moment, the asteroids were flying off in bizarre directions, instead of straight at the Earth as they were meant to. I commented out the line of code that moved them and they stood still. I then uncommented the line and they moved to the centre. The other coder was my witness to this. He gave a sympathetic bow of the head as I vented my frustration. We didn't have time to think over what happened and instead cracked on with making the game.
We ended the jam with not only a playable game, but a fun one. Not some prototype of one level, but one you could actually play through thanks to the infinite nature of the wave gameplay. Unfortunately, the shield wasn't in a state that could be played and we had over shot ourselves with the implementation; we only ended up with the basic type of asteroid and I wasn't able to implement the drones. However, there were still updates to be bought: stronger bullets, faster reloading times, faster fire rate, faster rotation around the earth and a larger clip size. I was really pleased with the outcome. So much so, that I was usually playing it when people came over to try it out. I'm again fascinated by how a simple idea can be reap such fun.
During our spare time, mainly on various weekends, we have continued work on the game to finish off the various aspects that didn't make the jam. The main thing I added was the drone support. I was again really happy with the results. Instead of going for an approach where I try to find the nearest asteroid and make the drone attack that, I simply attached a circular collider which acts in a similar fashion, this allows me to utilise the more efficient collision detection of the physics engine instead of layering on my own code. When the drone hasn't locked onto a target, it flies towards a target which is orbiting the earth, this gives the effect of the drone orbiting the earth and then flying at an asteroid that is within it's vicinity. I have a drone manager to help organise the drones. The manager acts as the drone factor too, helping to limit when a drone is spawned.
As well as adding in new features (including a statistic label to the main menu, mainly to feed my ego so I can boast about the amount of waves I managed without taking damage), I tidied up things that weren't quite up to scratch in the jam version, the main change being the control system. Due to me constantly testing and thus getting good at the game using the mechanism that the designer had wanted, I was actually quite happy with the way it played. However, people struggled with the controls and there was an exploit which removed the skill based aspect of the game. So I changed it to instead use a virtual joystick. However I personally hate them so made sure it was as unhindering as possible. The player needs only press down on the left half of the screen to activate the "centre" of the stick, and then they drag their digit left/right to alter the rotation. This not only allows for shooting while rotating but also allows for more analogue precision. I played with this for a while and then decided I wanted the option for the older version (it would also allow for testing on the computer rather than having to push to device). Going back I realised just how much better the new control system was.
Moving onto a release
When, during the end of the jam, I found myself playing the game and not wanting to put it down (or give it to other contestants to play), I knew it was a pretty tidy game. To this end, we decided to continue with it in (what little of) our spare time we had to polish it up and add in what we weren't able to get in for the jam and then release it. The plan was that it would take maybe two weeks, however this didn't end up being the case, mainly because we simply didn't have enough time to dedicate to it. However, we did eventually release it to Google Play and Windows Phone store at the end of April 2014.
It felt great to have an actually released game however, as I expected, there were various things we had to do before we could release it to the stores. I had been trying to get the game released for months and was getting agitated, however, once we'd settled on releasing it, I suddenly felt like it wasn't ready to be released and started to fret about minor things that could be tweaked. This was to be my first released game and so I wanted it to be a good representation of my work.
It felt great to have an actually released game however, as I expected, there were various things we had to do before we could release it to the stores. I had been trying to get the game released for months and was getting agitated, however, once we'd settled on releasing it, I suddenly felt like it wasn't ready to be released and started to fret about minor things that could be tweaked. This was to be my first released game and so I wanted it to be a good representation of my work.
What Did I Actually Do?
I joined another programmer, a designer, an artist and an audio producer to create a game within 24 hours. The game was based on the theme "Childhood". By then end of the 24 hours, we had a playable build running on an Android tablet.