Complete.Org: Mailing Lists: Archives: freeciv-dev: March 2005:
[Freeciv-Dev] Re: (PR#12660) RFC Proposed Jenner patch
Home

[Freeciv-Dev] Re: (PR#12660) RFC Proposed Jenner patch

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Subject: [Freeciv-Dev] Re: (PR#12660) RFC Proposed Jenner patch
From: "(Eddie Anderson)" <saywhat@xxxxxxxxxxxx>
Date: Sun, 27 Mar 2005 15:27:11 -0800
Reply-to: bugs@xxxxxxxxxxx

<URL: http://bugs.freeciv.org/Ticket/Display.html?id=12660 >

"Benoit Hudson" <bh@xxxxxxxxxxxxxxxxxxx> wrote:
>
><URL: http://bugs.freeciv.org/Ticket/Display.html?id=3D12660 >
>
>On Sat, Mar 26, 2005 at 01:26:15AM -0800, (Eddie Anderson) wrote:
>>=20
>> <URL: http://bugs.freeciv.org/Ticket/Display.html?id=3D12660 >
>>=20
>>     Here is my first attempt at making a patch.  It is based on the
>> CVS version (patched up through the March 17-18 diffs).  It applies
>> to just one file - "server/settlers.c".
>
>The easiest way to make a patch is to do
>        cd .../freeciv
>        cvs -z3 diff -u > my.patch
>

    I'll try these cmds.  But doesn't the second one depend on
having cvs installed?  I don't have cvs.

>Then you apply it using
>        patch -p0 < my.patch

    I'll try this too.  I realize that the patch file that I sent in
was not up to snuff.  In my defense, the patch cmd on my system
seemed to work fine with it (both applying and reverting).

    I expect that I'll eventually figure out the quirks of diff and
patch and the other Gnu/Linux utilities.  At the time I was tired of
reading code, reading man pages, etc.   So I just sent in what
worked on my system.

>
>>     The purpose of this patch (as you may have deduced from its
>> name) is to make smallpox extinct.  However, it is only a first step
>> and more code is probably needed to finally eliminate smallpox.  And
>> for those who like smallpox games, they can set cityfactor to 99 and
>> (hopefully) be happy.
>
>And 640 Kb should be enough for anyone...  A value of zero should be
>taken to mean no limit.

    I agree.  Using cityfactor was a convenient kludge.  As is, it
is not ideally suited for this purpose.

    For one thing, AIUI, cityfactor's range is only 6-99.  That
range is too narrow.  I would prefer to use a variable with a range
of 0 to at least 255.

    But Per is opposed to adding more server variables (and I don't
disagree).  (I'll discuss a possible solution for that later.)  So
hopefully cityfactor will work well enough for now.

>Generally, I don't like this as a "solution" to smallpox.  I far prefer
>just making it harder to run a larger civ.

    Not me, but to each his own.  The main problem I have with
"smallpox solutions" that make it harder to run a larger civ is that
the first victim (of the increased difficulty) is the AI.  I've seen
the AI fail to thrive in the face of both extra unhappy citizens and
tradesize restrictions.  It's not pretty.

    As I envision it, this patch makes smallpox undesirable without
some of the side effects of other methods:

1) The "Extra unhappy citizens" penalty can be triggered when you
   conquer an enemy city.  IMO this is wrong for multiple reasons.

2) Tradesize restrictions, IME tend to turn the early game into a
   race for food.  While that's going on, if players haven't been
   given a headstart in research (i.e. techlevel > 0), then they
   could be stuck building warriors, settlers, barracks, and coinage
   for a long time.  IME that's not very interesting either.

3) High values of citymindist make it impossible to use some prime
   city locations that are too close together.  This is frustrating.

    If this Jenner patch works the way I think it will, then it
won't cause any of those problems.

    More importantly, it may make many of those other "smallpox
solutions" unnecessary.  If so, then that would pave the way for
eliminating a lot of extra code, extra server variables, extra
ruleset constructs, etc.

    If that happens, then I would like to create a new server
variable named maxcities.  Maxcities could be used in place of the
combination of cityfactor and empire_size_mod.  In fact, if
cityfactor is no longer needed for any other purpose, then maybe
cityfactor could simply be renamed to maxcities (and its range
altered)?

    If all this works, then hopefully the game environment will be
simpler (without all the other anti-smallpox gotchas).  That may
make it easier for the AI to make good decisions.  I hope so.

>It is, however, a potential
>solution to making novice AI easier -- but for that, it should be
>integrated into the handicaps framework, and the handicap should be
>per-player rather than per-game.

    This sounds good.  But I don't have any idea of how to implement
it.  Should I assume that others are already working on the
handicaps framework?

    Are the handicaps also intended for multi-(human)player games
too?  If so, then per-player handicaps might be implemented as a
variable delta from cityfactor.  E.g. one player is allowed to build
10 cities, while another is allowed to build 15 (because his/her
delta is +5), and a third is allowed to build 20 (because his delta
is +10).

     Thanks for the feedback.

-Eddie





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