[vworld-tech] VWorld Ontology

Richard richard at ccpgames.com
Wed Apr 14 06:25:02 PDT 2004

> From: ceo [mailto:ceo at grexengine.com]
> It's something we've used for a while now, and there's really 
> only one major problem: speed.
> Inference engines these days are generally either very very 
> expensive or very very slow :P.

This isn't a concern at all for me.  I am working on a hobbyist
project, and I am just as happy for it turn out to be a
simulation for as long as this would remain a problem.

> We're still evaluating whether any of the commercial off-the-shelf 
> engines are fast enough to drive any non-trivial parts of real-time 
> games. Obviously, if you're game can cope with a low update frequency 
> (e.g. 1Hz or slower) then inference engines should work quite 
> well for you.
> However, most (non-top-of-the-range) engines are optimized for 
> behaviours that are quite hard to get in games; e.g. the classic 
> rete-based systems. We developed our own that has been 
> optimized for the 
> kinds of patterns we expect from MMOGs, and this is our base for 
> benchmarking the generic commercial ones against (nb: our inference 
> engine wouldn't be much use outside of our game-server; lots of 
> shortcuts have been taken to try and get it to work tolerably fast, 
> using assumptions that are valid for our app domain).

You are hinting at a lot of things I would find very interesting
to hear your thoughts on and about your experiences with.

What kinds of patterns are you expecting that make the standard
optimisations used insufficient?

What engines have you evaluated and exactly what do you do as a
benchmark in order to determine if an engine suits your needs?

The advantage of OpenCyc for me as a starter pack is that I
suspect the ontology which comes with it will be of use in
providing that common-sense foundation.  And by the extent of
its content would guide formation of further rules.  Are you
thinking of providing something similar?  Or is that something
for someone who uses what you are providing?  Or is the use
you expect out of it such that a similar base to work from
would generally not be of use?

> If you're going to attempt this for a hobbyist game, I'd 
> suggest picking a game-design where low frequency game-logic
> was acceptable (there are many such game-designs, but it's not
> going to be easy if you're hoping to make a modern MMORPG)

I'd be interested if you could give an example of what you mean
by low-frequency game logic.  Any insight you have on the
extent an inference engine could be practically used in a
modern MMORPG as well.

Its a pity in terms of MMORPGs.  Because being a game logic
programmer, practically everything I do, I do thinking that I
could also do it using an inference engine with less effort
and stress if it were practical.  Theres a constant balance
between deciding how well something can be done and the time
that can be spent on it.  In terms of being able to afford the
time to abstract the framework being modified as much as it needs
to be, to make the current change less of a burden in future
work.  When I say stress, I mean the concern that if the time
is taken to make some degree of the framework change that would
be ideal, theres more potential of course to introduce bugs.

It is of course possible for me to test all my changes on my
local game servers to the extent where I believe I know theres
no bugs but the whole process of being able to test the changes
to the extent they can be and having to always know the range of
influence the changes have wears on me.  I mean in the sense
that every time I come back to a system that I have not had to
look at in a long time, the comments never seem to sufficient to
bring back to mind the knowledge of the range of influence of
the changes I need to make.  So being able to test to that extent
has a relatively fixed cost given the passing of a given amount
of time.

Would an inference engine make this easier?  Perhaps not for
more involved things but when it comes down to changing some
rules, it should be of some help.

I certainly don't mean to infer that our game logic is bad, to
me it is that there is such a lot of it.  The reason I qualify
this is that it is trying to post to our forum and then when
I return to read more about some problem, theres mainly a
multitude of posts reading something into what I have said :)

Building a framework where an inference engine has a place
perhaps you have a more accurate perspective of how practical
using it actually is.  I imagine to determine how much use it
would actually be in our game would require experimentation.
It is unlikely to ever happen, the experimentation to gauge
the actual usefulness and the intent to use it.

But my interest is for a personal project where I don't have to
care about the performance constraints or an existing system
where the database and scripting language define pretty much
everything, the idea of doing it the same way just taints the
appeal.  Not that theres anything inherently wrong with that
approach.  Just that the promise of not having to hard-code
these things or to have what seems to be the ideal data-driven
design has a nice feel.

Anyway, I've just kept adding more and more to this as I sat
here reading it over.  My lunch break ended 20 minutes ago
so I better just send it before I extend my work day anymore :)


More information about the vworld-tech mailing list