Complete.Org: Mailing Lists: Archives: freeciv-ai: April 2003:
[freeciv-ai] Re: New settler code

[freeciv-ai] Re: New settler code

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Gregory Berkolaiko <Gregory.Berkolaiko@xxxxxxxxxxxx>
Cc: Freeciv AI development <freeciv-ai@xxxxxxxxxxx>
Subject: [freeciv-ai] Re: New settler code
From: Raimar Falke <rf13@xxxxxxxxxxxxxxxxx>
Date: Thu, 17 Apr 2003 08:49:18 +0200

On Wed, Apr 16, 2003 at 10:49:29PM +0100, Gregory Berkolaiko wrote:
> Here are some thoughts:
> 1. While I think that client AI is not something great, I am completely 
> against integration of the AI into the server.  In my opinion the 
> structure should be
>       judge--
>         |    \
>      server---AI
>     /      
>    IP      
>    |      
>  client    
> where judge is the rule-interpreting code

I agree but would rename judge to "game logic" or "game rules (code)".

> and the server deals with data 
> storage and distribution.  

> My reason agianst client AI is that any AI needs access to the rules
> (see CMA for examples), so you either duplicate the judge in the
> client or overload IP-link with requests for judge rulings.

Yes this is a drawback but I see no way around it. Note that I think
that not CM itself holds much game logic but the movement of
generic_city_refresh from server/ to common/ was to big move of game
logic into the client.

> But enough of this day-dreaming.  Let's have a look at server_remove_unit.
> It calls ai_unit_new_role to tidy up the minimap (settler map withfuture 
> cities)!!  So the server is maintaining the AI data structures.  I feel 
> this sort of thing is completely unacceptable!

I wouldn't say "completely unacceptable" but "very ugly".

> 2. Second bad thing is the coordination between different AI's of their 
> city-building activities.  This is just not supposed to happen.  Make them 
> race against each other!!



 email: rf13@xxxxxxxxxxxxxxxxx
  What's nice about GUI is that you see what you manipulate.
  What's bad about GUI is that you can only manipulate what you see.

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