Complete.Org: Mailing Lists: Archives: freeciv-ai: May 2002:
[freeciv-ai] Re: Generalised improvements AI support

[freeciv-ai] Re: Generalised improvements AI support

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Freeciv-ai <freeciv-ai@xxxxxxxxxxx>
Subject: [freeciv-ai] Re: Generalised improvements AI support
From: "Per I. Mathisen" <Per.Inge.Mathisen@xxxxxxxxxxx>
Date: Wed, 8 May 2002 11:05:38 +0200 (MEST)

On Wed, 8 May 2002, Raahul Kumar wrote:
> I didn't say compute flags. I said compute the best unit! That means instead
> of checking if a unit has F_NUCLEAR, select it based on its incredible attack
> damage. I hope this is more explicit.

You do _not_ want to build a nuclear unit based on its attack power.

> The ruleset authors don't always do a good job. Is it true that tank is
> attack_good, or is maybe a howitzer far better against cities? Also,
> conversely,
> isn't a tank much better outside cities. A single tank could kill three
> howitzers. One howitzer cannot kill three tanks.

AFAIK, attack_good is ignored anyway.

> > The gen-unit approach is more general. The questions are: how much
> > generality do we need and how much does it cost us.
> We need all the generality we can possibly get. Unfortunately, we also need 
> all
> the performance we can possibly get.


Increased generality also leads to increased complexity in the code. The
gen. impr. code is frightening in complexity compared to unit flags. I'll
grant you that generalised combat bonuses might be something we should
add, but I don't think we should replace the entire flags system in favour
of generalised units attributes like gen. impr. generalises buildings.

> You're missing a big drawback with the current approach. As far as possible, I
> always thought our goal was to make Freeciv configurable via rulesets. I want
> to keep modpack authors out of the code.


> Consider: If someone wanted to add the proper Civ 2 air combat to Freeciv
> before my changes. If the land of AC patches, I could have opened a tileset,
> added some
> unit_defend changes, and I would have been done.
> Time taken: 5 minutes, and that's being generous. Includes testing time.

You are giving much too little time to testing!

> Current system: I have to find the parts of the code that deal that matter,
> combat.c, which is easy to find/understand. Not a fair test. There's lots of
> other freeciv code which is much harder to grok. Now that I've changed the
> flags system, I have to compile, fix any compile errors, and finally I'm ready
> to test my patch. Time taken: 15 mins, without testing.

And not counting time-to-cvs ;)


"There are 10 types of people in the world. Those who understand binary
and those who don't."

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