On Sat, 19 May 2007, William Allen Simpson wrote:
> Indeed, my suggestion was *NOT* that the old functionality go away, but
> that it should not be hard-coded -- a simple knob I proposed be added to
> allow civ3&4 behavior.
> Although I've only been on the mailing list for 18 months or so, and
> rarely contribute, I've some recollection that you worked on adding many
> knobs generalizing formerly hard-coded constants and functionality.  I'm
> trying to cooperate in the same way.

This has been a much-discussed topic. I will not attempt to rehash every 
point, but some are in order:

  * We are not attempting to make a clone of any other game. Freeciv is a 
game of its own in a specific genre of games, where we want to learn from 
the best achievements of other games within the same genre.

  * Generalized rules has high costs. First, there is the cost of making 
the AI understand it. This is both a question of having AI support for 
such rulesets, and for using our automated testing framework to see that 
they work and keep working (we have too often found that some obscure 
feature that we added on request has been broken for years and nobody 

  * Second, many exceptions to the normal rules and corner cases makes the 
code slower, and harder to maintain. Since we have rather limited 
manpower, the latter is quite important. Streamlined rules are much easier 
to support.

Therefore, the general conclusion from these debates is that we should 
support generalized rules, not based on conformity to other games' feature 
sets, but on what can be implemented cleanly in the codebase while giving 
more power to people who wish to make modified rulesets.

I also think we should take some effort to move away from some of the 
harder to maintain and extend features of the earliest games in the genre 
(civ1/2). Doing this will allow us instead to focus on giving more 
generalized rules on higher levels of abstraction. One example is the 
removal of the civ1/2-inspired movement rules with randomness, in favour 
of a deterministic civ3-like movement rule. This allowed us to greatly 
simplify the path-finding code and makes it easier to improve the AI.

> I'm actually quite disappointed about the recent removing of basic
> functionality of civ1&2, such as reputation, temporary cease fire,
> Fundamentalism, etc.

Temporary cease fire has not been removed yet. Fundamentalism has never 
been in the default ruleset, but is in the civ2 ruleset. If we are to 
incorporate some of the better innovation within this genre, we have to 
bury some old civ1/2 compatibility, or we will bury ourselves in 
impossible to maintain spaghetti and buggy code.

I have been considering a generalized treaties framework, for example, but 
it seemed way too much work to make an AI that would understand it.

   - Per

Freeciv-dev mailing list

Reply via email to