Ramblings and musings of a self-proclaimed geek.

I will endeavour to overcome my online reclusive tendencies and pour thoughts onto the t'interweb.

Global Game Jam

Just jamin…

We made a game! No really, we made a game. Stealth Shoal

It was pretty small in scope, but therefore could also be developed inside a weekend. It did though still have quite a few features:

  • multiple enemies (well ok, 2, or 3 if you count the islands)
  • It had a scoring mechanism
  • Bonuses - treasure chests
  • A start screen together with win and lose screens.

The point of the game is to save your shoal of fish and get them to safety. An arrow points to where safety is; you control the shoal of fish with the mouse. Move your mouse pointer and the little fishes will follow.

You can play the game here!!!

I’m proud of what we achieved in the 2 days. The team I was part of was made up of:

  • 1 arty creative 3d modeler/sound guy: (Kurtis Richards)
  • 4 programmers
    • Jase Magee
    • George Bott
    • Charles Christian
    • me

4 coders - what could possibly go wrong!

We used a number of tools. We really do live in amazing times. So many great tools, many free and available online. The tools we used:

  • Unity
  • Trello
  • BitBucket
  • Sourcetree
  • UnitySteer
  • 3D Studio Max
  • Audacity
  • GIMP
  • Transmit

What went well

Collaboration

We were a team of 5 with 4 coders looking to churn out reams of code in a short space of time. We collaborated well and that was made easier with Trello and a simple 3 list setup:

  1. ‘ToDo’
  2. ‘In Progress’
  3. ‘Done’

There were lots of distinct parts to work on and people grabbed any task they wanted from the pot. Some tasks needed fresh eyes and a different perspective and it was good to see people throw tasks around rather than hammering their heads against the wall.

Trello also worked well for passing assets around. Kurtis, our art bitch the modeller would work on the model and attach it to the trello item when done and reassign it to one of the coders to import into Unity and wire it up.

My son joined in

Jack (aged 7) chipped in with a little play testing and also knocked up the art for our start screen:

Start

We didn’t try to pull all nighters

I’m also pleased to say that we didn’t try to squeeze every last hour out of both days. (Apart from Charles and George) we ain’t no spring chickens! I think we were pretty sensible. We worked through to around 1am on both nights and grabbed a reasonable nights sleep before heading in at around 10.

We learnt stuff

My initial thought when the theme was announced was tower defence. Waves of enemies trying to take you down. A simple 2D, top down tower defence game. The team threw a number of different ideas out there for consideration and I’m glad we chose the one we did (thanks Kurtis).

  • I’ve never worked on a stealth game before
  • Had never tried to simulate swarming fish before
  • Had my first real play with a shader (albeit a very simple one)
  • had 4 coders thrashing out code collaboratively using Unity - it went a whole lot better than 3 of us trying to use Game Maker last year.

Cool tech

Unity Steer is an amazing steering/path finding framework and was used for both the shoal of fish and the steering used by both the Whales and Trawlers. The framework is really easy to drop in and get something up and running quickly. You need a vehicle component which applies forces from the steering components that are also attached to the object.

Whales

Whales

These utilise a SteerForSimplePath component. The Whale has a crude AI script that randomly steers to point after point whilst spraying its sonar wave around. Once it detects a fish it sets this as its new course.

Boats

Boats

Boats use a SteerForPathSimplified. This takes a list of points that it must navigate around. We initially had a bit of trouble with this steering component with the boat stopping when it got to the last point in the circuit rather than starting again. We’re not altogether sure how we fixed it either! It just started working and we havent yet dived in any deeper. It’s sometimes better to just accept and not question things.

Fishes

Fishes

UnitySteer made this look really good, although it took a lot of fiddling.

The fish use a combination of components:

  • They, like the boats and whales are autonomous Vehicles
  • They also have a radar component so that they are aware of their neighbours
  • This is used by the SteerForNeighbour component that is configured to draw its neighbours in
  • Counter-intuitively we also use a SteerForSeparation script that gets the fish to steer away from neighbouring fishes if they get too close
  • They have a steerForTether component that moves all the fish towards a certain point - in our case the mouse pointer

The combination of the components above cause the fish to push and pull each other around within the shoal, and justle around as they steer towards a tether point. This created a pretty good look. The only criticism of UnitySteer is that it has loads of variables that you can tweak. It is not always obvious what they do from there name so you will need to play around a lot and dive into the code which to be fair is well documented. You can combine any number of steering strategies that all apply forces to the vehicle component though which works well.

The Jam itself

Jammers

The GlobalGameJam is an every growing event and I’ve enjoyed each of the last 3 and look forward to many more. The last two have been kindly hosted by the Digital Greenhouse which is an awesome space full of light and general creative energy.

This year saw us based on the 3rd floor which was a shame. The space is an excellent events space with a huge screen that can accommodate a fair sized crowd. What it isn’t is comfortable. You can’t work productively for long periods of time. The desk heights are not set up for people to be sat at them working on computers. The chairs are not desk chairs and become uncomfortable quickly. Last year we used the 2nd floor which is set up with proper working desks (and chairs). Hopefully we will be able to occupy this space next time and save some aches and pains.

We were fortunate to have C5 Alliance sponsor the food on the first night which was gratefully received. Again, I feel a little responsible for not doing more and sorting out some sort of swag bag. It would have been good to have a memento or two from the event. The game jam mugs they produced for 2016 went down well and is certainly a treasured memento of my son’s.

The turn out was good. 5 games were produced which is pretty good and they were 5 good games. I think we could have done better though. I’d like to see more College kids take part and will look to get into the colleges in the weeks leading up to the event to market the event and hopefully get them enthused.

Ending on a positive note though, it was a huge amount of fun as always and great to see variety in the games that were produced.

You can see more photos here.