[ODE] OT: virtual creatures in games

gl gl at ntlworld.com
Tue Mar 25 17:30:02 2003


BTW, just to clarify, I'm ideally interested in neural net type learning,
rather than hardcoded approaches like path finding - hence my question here.
The exciting thing is not being able to predict how a creature might learn
to achieve it's motivations...
--
gl

----- Original Message -----
From: "gl" <gl@ntlworld.com>
To: <ode@q12.org>
Sent: Wednesday, March 26, 2003 12:26 AM
Subject: Re: [ODE] OT: virtual creatures in games


>
> Interesting - I guess I should classify what I'm after.
>
> Essentially I'd want creatures for an on-line world that do unspecified
> interesting things using some believable motivation, and some would be
> potentially hostile.  However, gameplay would not center around them (and
> there would no need for predicatble outcomes) - it's more about having
> interesting, unpredicatble and potentially dangerous things to explore,
all
> as part of a much larger landscape.  The creatures may themselves be
> randomised to some extent, depending which way I end up taking this.
>
> The idea is that the game is not only different every time, but I also
want
> my own creation to suprise me.
>
> As this is a persistent online world, it would also be fun (if feasible)
to
> evolve creatures over time, or at least keep them learning and
experimenting
> with their environments.
>
> As for inputs, I would have things like raycasting, light sensivity (if I
> can figure out a fast way), perhaps smell, memory of other creature
> types/individuals (eg. a creature could learn to become hostile to
player(s)
> if they treat them badly, or run scared etc), and possibly things like
> memory of areas that are safe (hiding under a rock) - that kind of thing.
>
> So, can anybody recommend an AI approach that fits the bill without huge
> performance/memory requirements (memory because I'd want a lot of these,
and
> it might eventually be a console game too)?
> --
> gl
>
> ----- Original Message -----
> From: "John DeWeese" <deweese@ict.usc.edu>
> To: <ode@q12.org>
> Sent: Tuesday, March 25, 2003 11:54 PM
> Subject: Re: [ODE] OT: virtual creatures in games
>
>
> > I've had a few thoughts about this which might be fun to share. First
> > of all, you have to ask what kind of game you want to make, but given
> > that simulating an articulated creature takes a lot of investment in
> > programming time and run-time computing, it is likely to be a primary
> > feature of the game. If you have enough computing power, you can make
> > it secondary and special-effects related if you so desire.
> >
> > Problem the first: traditional AI algorithms for path planning,
> > decision making, etc. assume that the unit being controlled behaves
> > predictably, i.e. that it will trivially (perhaps eventually) converge
> > on a state, or die trying. Bad AI happens when the units get stuck, or
> > start moving somewhere wierd like a live fire zone, but it's worse when
> > you can't even guarantee if you virtual creature can move where a high
> > level planner wants it to move. If you cannot guarantee this of your
> > virtual creatures, you must limit their role to playthings (as in an
> > exploration or toy game) or special effects. On the other hand, it
> > would be very nifty to develop a framework which allows you to make
> > some statements about what conditions are necessary for convergence
> > (e.g. moving to a target) or divergence of a given creature. There may
> > be some research on this out on the web. Karl Sims had a video of a
> > little swimmy thing following a point, and it would follow it pretty
> > well. If you've got some consistent directed locomotion, I believe you
> > can start to design some meaningful higher level AI.
> >
> > One BAD thing to do would be to place the user in direct control of the
> > creature, as in Quake... unless you can make some guarantees that the
> > creature will do PRECISELY what the user expects when he or she expects
> > it, which is difficult. You may have to come up with a hybrid kind of
> > scheme, with some direct control and some implicit simulated control.
> >
> > What happens if you want to evolve the creature in-game? Well, lots and
> > lots of waiting for one. Boring! That is, unless it's a "digipet" kind
> > of game, which has different requirements.
> >
> > Regarding resource usage, you'll have to time it yourself according to
> > the kind of creatures you have running around! This very much depends
> > on your specific code. Very jointed creatures are a waste, of course.
> > Neural networks should be pretty cheap if you keep the node count low,
> > and most virtual creature projects have relatively small neural
> > networks, on the order of 10 to 100. Memory is cheap!
> >
> > Finally, lack of control of basic gameplay principles like movement (as
> > I mentioned before) generates big problems for a game designer setting
> > challenges for a player. Often in a game you want to advance the state
> > of a story or something of the sort, and in order to advance you
> > require that the player accomplish some goal or solve a problem using a
> > skill. If the player operates on different rules of movement or
> > interaction than your assumptions, you as the designer will no longer
> > have control over how the player is rewarded regarding goals and
> > stories! If you require the player to evolve creatures for every task,
> > this is expensive and the player will have difficulty exploring the
> > space of what each creature can do. This might not even be a bad thing,
> > but it is at least LOTS more difficult if you can't consistently teach
> > all players a skill! This topic needs more discussion, though, since
> > you may very well come up with a method to solve this problem or make
> > it irrelevant and still make a game fun.
> >
> > Sorry for the long post...
> >    John DeWeese
> >
> > On Tuesday, March 25, 2003, at 12:13 PM, gl wrote:
> >
> > >
> > > Sorry for the (sorta) OT post, I promise it's a one off, but I know
> > > there's
> > > a lot of people here that have worked on virtual creatures.
> > >
> > > Without having done any work in AI (though I understand some of the
> > > principles behind neural nets in general), I'm wondering how feasible
> > > simple
> > > learning creatures and/or fully evolved creatures are for use in a
real
> > > game.
> > >
> > > Using the simple creatures that learn to walk/crawl/jump as an
> > > example, how
> > > heavy are they on system resources (both memory & CPU)?  I'm really
> > > asking
> > > about two cases:
> > >
> > > a) where you have evolved a creature in a seperate app to a sufficient
> > > level
> > > of intelligence, and just want to use its brain as is in a game,
> > > without
> > > further learning ability - how much memory would its brain take up
> > > (roughly), and how CPU heavy would a logic tick be?
> > >
> > > b) where you want the creature to continue learning in-game to make
its
> > > behaviour more interesting and unpredictable.  Again, what are the
> > > resource
> > > drains?
> > >
> > > I'm only after very rough guides - any insight would be appreciated.
> > > --
> > > gl
> > >
> > > _______________________________________________
> > > ODE mailing list
> > > ODE@q12.org
> > > http://q12.org/mailman/listinfo/ode
> >
> > _______________________________________________
> > ODE mailing list
> > ODE@q12.org
> > http://q12.org/mailman/listinfo/ode
> >
>