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: "Per I. Mathisen" <per@xxxxxxxxxxx>
Cc: Freeciv AI development <freeciv-ai@xxxxxxxxxxx>
Subject: [freeciv-ai] Re: New settler code
From: Mike Kaufman <kaufman@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 15 Apr 2003 19:30:17 -0500

On Tue, Apr 15, 2003 at 01:34:03PM +0000, Per I. Mathisen wrote:
> > I don't. explain it to me.
> A few points:

  Stretching a bit are we? You're outlining what the _ideal_ ai needs to 
have. Sure all of this is great, and to get from a settler module that 
makes the right decisions 90% of the time to one that does 100% of the
time, you're right, all this stuff will probably need to be done.
  But I claim that with a reaonably good exploring code (which we have do
we not?), you can get a settler code that do the right thing most of the
time. So what if it takes a couple extra turns to get X number of cities:
it ain't cheating; it's making decisions on all the information a human
would have. 
  Please don't shift the argument to: best or bust. That's specious.
Incremental change is perfectly fine. A challenge: add the get_map_known()
check in your code and see what happens.

>  - You need to combine the explorer and settler code; explorer code must
> be rewritten to primarily work in conjunction with settlers - the primary
> explorer function is then to find as much settle-able area as possible
> around settler units.

rewritten? really, come on, I claim a minor tweaking is all that's really
necessary. After all, in the beginning of the game, an explorer moving
three times as fast as a settler can discover boatloads of territory.

>  - You no longer know what you can expect from a map. So you need to make
> an educated guess about what is a good placement and what isn't (meaning
> you need to continue looking) by interpreting the terrain ruleset and the
> map generator.

The horror. I guess that's what exploring is for. and interpreting terrain
rulesets will need to be done in any case including yours.

>  - Whether you want to explore inland or coastal tiles depends on the
> terrain ruleset settings. (As long as whales exist, we want to explore
> coastal first.)

see above. but surely, until we have an extremely sophisticated AI, having
some fixed parameters is good enough. 

>  - The AI must start exploring new continents and oceans. Current no AI
> does the former and only the 'easy' AI the latter. Also ocean exploration
> must be rewritten to attempt to find close islands.

All the AI needs to do in the short term is explore coastlines (oceans),
Since the easy AI can do this already, I guess it shouldn't be too hard to
make the others do this either.

>  - The settler code must make an educated guess (again reading terain
> ruleset) about the probable value of unknown tiles.

this is dumb. The value of unknown tiles is zero (until again we get an
extremely sophisticated AI). It's rare that a human can make any more than
a WAG about unknown tiles anyway.

>  - We need code to ferry explorers to newfound continents.

Well, the ferry code is apparently coming sometime, but I don't think that
this is a prerequisite. Settlers are going to come (or had better come)
with troops, and they can easily explore.

> (And of course, since the AI must spend more production and time
> exploring, and will choose less optimal city placemnts, it will become
> significantly less capable.)

Sure it'll be less capable just like an AI which can't open up enemy cities
to check for defenders is less capable. Any AI which can't cheat is less

> You can reuse the citymap code for non-omniscient AI. The rest is written
> for omniscience and has to be totally rewritten if it is to work with
> non-omniscient code. This is because the two approaches are so
> fundamentally different.

I really like this argument. And next time it'll be "Well, foo could be 
non-omniscient, but the rest plus the citymap code is all omniscient, so
it's a waste of time." And the the time after that: "Well, bar could be 
non-omniscient, but the rest plus the citymap code plus the foo code is 
all omniscient, so it's a waste of time."

> > of course, I got no response about this. I am wrong? Do you think that
> > client-side AI is a pointless goal?
> At the moment, yes. I think a client-side, non-omniscient AI is an
> interesting challenge, intellectually much more interesting than the
> present approach, but in terms of making a fun and challenging AI for
> players, such an AI is not time well spent.

Ah, at the moment... Well, the time to stop the slide to oblivion is now.

> I don't think the current explorer code requires omniscience.

Well, I guess that's another thing we can reuse?


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