Complete.Org: Mailing Lists: Archives: freeciv-dev: August 2003:
[Freeciv-Dev] (PR#4387) Suggestion for deterministic moves
Home

[Freeciv-Dev] (PR#4387) Suggestion for deterministic moves

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: per@xxxxxxxxxxx
Subject: [Freeciv-Dev] (PR#4387) Suggestion for deterministic moves
From: "Gregory Berkolaiko" <Gregory.Berkolaiko@xxxxxxxxxxxx>
Date: Sun, 31 Aug 2003 11:01:27 -0700
Reply-to: rt@xxxxxxxxxxxxxx

I would like to draw the Design Boarders' attention to the issue of random 
moves.

Below I 
1. Give an overview of the current mode.
2. Give overview of the proposals.
3. Give some arguments for the change and discuss some of the arguments 
against it.

/*************** Current mode (unittools.c/try_move_unit) **********/

We have 3 numbers: full move points (F) of a unit, current (C) move points 
of the unit and the required (R) move points for the move being tried.

The move will succeed with probability 100% if
either
  F == C
or
  C >= R
Otherwise, it will succeed with probability C / R.

/************************* Proposal ******************************/

The proposal is to implement a system where no probability is needed.  
There are three possible flavours:
1. Strict -- only moves with 100% probability will succeed.
2. Fast -- as long as C > 0, the move will succeed.
3. Mixed -- move will suceed if probability > threshold value.

Civ3 has chosen flavour 2.

It is possible to make the threshold value a user defined option.  It will 
still be an improvement over the current situation for PF and PF-related 
AI and GUI stuff.  Not burning the unit's MPs in an insuccessfull move is 
also possible.

However, retaining the current system as an option is out of question.  
This will only lead to complications in already cluttered code.

/********************* Arguments *************************************/

PRO:

1. Reduction in the complexity of the current code -> less bugs and 
crashes.
2. Non-ambiguous definition of the shortest route.
3. Ability to display correct #turns a path will take.
4. Working "dangerous routes" for triremes.
5. Better AI: 
* If AI moves a "stack" of units, say a charge and a bodyguard, it won't
end up with one of them being allowed to move while the other won't, thus
splitting the "stack".
* It becomes quite hard for an AI to plan coordinated attacks when the
ETA of units is not known. A human player can easily improvise, an AI
player cannot. For example, if the offensive units get there faster than
the defensive units, you have a problem. This can happen with all of
best-case, average-case and worst-case pf methods.


AGAINST:

1. Not civ2 compatible  <-  this smells of fundamentalist and anyway civ3 
have ditched the random moves.
2. Upsets game balance  <-  not by much, especially if we use mixed model 
with threshold 1/2.  And there are other way to restore game balance.




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