Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2003:
[Freeciv-Dev] Re: Barbarians
Home

[Freeciv-Dev] Re: Barbarians

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: "Per I. Mathisen" <per@xxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: Barbarians
From: Gregory Berkolaiko <Gregory.Berkolaiko@xxxxxxxxxxxx>
Date: Wed, 15 Oct 2003 10:57:06 +0100 (BST)

On Wed, 15 Oct 2003, Per I. Mathisen wrote:

> A few days ago I tried to generalise the barbarian leader code so that the
> AI could use it for gameloss units. The result was not very good. Turns
> out the barbarian needs and the AI's needs are, after all, quite
> different. I took a look at the rest of the barbarian's use of the AI, and
> the same pattern emerged.
> 
> My conclusion is: We should make a full separation between AI and
> barbarian code. Barbarians only need a tiny subset of the AI code, the
> rest only leads to CPU waste and bugs in both AI and barbarian code.
> 
> A barbarian "AI" (for Artificial Stupidity) would be very easy to code.
> Ferrying means summoning a ferry out of nowhere and sending it to the
> closest shore. Once the ferry is empty it is moved out of sight and
> disbanded. Attack code means finding nearest target and moving at it. City
> production code means building the latest available land attacker.
> Barbarian leader code tries to stack it with another barb, or run it off
> (eg to a fogged tile to disband).

Just to make your life a bit more difficult, here is a suggestion: 
barbarian leaders should be able to summon reinforcements instead of 
disbanding (when on a fog tile).

> What functional role does barbarians play in the game? From what I see,
> there does not seem to be a coherent design idea behind it. I suggest that
> barbarians are there to keep players on their toes and make them defend
> borders cities. Barbarians should be a nuisance, but not annoying nor
> challenging. The current barbarians have a too high tech level and attack

But nuisance == annoying.  And this is what they should be.  They should 
be low tech though.

> There should be a concept of 'barbarian tiles', which are tiles that are
> unowned (borders) and fogged for all players. These are tiles in which
> barbarians can spawn and despawn. Each player has a barbarian timer which
> is set to 'barbarian serveroption'=b, rand(b)+b, and counted down. When a
> barbarian attack occurs, the attack happens relative to a random city. The
> barbarians are spawned on the nearest barbarian tile to this city, which
> can be either sea or land.

This is unworkable, since for a city deep inside a coutry there might be 
no good barbarian tiles available and the barbarians might end up 
attacking someone else (other city or other player).

Jason's idea was much better IMO, each "barbarian tile" has a (small) 
random chance to produce uprising.  To avoid swamping in the start game, 
the "barbarian tile" should not only be fogged but also bordering an 
unfogged or owned tile.

> The tech level of the barbarians summoned should be relative to and lower
> than the player attacked, and not relative to the global tech level as the
> rules are presently. The current rules punish slower players too much.

If barbarians are spawned on a tile bordering owned one, their level  
should be relative to the owner of that tile.  Most likely they will 
attack him, but sometimes might wander off, which is fun too.


G.



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