Complete.Org: Mailing Lists: Archives: freeciv-dev: May 2003:
[Freeciv-Dev] Re: (PR#4111) Client-side AI
Home

[Freeciv-Dev] Re: (PR#4111) Client-side AI

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: undisclosed-recipients:;
Subject: [Freeciv-Dev] Re: (PR#4111) Client-side AI
From: "Raimar Falke" <rf13@xxxxxxxxxxxxxxxxx>
Date: Fri, 2 May 2003 02:19:11 -0700
Reply-to: rt@xxxxxxxxxxxxxx

On Thu, May 01, 2003 at 04:57:51PM -0700, rwetmore@xxxxxxxxxxxx wrote:
> 
> Raimar Falke wrote:
> > On Tue, Apr 29, 2003 at 08:30:48PM -0700, Mark Metson wrote:
> [...]
> >>Computers keep getting faster, ridiculously faster. Plus what about gains 
> >>by parallelism, how many AIs can one computer run? How many smart AIs? How 
> >>many really really smart AIs? 
> > 
> > Even with a lot of CPU power you can't offset the missing
> > information. I still think to get a really strong AI you need
> > controlled cheating (everybody knows that the server sends the whole
> > map to player foobar) and a lot of CPU.
> > 
> >     Raimar
> 
> "Controlled" cheating is one way to phrase it, but since only humans cheat
> and there is no control on their passing information amongst themselves, or
> using cheats like memory and intuition that computers are not born with, a
> lot of this is just discriminatory semantics designed to make sure the
> humans always have the advantage :-).

I'm not sure if you understood me correctly here. Controlled cheating
would a be a server command "/addcheat playername
attribute". Attribute could be "know-whole-map",
"no-loss-at-production-change", "inspect-enemy-cities" or
"no-rate-limitation". That a cheat is active for a given player has be
know by all other players. Humans and AIs can benefit from these. Some
of these also may make good debugging tools.

> However, there is no reason why there cannot be server APIs that produce
> various information summaries that use internal server data and return the
> results to the client, rather than sending the raw data to the client. You
> can do computations anywhere and don't *have* to do them in client code. You
> allow the possibility of using controlled server data if the computation is
> done in the server without fear of exposing anymore raw data than you wish.

I don't see a risk that a client can extract more data out of the
"no-loss-at-production-change" cheat for example.

Yes it is possible that server summarizes data before it sends
it. However it is possible that than a certain AI want another
information. Example: the server sends you infos like "player 1 has 20
archers total". Now the AI however can't do anything with this because
it rather want to estimate how many archers are in the region around
its city London. If the server summarizes data the summarization can
have the wrong point of view.

> If a client uses these APIs, then they should be penalized in the score,
> said to be running at "novice" level with crutches, or something. Thus
> there are consequences in a competitive game commensurate with the level
> of assistance the server provides to that player via response to such agent
> requests.

I agree.

> AI clients don't really care about their peer standing, so they would
> presumably ask for all the help they can, but humans could select their
> level and handicaps as well if they felt they needed a boost or were
> good enough to play straight (or as straight as humans can ever play).

The programmers of the AI clients (should) care about their performance.

> Afterall, what is a CMA but a crutch for a human who can't do the
> complex computations nearly as quickly. CMA in the server or CMA in
> the client makes no practical difference to its computed result or
> way in which it is used.

Here you forgot one fundamental advantage: flexibility. If you change
the CMA you don't have to update the servers. If for example the
support for unhappy cities is added you don't have to update all
servers at pubserver. You only have to update the clients. If CMA was
a server thing you would have to update both server (obviously) and
client (add another button or scale to the GUI).

        Raimar

-- 
 email: rf13@xxxxxxxxxxxxxxxxx
 "Python 2.0 beta 1 is now available [...]. There is a long list of new 
  features since Python 1.6, released earlier today. We don't plan on 
  any new releases in the next 24 hours."
    -- Jeremy Hylton at Slashdot




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