Complete.Org: Mailing Lists: Archives: freeciv-dev: January 2000:
[Freeciv-Dev] Re: Why client-side AI could be a Bad Thing
Home

[Freeciv-Dev] Re: Why client-side AI could be a Bad Thing

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: szopen@xxxxxxxxxxxxxxxxxxxx, freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Why client-side AI could be a Bad Thing
From: "Mike Jing" <miky40@xxxxxxxxxxx>
Date: Fri, 28 Jan 2000 05:38:36 EST
Reply-to: mike_jing@xxxxxxxxx

On Fri, 28 Jan 2000, Arkadiusz Danilecki wrote:
        It seems that evverybody agreed that AI should be
client-side. This is nice idea with many pluses, but it alsow
has some drawbacks, and some of them are quite significant, i
think.

As I understand it, server-side AI will NOT be abandoned. Client-side AI will be an addition with a different purpose, i.e. it just provides facilities for users to create their own AI player or "helper" through the use of a scripting language. It will NOT be a replacement for server-side AI. Therefore, most of your worries below are unfounded.

1) AI should cheat. Yes, it should. Unless someone create
really clever AI, it will have no chances without cheating
wwith opponents. And i think it is really hard implement
cheating AI without overhead if it will be on client-side,
without access to server data.

I tend to agree on this one. The biggest disadvantage of the AI is the lack of an overall strategy, i.e. it doesn't have an eye for the "big picture". Therefore, the AI "need" to cheat in order to compete with a good human player, as it is doing now on the "hard" level.

The way it is envisioned, I think, is that the client-AI should behave no differetly from a human player, as far as its communication with the server is concerned. Therefore, cheating will not be possible for client-side AI. Tough luck.

2) Performance. If they will be client-side and communicate
via network, it will cause some unnecessery overhead. If it
will be separate process, it will cause overhead too. The
only way to efficiently implement client-side AI will be i
thinkwith using threads, but i am not sure if it will be then
easy portable to platforms without native threads .

Since server-side AI will continue to be used for regular games, this is not an issue.

3)I have experience with newbies to freeciv and i see that
they are sometimes terrfied when they had to type civserver
and manually create AI. Half of them resign from game, saying
it is too complicated, Imagine what will happened if they had
to create AIat client side?

Ditto.

4) Real-time AI. Hm. If u can make ai thinking in real time,
it will be cool, but i think it could be too difficult. Lets
imagine AI is coutnig which towns are safe. Situation has
changedm it starts again. Situation has changedm it starts
again. Etc Etc. I am not sure if it will cause That AI will
be able to move only when all players finish move.

This is certainly a hard problem for the client-side AI, or any AI, for that matter -- a good Turing test. ;-)

5) I don't know what about you, but i hate to wait for others
players, when i finished my turn. With client-side no-real
time playing through network AI it will last even longer.
Timeouts for AIs? Bue..

Again, this is not a problem for server-side AI. And beacuse client-side AI is treated just like a human player by the server, no problem for it either.

6) Some of the reasons for moving ai to client side can be
implemented also on server-side AI. Different algorithms for
different ai? Compare old AI with new AI? No problem. sth
like void *(algorithm*)(void) and void set_ai_alg().

And again, we are not really moving...

I understand of course that client-side AI will had many
pluses : clear code, no redundancy of some code etc. But i
think important thing is realise that it will have drawbacks.

You made your point...

Mike


______________________________________________________
Get Your Private, Free Email at http://www.hotmail.com


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