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'