Complete.Org: Mailing Lists: Archives: freeciv-ai: June 2003:
[freeciv-ai] Re: Hi, I'm back. aiclient

[freeciv-ai] Re: Hi, I'm back. aiclient

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Manuel Gutierrez Algaba <stemanolo@xxxxxxxx>
Cc: freeciv-ai@xxxxxxxxxxx
Subject: [freeciv-ai] Re: Hi, I'm back. aiclient
From: Raimar Falke <mkktiR0OeMt#0lYVHZQwE@xxxxxxxxxxxxx>
Date: Sun, 29 Jun 2003 14:11:26 +0200

On Sat, Jun 28, 2003 at 11:16:39AM +0200, Manuel Gutierrez Algaba wrote:
> Hi,
>       I was "working" with Mitch Davis and other some years to go to build an 
> AI, 
> but finally I never did anything. I did my final year work about AI in a 
> "freeciv-like" game, which was interesting but not what I had in mind. I'm 
> the author of the wegener generator map, included in the ftp server. And my 
> name, with the old email (irmina) appears in the "people" section of freeciv. 
>       After having thinking and experienced a lot about, AI development and 
> open 
> software, I think that "big leaps" are much harder to take in soft. 
> development. 

Welcome back.

>       Per is right, when he says that civlog has all the info about the game. 
> But it's in the server. Just imagine this: a small client of the civclient 
> program, thus the structure of freeciv would be:
>     aiclient --> civclient --> civserver , where --> is a socket connection
> What's the flow in aiclient--> civclient ?
> Well, as I say, any user wants to manage cities and units the right way. 
> aiclient 0.0.1 has this input from civclient (to start with):
> - city/ production \n  . So this can be parsed by a perl, prolog or a python 
> code ( that is aiclient may written in anything) . This says to aiclient 
> what's everyone producing. This is a "get" instruction.
> - city-prod-change / new production \n  . This is a "set" instruction. 

Nice model. Very low impact. Yet you have to implment the text parsing
in the client. Also the interface won't be small. You have to
implement almost all packets and also some policy functions (can move
unit?, could I attack?, ...). However you can start here with a small
interface and enlarge it.

> So you may have a script ( aiclient, connected by a socket to civclient) to 
> change the prod of all your cities coding in the aiclient in your favourite 
> language.
> This has several advantages:
> - As I say, people want to improve the playibility of the game, and get more 
> power. 
> - The code of freeciv remains untouched, almost, just civclient must fake the 
> orders coming from aiclient and send what receives from civserver to 
> aiclient. So great development stability. 
> - Small steps, but real advances in every single step. 
> As you may imagine, the aiclient will converge over the time into a superb 
> aiclient for artificial players (just connecting them directly to civserver).
> Well, tell me what you think. I may help in aiclients written in python and 
> in 
> guidance and profecy (as always :) ) .

Because you speak about python: you may want to look at


 email: rf13@xxxxxxxxxxxxxxxxx
 "When C++ is your hammer, everything looks like a thumb."
    -- Steven M. Haflich

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