Our team won Jury’s Selection at the Montreal Global Game Jam 2012 (our site was at the UQAT).
The game can be found here
This year the theme was Oroboros.
This was our first jam and for most of us, it was our first time working with Unity, the only advantage we had was that we all had minimum 4 years experience in the industry so we were used to ship games and following tight schedules.
We went there with 2 rules.
- Ship a complete game by the end of the weekend.
- Start with only one gameplay and expand on it only if time permits.
So for the Design we went with a spin-off on the classic snake game genre where you need to eat bits of stuff that make you grow longer. We added a 3D element and that was our main feature. Instead of being stuck in a square the playground would be a sphere. It would permit infinite movement in any direction. We had a lot going on with this and in fact still have features we discussed during the jam which we decided we are going to integrate. You see, we really liked working together and we are going to continue working on this project until we consider it completely done.
So, after choosing the sphere we started experimenting a bit and seeing what could be added, we thought of a bunch of stuff and eventually had somewhat a complete design which looked like this. We ran into the usual problems that are sure to happen when participating in an event like this, Unity wouldn’t install on a computer, or our artist’s unity would not load shaders correctly etc. We actually started to really work around saturday noon with the intent of not sleeping that night (we left Friday at 3 o’clock to get a night’s sleep).
Our programmer, Daniel, tried for a while to make our snake concept work with the engines tool but eventually decided to scrap the whole thing and code everything by hand. @ around 8 o’clock on Saturday night we had our first gameplay iteration. Here’s a crappy production video taken with my phone during production.
So basically, we started cutting stuff during the night and going with the minimum we thought we could deliver but we kept everything the most contingent possible.
This was the decided design during Saturday evening.
Every thing must be connected to fit with the theme. Everything must affect everything.
- You play a snake like entity and you navigate a sphere world
- The controls are simple, the snake follows the mouse pointer (this was done in order to ease the port on tablets)
- On said world, there are white and red pills
- Eating white pills makes the snakes tail grow longer
- Eating red pills makes the snake’s tail shrink
- The speed of the snake is directly connected to the length of it’s tail
- The score system represents the snakes health.
- You start with a set number of health and if you go below zero, you die
- The number of points given by the white pills are connected to the speed of the snake when eating them. (more speed = more points)
- The number of points removed by the red pills are connected to the current health of the snake. (more points = heavier setback)
- Going through your own tail with the snakes head severs the tail at that position, effectively reducing speed but it does not impact the health of the snake.
- The music is layered and we launch loops based on the speed of the snakes, the faster you go the more complete the music experience is.
We went with a minimalist approach. Production rules were:
- No lightning
- No Level Design
- Everything is procedural
We started integrating rapidly during the night concentrating on getting stuff done and leaving bugs aside to fix in the last hours. This would be ultimately our biggest error of the jam. At some point, Daniel had to go home & have some hours of sleep during which Mederick and myself started to look into the code and find a way to create the score system and a game over screen. Daniel came back, gaves us what we needed to integrate sound effects and at around 8 o’clock we pretty much had a working game.
Right before starting to work on the music manager we started working on the biggest bug, trying to figure out how to fix it in code and we pretty much didn’t look at the right options… The fix broke everything and we used the whole remaining time doing damage control. In the end it still is better than before the bug but we couldn’t integrate the music manager because of it.
Which meant that Jimmy had to take all his loops and mix them together and put it as one big loop on the camera. In the editor, everything went fine, we were hearing all the sounds and had no problem whatsoever. But when we tried to build a version with it… the music would simply not play. We had no idea what went wrong. It was about 2h30 at that time, submissions were ending at 3 o’clock and we had a game with no music, which was not good considering our previous ambitions and the name of our project. The judges came in the room and we were lucky enough they decided to go in the back of the room to start their round. We continued our race against time, playing around with compression and cutting the loop a bit and we finally got it to work well before the judge were around our team. It felt like the kind of things you see in hollywood movies when someone is trying to hack a mainframe before being noticed.
Overall, the judges responses was quite good, everyone seemed rather impressed with what we delivered in the weekend. Some recomendations were made:
- Tighten the 3Cs (controls, character, camera)
- Fix the bugs
- Bring the score system to the front, we didn’t have time to play around with the HUD so it was a basic text in the upper left corner
- Port to tablets
The overall message was that it was a good idea which could easily be moneytized on the mobile market and that we should continue and try to sell it.
On our part, we are evidently pretty happy with what we were able to come up with, we are actually looking to further the experience of the game and make it maybe a product on the shelves around this year. We’ll see.
On a more personal note, I really enjoyed my time during the jam even if we got things to work pretty late and I kept fighting my own pessimism. But the ambiance, the joy of seeing people learn and make things work, all of it was awesome. When you race against time like this, every little battle you win count and are like little boosters which give you the energy to continue.
Also, the biggest thing I learned is that I need to better my skills at coding. I understand how code works, I somewhat know where to put things and organize it and I’m confident enough to try stuff out but I cannot yet start from nothing and make it work all by myself. This became very frustrating during the jam as I would have loved to be able to help out and do some grunt work on the code and make things go faster but I was kinda stuck in my designer position waiting for things to clear out. It was all the worse that we decided to not use any level design elements because then at least I could have provided a good amount of help.
Overall, the more I think about it, the more I look forward to my next jam experience. It is immensely enriching and what you take out of it surpasses greatly what energy or hours of sleep you give out to make it happen.
On final note, here’s the game’s presentation video: