Overview | Details | Philosophy | Task authoring | About | Coming soon

Overview

(Hover your mouse over definitions.)

How do I shoot?

There is (usually) no shooting. It's more like a strategy game, but not quite like that genre either. You might call GoiD an 'advance strategy' game. If you like a good puzzle, you've come to the right place.

It's like this... You don't play the game, you write a script that plays the game, and you sit back and watch your magnificent brilliance in action.

Hmm... some details please...

At its simplest, your script reads information from the agent's senses, and then writes values to the agents' actuators. What specific senses and actuators are available depends upon the task. Depending upon the requirements of the task and the true extent of your genius your script can become arbitrarily large and complex so as to include memory, conflicting desires, emotions, and such. Hey, why not just make it intelligent while you're in there?

I'm still not sure i get it

An example may help. Take the 'donut' task. The goal is to have the agent perform a single lap around the island. It is able to sense the direction it is facing, whether there are any obstacles (walls) in its way, and whether its last attempt to move was blocked (i.e. it hit a wall). It is able to actuate a turn, a forward movement, and a backward movement. There are many ways in which the goal can be achieved, but a simple approach is to move until a wall is reached, and then follow that wall around until the lap is completed. A sample (un-optimised) script is provided in the task.

Details

The interface

The user interface is divided into three parts: the environment viewer, the script panel, and the output panel. The environment viewer allows you to see what is happening to your agent(s). You can use the mouse to pan around, and the magnification buttons ( and ) to zoom in and out. Use to see a summary of your agent's current state.

The script panel is where you edit your script. To get you started, each task has a sample script that is copied to the script panel by pressing . Typical buttons are included to undo (), redo (), and save (). You must save your script to have the agent(s) use it! If your script saves values into its context, you can use to clear the context out.

The output panel displays messages that your script writes. Just use

  console.out('my message');

Click to clear the output panel.

The process

A task is executed in discrete time steps. At each time step the agent is given its current state, and its script is executed allowing it to write values to its actuators. These output values are used to update the agent and the environment, which will likely result in different senses values at the next time step in a feedback loop.

To execute a single time step press . To start a loop of execution press . To pause execution press . To stop execution and reset the environment back to the beginning press .

While an execution loop is running, you can speed it up with the button, or slow it down with . Note that the game runs in simulated time, not real time, so things like the speed of your computer will not affect your score.

The exam

When your script is ready, press to run it for real. In run mode you are not allowed to modify the script or agent context, because when your agent finishes the task your score is evaluated. To abort a run press .

Philosophy

"As a general rule, biology tends to be conservative. It's rare that evolution 'invents' the same process several times." - Gero Miesenböck

You'll find that for tasks that are similar enough you'll be copying functionality that worked well before into your new designs. The obvious parallel–albeit abstract–with evolution is genes. Sure, it's reaching but it's oddly satisfying at the same time.

What does this have to do with Intelligent Design?

Nothing. And everything.

Are you a Darwinist or a Creationist?

In the game? Yes.

Stop that

Obviously when you play the game you are the intelligent designer. But every time you make a modification to your script you evolve your agent's behaviour. There are multiple levels of evolutionary pressure going on here. First, you need your agent to solve the task; if it doesn't do that, you change your script and the old script becomes extinct. Second, when your rank isn't as high as you want it to be, you again evolve the script. Finally, for those tasks in which multiple users can have their scripts executing in a single competitive play environment you need to adjust your script to account for the behaviour of other scripts. Neat or what?

Task authoring

If you are interested in authoring tasks for GoiD, contact the fellow mentioned below in the About section.

About

The Game of Intelligent Design is developed and maintained primarily by Matthew Lohbihler of Serotonin Software (ml, gameofid, com). If you would like to contribute to this project, please please please please contact me.

Coming "Soon"

There are big plans for GoiD. Among the diaper load of task ideas there are things such as:

Sure, some of the above is a bit wishy-washy, but what is lacking in definition is more than made up for in enthusiasm. Needless to say, two things are clear: 1) GoiD's future will be interesting, and 2) some help might be needed (see About above).