[virtmach] Your VM

Thaddaeus Frogley virtmach@iecc.com
Tue, 29 May 2001 10:05:22 +0100

> So, why do you think VM with it's own code was a better 
> implementation option for Creatures than say interpreter

Well, as I didn't work on Creatures, I can't say, but for Beasts (working
title), the choice was clear.  A bytecode VM is easier to implement than an
interpreter, and is a more efficient use of space & time.  The compiler pass
permits analysis and optimisation of the "scripts" that would not be
feasible at runtime.

> , or encoding behaviour of your objects over some domain-specific library?

By using a VM as the back end to our behaviour language we get complete
control over the "game" part of the system.  The VM can be debugged, and
profiled in real-time, any agents that contain bugs can be killed, or
replaced at runtime without killing the whole simulation.  Serialisation
comes for free.  Rapid prototyping is a reality, and can be achieved with
minimal training.

Efficiency concerns are minimised as the game team has direct access to the
engine team, and any bottle necks (quickly identified with profiling) can be
quickly ported to C++ and incorporated as features of the engine.


Thaddaeus Frogley
Beasts Team, Creature Labs Ltd