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 complained). * 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 Freeciv-dev@gna.org https://mail.gna.org/listinfo/freeciv-dev