1. Installation.

Isaac currently runs on Linux. Mac OS X ports will be disabled until issues with audio are fixed (pre-July versions should work, but require manual adjustments).


1.1. Download the source code via


> git clone https://github.com/grabherr/Isaac


1.2. Install the necessary development libraries via


> sudo apt-get install libx11-dev mesa-common-dev freeglut3-dev libxcursor-dev subversion libasound2-dev

on Ubuntu/Mint/Debian, or use the equivalent package manager on your distribution. These libraries are required by Isaac and/or the irrlicht engine.


1.3. Compile the software


Type

> make

(we recommend using the -j option for parallel make)


1.4 Install Irrlicht

Run the script

> ./getIrrlicht

This will download, install, and compile the current version of the Irrlicht engine. If you run into any issues during compilation or runtime, we recommend using the latest stable version ibntead.

1.5 Compile the Irrlicht client

Run

> ./compileIrrlicht


1.6 Test the installation

If there were no errors during the build, test the system by running

./TestGameEngine -i data/empty.cfg

This will bring up the client in full screen mode, with minimal decorations (floor, skyboxes), and allows you to move around using the arrow keys and mouse.


2. Running the coding examples.

All test programs require a configuration file. The minimal configuration is supplied in data/empty.cfg, a configuration with simple objects is supplied by data/experiment.cfg.

IMPORTANT: Always redirect the output of the executables, as they will produce a lot of debugging info!!

Selected examples:

./TestSwarming: a simple bird swarm/flock simulator (with sound)

./TestEcho: demonstration of the dynamic sound system

./GenomeBrowser: browse the genome of the bacterium E. coli strain K12 in three dimensions.

Note that the executables will start two processes: the server (command line), and the client, which starts the irrlicht engine. To exit the client, press 'z', and 'ctrl+c' to kill the server.

3. Configuring Isaac

There are two ways to configure the game: (a) via the configuration file, and (b) programatically.

3.1. Configuration file

To set up the basic appearance, edit the top of the configuration file (for examples, see the /data/ directory):

<basics>
GraphicsEngine ./irrlicht-code/bin/Linux/IrrClient
# Resolution 1680 1050 full
# Resolution 800 600
Resolution full
</basics>

For basic map configuration, see:

<map>
MapName         Simple
Terrain         data/Skyboxes/terrain-heightmap-empty.bmp
Texture1        data/Skyboxes/floor.jpg
# Texture2      data/Textures/grass1.jpg
SkyUp           data/Textures/clouds1.jpg
SkyDown         data/Textures/clouds2.jpg
SkyLeft         data/Textures/clouds3.jpg
SkyRight        data/Textures/clouds1.jpg
SkyFront        data/Textures/clouds2.jpg
SkyBack         data/Textures/clouds3.jpg
SkyDome         data/Skyboxes/skydome.jpg

DefaultScale 15.
</map>

To add models, see e.g.:

<animated>
X 5600 
Y 500
Z 5200;
MD2Model data/Models/snake.md2
MDTexture data/Models/snake.jpg
Name 1
Type Snake
Scale 6
Animation run
</animated>


3.2. Application Programmer's Interface

To set up a basic scenario, all that is required is:

#include "engine/GameEngine.h"

int main(int argc,char** argv)
{

  GameEngine eng;

  // Config file
  eng.ReadConfig("data/empty.cfg");
  eng.SetupMap(0);

  // Add light (optional)
  MsgLightNode light;
  light.SetPosition(StreamCoordinates(7000, 1600, 7000));

  // Run the engine
  eng.Run();
  return 0;
}


For a basic example on how to dynamically add entities and how to control them, see example 'test/TestManipulator.cc'