glob2-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [glob2-devel] Creature AI


From: Stephane Magnenat
Subject: Re: [glob2-devel] Creature AI
Date: Sun, 22 May 2005 22:21:36 +0200
User-agent: KMail/1.8

Hello,

I've several things to say, so I'll try to be brief and concise. If I'm not 
clear, don't hesitate to ask.

First, sorry for not answering this mail sooner. I'm a bit ill those times 
(rum of the hays (I hope google translated did its job)) and I have a lot of 
work. Furthermore, I wanted to take time to read your proposal.

Second, thanks a lot for your interest in glob2. In the following of this mail 
I will criticize some points but keep in mind that if you have a good idea, 
and are convinced about it, go on and implement. At worst, you'll have learned 
something. At best, you can a nice result as bonus.

Third, and I stop counting now, Nuage did as much work as I did on glob2. We 
designed the game together. On the core engine, he did even more than me. For 
instance, he is the authour of the gradient and unit allocation system. I 
worked a bit more on the infrastructure, for instance the whole graphic 
subsystem. I'm a bit more "visible" because I'm the release manager and 
sometimes on irc.

So, let's begin by answering your questions:

> does this seem like a good idea in principle?

Nuage and me have discussed several times the idea of using GA in glob2 during 
those last five years. Nevertheless, we never got into as much details as you 
did, and even if there is several problem with your system, I really like the 
idea. Nevertheles, I don't see it as a direct upgrade of existing glob2 
gameplay, but rather as a sort of experimental artificial life system that 
can life beside glob2, even in the same repository if you want. But for now, 
and until we know that it works fine, it would be unwise to change the actual 
system in "production" glob2.

> What other new features could I crowbar in?
> What features should I take out?

As I see it, the system you suggest is a whole in itself. Try to make it 
coherent. Think of wether you want an artifical life simulation or a game. If 
you want a game, what will be the gameplay? What will the user be able to do? 
Try to have a clear picture of it in your mind.

> Do any of you have GA experience you can share with me?

Sure, I'm doing my PhD on it. I'll put some thought after the questions.

> What else needs to be rewarded/punished in the fitness function?

see below...

> Ignoring practicalities for a moment, how would you like an ideal race 
system to work?

see below...

Now some issues about your proposal. I don't try to trash it, just to 
highlight problems so that they can be fixed before implementation.

The part on the unit seems reasonable. But for the job system to work, units 
have to register to building, then they are evaluated by the buildings using 
a complex scoring to be choosen, Do you plan to trow it away? If yes, then 
the game will be like glob1, which works, but is quite different. If not, 
then evolving the units won't change so much the gameplay as the buildings 
will still have a lot of hardcoded intelligence.

For the boostrap, some basic working genome will have to be provided. That 
also mean beginning with zero diversity and relying on mutations to do the 
job (but that's always the case, keeping diversity in actual GAs is a myth 
(we are working on it)).

In the GA you suggest, the colonies are heterogeneous (at least given the 
mutations) and selection acts half on individuals (the way they do certain 
jobs) and half on the colony (if no one brings food everyone die). The 
problem is that in this condition, you will very soon see cheaters that will 
optimise their own score as much as they can while reducing the score of the 
other as much as they can. You'll have to make sure that doesn't kill all the 
dynamics.

Take care about the fitness function, that's where all the intelligence lies. 
And evolution is very good to find conceptual bugs in your fitness function. 
Furthermore, the more terms it has, the more prone to errors it will be.

What will be the control system of the units? From your post, I've the feeling 
that you were thinking of truth tables. If you want the units to look a bit 
intelligent, they should have memory. If they have in input of the table the 
ressource they are holding, then perhaps it is enough, and perhaps not.

So, in summary, I suggest you focus your thinking on:
* wether you want a game or a simulation,
* how the interactions with buildings will work,
* what will be the fitness function,
* how you plan to handle genetic conflicts due to individual level selection.

Once you have a clear mind, you can take glob2 and prototype your ideas. But 
don't commit to head. Do a branch or another target using the same sources.

I hope my comments help you,

Good luck and have fun!

Setph




reply via email to

[Prev in Thread] Current Thread [Next in Thread]