This is the mail archive of the xconq7@sources.redhat.com mailing list for the Xconq project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: AI (very long)


>Pathfinding is a good example.  Sure you can do a maze-solver, but
>terrain can be slow and/or use up fuel - how do you weigh those
>consideration against each other when doing A*?

The problem is that the AI can't do basic maze-solving even if these
additional considerations are disregarded. It can't figure out how to walk
around a simple obstruction like a small lake. So I agree with Lincoln that
even a very simple path-finding algorithm would improve AI performance a
lot.

>I think the generic AI is always going to be disappointing; it needs
>to do rather deep analysis of game designs just to decide how to use
>different units (should a floating city with weapons go into combat?
>Maybe so, or maybe not).  Once you've got past that, then you've
>got to do all the usual strategizing algorithms, but parametrized.
>So the task is harder than has ever been done for any game system,
>but there's no team of a dozen hackers working fulltime for a year
>on it.

A key problem is making good estimates of unit values in specific games. It
would be very difficult to write unit worth functions that cover all games
and variants. On the other hand, the game designer usually has a fairly
good idea of what these values should be. So I think the possibility of
using pre-assigned unit worths has some potential. Sort of moving part of
the AI to the game file.

>The more promising direction is specialized AIs for particular
>game designs.  Tactical stuff is mostly factored out into unit plans,
>so the specialized AI can still use that (and people interested in
>tactics can make unit planning smarter and improve all AIs),
>and its primary role can be to decide theaters, build mixes, and
>so forth.

This is a good point. I don't think everybody realizes how
compartmentalized the AI code is, and how much of it lives outside the
mplayer. What I mean is that most of the shared low level stuff is in ai.c,
while mplayer.c contains all the strategy code. This actually makes
improvements easier, since it is possible to work separately on the tactics
and strategy code.

I think that of the two, it is really the strategy code that is in most
urgent need of improvement. The basic problem, as I mentioned in a post
last week, is that it is very static and fails to reassign units or change
directions of attack quickly enough. One measure of how inefficient the
strategy code is, is that the mplayer frequently looses against its own
lobotomized clone (the iplayer) which contains no strategy code at all.

Hans



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]