Global Game Jam (January 2014)
Having done the Global Game Jam in 2013, I was eager to take part again in 2014. However, I apparently wasn't eager enough. While I was concentrating on finishing up my first semester modules, the tickets for the Dundee event went on sale and they sold out within the hour. So the first I heard of the jam was people being upset that they were unable to join. So I put myself down for the waiting list but it wasn't looking positive.
Fortunately, the guys at Pixel Blimp had a spare ticket, having been on of the teams who bulk reserved tickets for the event.
The idea for the game was ambitious. Too ambitious. I was quick to point out that the networking that the designer wanted was just not going to make it in. None of the programmers had any experience with it, especially within Unity. The main mechanic of the game was the fact that gravity was relative for each player based on the surface that they were on. I obviously wasn't foolish enough to think this was an easy ask, but I did think it was doable, especially with 3 capable programmers on the team. However, we learnt after 12 hours of the Jam, that it was not a task that could be done in 48 hours. I would go as far as to say it is something that could hold up as a honours project in itself. It was frustrating because the basis of it was simple enough: make gravity act in the direction of the normal to the plane that the player was in contact with. Unfortunately there were various things that we hadn't considered, such as the fact the physics engine won't place contact points directly below the player (thus making the player offset/tilted) and even more difficult was the grappling. We wanted to allow players to choose a platform (such as an opposing wall) and have them fly to that wall and for that to then be the ground. This then raises the problem of trying to figure out how to make sure the player ends up facing the direction they expect. This lead to myself and another programmer working until 3 am trying to suss the math behind it.
Fortunately, the guys at Pixel Blimp had a spare ticket, having been on of the teams who bulk reserved tickets for the event.
The idea for the game was ambitious. Too ambitious. I was quick to point out that the networking that the designer wanted was just not going to make it in. None of the programmers had any experience with it, especially within Unity. The main mechanic of the game was the fact that gravity was relative for each player based on the surface that they were on. I obviously wasn't foolish enough to think this was an easy ask, but I did think it was doable, especially with 3 capable programmers on the team. However, we learnt after 12 hours of the Jam, that it was not a task that could be done in 48 hours. I would go as far as to say it is something that could hold up as a honours project in itself. It was frustrating because the basis of it was simple enough: make gravity act in the direction of the normal to the plane that the player was in contact with. Unfortunately there were various things that we hadn't considered, such as the fact the physics engine won't place contact points directly below the player (thus making the player offset/tilted) and even more difficult was the grappling. We wanted to allow players to choose a platform (such as an opposing wall) and have them fly to that wall and for that to then be the ground. This then raises the problem of trying to figure out how to make sure the player ends up facing the direction they expect. This lead to myself and another programmer working until 3 am trying to suss the math behind it.
Every time we thought we had a solution, we'd implement it and reveal a new problem. I felt especially bad for the other programmer. He was supposed to go to bed so that he could go to work at 11am. Instead, he carried on working on the problem until 8am when he slept for an hour before going to work.
I had instead moved onto working on other systems working on the assumption we would have to drop the gravity shifting idea. Even without that mechanic, the game was still pretty ambitious, we wanted 4 player splitscreen. Fortunately, Unity as ever, simplifies the issue greatly meaning it's possible to make a splitscreen game within 48 hours. I had a demo with playable boxes and the screen splitting based on the amount of players working quite quickly. We were running the 4 Xbox controllers through a USB hub and everything appeared to be working.
I then added in the ability to pick up a pole representing a flag, which was the other mechanic of the game, creating a fast paced take on the capture the flag genre.
I had instead moved onto working on other systems working on the assumption we would have to drop the gravity shifting idea. Even without that mechanic, the game was still pretty ambitious, we wanted 4 player splitscreen. Fortunately, Unity as ever, simplifies the issue greatly meaning it's possible to make a splitscreen game within 48 hours. I had a demo with playable boxes and the screen splitting based on the amount of players working quite quickly. We were running the 4 Xbox controllers through a USB hub and everything appeared to be working.
I then added in the ability to pick up a pole representing a flag, which was the other mechanic of the game, creating a fast paced take on the capture the flag genre.
That again was implemented rather quickly. I was really happy with the pace and thought we were right on target to complete a game. A pretty game at that, the other programmer was working on making a pretty lighting set up and he had a really promising demo up and running. Of course, game development is never plain sailing and you should always worry if everything appears to be going well - that's the calm before the storm. We had 12 hours to go and appeared to be well on track, we almost had everything together, I was sure we would even have time to play-test and tweak. Well, I'm not entirely sure how, but those 12 hours were soon 3 hours. 3 hours, and we still had to implement the sounds. We quickly realised the scope of the problem with the audio. I had been worried about the sound regarding how to organise the single audio listener, but then realised after looking through the audio assets that they could all simply be 2D sounds. I didn't realise however that there was still a grave issue surrounding implementing audio for a splitscreen game. There was a sound that was to be used when two balls (players) collided with each other. But as myself and another programmer considered various scenarios, we realised that there could potentially be the same sound played 16 times if all the players collided at once, this would inevitably result in horrible distortion of the audio. Instead we would want to be able to limit sounds being played. We were able to come up with solutions, but all of them required more than the 3 hours we had left. In the end we had to limit the sounds played. There is a rolling sound played for each ball, which isn't too intrusive and there's also background music, one for the start which then changes to one for the main game. There's also a couple of announcer voice clips for the start of play as well as announcing when the flag (now a crown) is dropped. We actually didn't have time to create a menu screen for selecting players, so I quickly added in a sprite with the image on the right, mocked up by one of the artists. It was a quick fix but it works.
We were working until the last second of the jam. Devastatingly, we built the game (for the first time) and were presented with a black screen accompanied by a crash report. We quickly switched to running the game through the editor. The game ran but only player 1 and player 4 were responding, the other two simply stayed put. It was pretty brutally crushing after such hard work. I'd slept just over 2 hours during the whole 48 hours, and I'd been at work from 9am the Friday morning too. So I was rather gutted it didn't work. However, there wasn't any judging organised for the Dundee event, so after going to see other peoples work, I found most had packed and were away. This left this jam ending on a rather uneventful note which is a shame given it was also the most ambitious jam I've yet taken part in. I'm glad to have made a 3D game for a jam, as it brakes the typical trend of a 2D game.
I was pleased to learn later that the build did in fact work. The problem was that we had a rather oversized lightmap loading, which was halting the start of the game. The more pressing issue for me however, was the fact the controls didn't work. I combed through the code and was convinced that it should work. Indeed, the fact player 1 and 4 worked was a curious bug. My hypothesis was that it was an hardware issue, as we were running all the controllers through the USB hub. This was confirmed when we tried it out on a machine with enough USB ports to support the 4 controllers. This gave me relief as I was slightly disturbed and upset by it not working on the day.
Sadly there's no available link to the final game build, but the GGJ entry is here.
I was pleased to learn later that the build did in fact work. The problem was that we had a rather oversized lightmap loading, which was halting the start of the game. The more pressing issue for me however, was the fact the controls didn't work. I combed through the code and was convinced that it should work. Indeed, the fact player 1 and 4 worked was a curious bug. My hypothesis was that it was an hardware issue, as we were running all the controllers through the USB hub. This was confirmed when we tried it out on a machine with enough USB ports to support the 4 controllers. This gave me relief as I was slightly disturbed and upset by it not working on the day.
Sadly there's no available link to the final game build, but the GGJ entry is here.
What Did I Actually Do?
I participated in the 48 hour Global Game Jam 2014 within a team of 7 to create a 3D game. I worked mainly on the gameplay mechanics and the game logic with another programmer. The team also consisted of a third programmer who focused on the graphics programming side of the game, 2 artists, an audio producer and a designer. By the end of the jam, we had a game which allowed for 4 player split screen in an environment where players had to find an capture a crown and hold it for a set amount of time while other players attempted to steal the crown. Making a 3D game was hard work but I learnt a lot in the process, mainly that I need to consider the difficulty of various tasks a little more thoroughly.