[freeciv-ai] Re: interested in building a new client-side AI
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Mon, Apr 21, 2003 at 05:47:34PM +0000, David Chen wrote:
> I am a Berkeley student working with my professor on implementing an AI
> for freeciv. We are interested in building a completely new AI agent that
> knows only as much as the human player. As I understand, the current AI
> code is a bit messy and is attached to the server side. Moreover, one of
> the current goals being worked on is building a client side AI. So I was
> wondering how difficult it would be to build an interface for a client side
> agent. Since we require no omniscience, it wouldn't need any hack on the
> server code. If anyone can point me to the files that I need to read to
> build a clean interface, that would be greatly appreciated.
First start from a recent CVS copy rather than 1.14.0 A _lot_ has changed
In terms of the raw interface, I suggest first looking at
common/packets.[ch] since you'd be using packets to communicate with the
After that take a look at client/clinet.c to see how a client connects to
the server. Then glance at client/packhand.c to see how a client updates
it's data structures from the server.
In terms of simple automated requests from a client to server, look at
client/agents/cma_core.c:apply_result_on_server(), (Note I do not suggest
this as the sort of model you should actually use!)
For code reuse, I would look at the code in common/aicore. These are meant
to be used as basic algorithms in both the server and client. Currently
path-finding and single-city worker management are the only things there,
but perhaps we can put some more stuff in there as things become more
modularized in the server-side AI.
And please, if you're really serious about this sort of project, don't be a
stranger to the list. Many [most] of the same problems facing a client-side
ai also face a server-ai (and vice-versa).
If you're having any problems, don't hesitate to ask.