Latest Entries »

Bristol Game Jam

Bristol is a wonderful place for digital creatives – it’s a bit of a surprise that the games development scene seems over the last few years to have quietened down a bit.

But that doesn’t mean it needs to stay quiet.

To stimulate the scene (and have some fun) a bunch of Bristol game developers, sound and graphics designers got together to stage the Bristol Game Jam event.  Held at Pervasive Media Studio, organised by Red Wasp Design with a few helping hands, and in cooperation with the ExPlay festival, a bunch of us got together to build a game in 24 hours.

Except that we got together on Friday night, whereupon we were given the theme for the games (Mirror) and then decided that food and beer was the way to generate some interesting ideas.  That ended at about midnight for most of us, and there were a few sore heads on Saturday morning.  The time limit was 7pm Saturday evening, so in effect we had 7 hours to put together a working game.

Amazingly all four groups achieved this, and by the end of the day there were five playable games.  Granted, none were going to win any awards (although given more time who knows) it was very inspiring for everyone involved, I think a lot of relationships were formed and there was a general buzz about the day which everyone took out with them on Saturday night.

Our team put together a very simple game based upon Jason (of the Argonauts) trying to reflect Medusa’s gaze back before being hit himself:

Our team included Jae (DJ Task) and myself programming, Tessa providing the visuals and 3d models (you don’t want to know what it looked like before the visuals) and Dave (founder of Echoic Audio) producing the audio which really made the game.  Dave has put a far better post up here to describe the day.

Great fun, and hopefully the start of many more Game Jams and the opening up of the game scene in Bristol.

Source code on GitHub.


A simple Space Invaders clone put together as an learning exercise.

The name is a reference to a company I used to work at, I was going to give this to the team when I left, but somehow never got around to it.

I was lucky enough to get the music to be produced by Armin Elsaesser, an award winning games music writer:

The things I learnt:

– How to use the prototyping language Processing (  Worth checking out.

– A way of making each invader unique with a fractal texture generator

– The perlin noise function for generating smooth random moves (the saucer)

This was a lot of fun to develop, and is quite fun to play as well!

Source code can be found here if you’d like to play or see how it works:

Intelligent Systems: Week 1

One of the reasons to keep this website is to record progress through a PhD in Intelligent Systems, being studied with the Informatics department of Kings College London.

Found a great crash course in AI which is being run by Stanford University, Palo Alto California.  The lecturers are Sebastian Thrum (research professor at Stanford, Google Fellow) and Peter Norvig (Director of Research at Google, previously head of Computer Sciences Division at NASA, fellow of the American Association for Artificial Intelligence).  The course is run online through use of interactive youtube videos, and through tests and examination they are able to use the scalability of the internet to provide their experience to training 145,000 students in 18 different languages.  Have no doubt this is the future of eduction.

The informatics department at Kings has many specialists in Multi Agent Systems, so have been reading the much recommended

Introduction to Multi-Agent Systems, by Michael Wooldridge

As a quick run down, Agent systems, and software agents in general, are a specific class of system where a piece of software has the ability to monitor an environment (be it a stock exchange, a flight to Mars or a computer game) and take actions based upon it’s own beliefs, desires and intentions.

Environments can consist of almost anything, however can generally be classified on the following scales:

  • Accessible vs Inaccessible – how much of the environment can be ‘seen’ by the Agent
  • Deterministic vs Non-deterministic – do actions change the world in a predictable way? Rolling a dice is an example of non-deterministic
  • Static vs Dynamic – is the environment changing through the actions of other agents or entities
  • Discrete vs Continuous – are there a set number of states in the environment (e.g. chess) or infinite combinations (the real world)

We can also add a few more from other sources:

  • Non-hostile vs Hostile – are all agents attempting to bring about the same result, or are there agents working against our goals?

Agents generally need to display and balance the following capabilities:

  • Being Reactive to changes in the environment
  • Being Proactive to set goals and carry out plans to achieve the goal
  • Being Social, working with or around other entities to achieve goals

There are many subjects covered in the book that provide insight into how agents can be built, including:

  • Symbolic reasoning agents & software that can form and manipulate a model of the world
  • Practical reasoning agents, how an agent forms beliefs, desires & intentions, then designs and evaluates plans to achieve goals
  • Reactive and hybrid agents, the idea that intelligence is an emergent property of enough simple logical reactions
  • An overview of the applications of agents in the real world, including Stanley, a car which drove itself 40 km through the Arizona desert to win the DARPA grand challenge
  • Where it gets interesting – methods by which agents can communicate and work together to bring differing capabilities to solve a problem

To give an idea of what the practical outputs of this are:

  • Approximately 70% of trades made on most stock exchanges are carried out by software agents that are constantly evaluating the market.
  • Google employs a vast array of software agents to run their search indexing and other services
  • Apple’s iPhone 4s has an integrated agent called Siri which will understand voice commands and take actions at the users request.

An area of personal interest is the use of biologically inspired methods for programming agents, i.e. looking emulating the ways nature solves problems.  All sorts of creatures using group collaboration to solve problems in swarms, hives, flocks, herds or packs.  Craig Reynolds provided some seminal work in this area, and has published a number of research papers that still engage much interest in a variety of industries:

Craig Reynolds: Flocks, Herds and Schools: A distributed behavior model

In particular this paper presents a number of simple rules which can be implemented across a society of individuals to generate behavior which is startlingly close to flocks of birds or shoals of fish.  If time permits some examples will be posted here to demonstrate.