Complete.Org: Mailing Lists: Archives: freeciv-dev: February 2001:
[Freeciv-Dev] language (was: Inertia)
Home

[Freeciv-Dev] language (was: Inertia)

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv-dev@xxxxxxxxxxx (Freeciv developers)
Subject: [Freeciv-Dev] language (was: Inertia)
From: Reinier Post <rp@xxxxxxxxxx>
Date: Sun, 25 Feb 2001 23:37:03 +0100

On Sat, Feb 24, 2001 at 02:44:09PM -0500, R. Miller wrote:
> Hello,
> 
> I want to submit to you a idea I have always hoped Civ might introduce - I 
> call it inertia.
> It always bugged me that if I took over a an enemy's city (with a spy or by 
> conquest) that
> everyone instaneously started working for my nation at the same 
> productivity level as
> my other "subjects".

Me too.  This doesn't seem to be realistic.  From a game playing point
of view, it makes conquest more effective; since Freeciv is a slow
game, I think this is a good thing.

> I would like a performance penalty to be introduced. The workers would 
> initially produced at,
> say, 30% of maximum, and their productivity would slowly increase with time 
> to an eventual 100%.

The temporary loss of a city's effectiveness caused by war is already
modelled in Freeciv:  war causes population loss, conquest destroys
buildings.  Inertia would be a different way to achieve the same
effect.  But what you actually want to address is that the new city
is not integrated into your empire as well as a 'natively built' city.
Perhaps this can be modelled in Freeciv more realistically.

[...]

> Dynamic systems involving people do not change instantaneously; I would 
> like FreeCiv to reflect that.
> 
> What do you think?
> 
> Robaire

Realistically, what are the factors that make captured cities
less effective than native ones?

First, there is the actual destruction of war: the population flees,
buildings and infrastructure are destroyed, and after conquest, the
city takes time to recover.  This is already modelled in Freeciv;
inertia would add to this.

Second, cities thrive on their economic ties.  In Freeciv, this is
modelled as 'trade'.  When a city is captured, it will lose most of its
economic ties with the country it was part of.  Trade isn't just a
matter of infrastructure; it also takes human effort and the conviction
to engage in mutual relationships of economic dependency.  If it is
economically beneficial for a city to be part of a different empire, it
will flourish after conquest.  This takes time to build up, because
even when the infrastructure is there, it takes time for the personal
(business) engagements between the citizens to develop.

This can be modelled by inertia, but would it be possible to model it
more directly?

The existing model of trade: a city generates trade autonomously, with
no regard to the rest of the world.  Trade routes created by caravans
can add trade.  Corruption then reduces trade, in most governments,
proportional to the city's distance to the capital.

A more realistic model of trade: trade is generated by the interaction
of citizens and exchange of goods for mutual benefit.  Cities (which
really represent a city with its surrounding area) generate trade
internally, and it should increase with population.

The second source of trade is external trade, generated by a city's
economic ties with other cities.  This is what the caravan routes
model, but they are much too crude: in reality, a city maintains trade
connections with many different cities, through the interchange of
goods and knowledge.

Corruption should still apply but I think external trade can be made
more important.  In this way, newly conquered cities would automatically
lose a lot of their trade.

Realistically, external trade is generated by units and goods being
exchanged by cities continuously.  Good connections with neighbouring
cities should increase a city's trade level.  This should happen at no
cost to the user: you don't want to drag units from city to city just
to improve its trade.  It can be modelled implicitly by recording trade
levels between cities.  These are already present to record the results
of trade routes; we can add implicit trade routes, established
automatically, that would account for the 'external' part of a city's
trade.  In the simplest model these routes are an automatic byproduct
of the two cities' relative position: the sum of their sizes divided by
their distance, or something similar.  But it would be interesting to
let the movement of units affect trade levels.  This can be done by
making the ability of caravans to establish trade routes a generic,
implicit property that can apply to all units.  So when settlers or
caravans move from city A to B, this would increase the trade levels
between A and B automatically, although an explicit trade route can
still be created (at the cost of losing the caravan) with a much larger
effect.  In any case, external trade levels should directly depend on
infrastructure and the political situation: they should be proportional
to the ease at which units can move between the two cities.  This
should also apply to explicit trade routes.  The initial benefit of a
trade route increases with distance, but for a more realistic model,
once they are established the levels should correlate with the
effective ease of moving units between the cities.  In this way, newly
conquered cities would automatically lose a lot of their trade, and
gradually regain it by establishing contacts within the new empire.

Maintaining explicit levels of trade between cities is going to take
processor time, but this won't hurt too much.  What is crucial is that
the effect of explicit unit movements should not be too high.  If it
is, it will introduce very tedious micromanagement where players have
to plan unit movement explicitly in order to maximize trade.  This is
not acceptable.  External trade must be a natural byproduct of the
development of an empire without forcing the user to spend much thought
on it.

Third, there is the problem of cultural integration.  In the real
world, this is an important factor.  Differences in language and
cultural background are serious barriers to economic relationships.
They are overcome by education and good will, but it takes real effort.
Freeciv models this with happiness and corruption.  In Civ I, cities
can defect to the enemy.

How can this be modelled?  What we would need is an explicit notion
of cultural cohesion: language is a good candidate.  External trade
can be conducted in a specific language: if cities don't speak each
others' language they can't trade.  If corruption is viewed as the
extent to which the benefits of trade are withheld to the nation
as a whole because of citizens' lack of cooperation, a city's
corruption level depends to the extent to which the local language
matches the languages spoken in the nation overall.  Civil wars
can also be made to depend on this.

So you have a list of languages.  Each city maintains a percentage for
each language.  At the start of the game, each nation has its own
language.  The initial cities speak this language 100%, and no other
languages.  There is a mutual dependency between trade and these
percentages, as follows:

  + a city's internal trade is proportional to the extent to
    which its citizens understand each other; for simplicity this
    is calculated as the sume of percentages topped off at 100%
    e.g. city A, with 40% Assyrian and 70% Babylonian, has full
    internal trade, city B, with 70% Assyrian and 20% Babylonian,
    and nothing else, only 90%
  + external trade between two cities is proportional to the
    extent to which common languages are spoken: for example,
    A and B have 60% (40% Assyrian and 20% Babylonian) in common,
    so they lose 40% of their trade level to the language barrier
  + language proficiency has to be passed on to new generations:
    + a new server variable, languageloss, is the absolute percentage
      taken off every city's language proficiency values each turn; e.g.
      1 means 1% taken off, si if no other factors played a role,
      city A would only have 30% Assyrian and 60% Babylonian left
      after 10 turns of playing
    + the amount of effective internal trade generated by a city
      contributes as a percentage to its language proficiencies:
      e.g. if A effectively generates 10 internal trade, this
      internal trade alone increases its Assyrian percentage by
      .10 x 40 = 4% and its Babylonian percentage by .10 x 60 = 6%
    + the amount of effective external trade between two cities
      contributes to each city's percentages in the same way: e.g.
      if A and B have an effective trade level of 3, this contributes
      to their Assyrian by .03 x 40 = 1.2% and to their Babylonian by
      .03 x 20 = 0.6%; this represents 'learning by doing'
    + a new building, the School, allowed by Writing, allows a nation's
      overall knowledge to be used in educating the common citizen: it
      makes the nation's total effective science output (a percentage)
      times the total percentage of citizens that speak a language
      contribute as an increase to the percentage of citizens in the
      city that speak that language.  For example, if the whole nation
      consists of A and B, and they are both of size 5, then (40+70)/2
      = 55% of the nation's citizens speak Assyrian and (70+20)/2 = 45%
      speak Babylonian; if the nation's effective science output is 20%
      (5 turns per tech), having a School in A would contribute 20%x55%
      = 11% to its Assyrian level, raising it from 40% to 51% regardless
      of other factors, and and 20%x45% = 9% to its Babylonian
    + these effects are computed wrt. the same balue and cumulatively
      determine the values in the next turn eg. in the example, the
      value of A in the next turn would be 40% - 1 + 4 + 11 = 54% and
      for B (no School) 60% - 1 + 6 = 65%
  + contributions are rounded to whole percentages, so in a city without
    a School and little trade, minority languages tend to be lost completely
  + if the total language proficiency drops below 100%, the lacking
    percentage is the chance of this leading to disorder - this is added
    to the normal causes for disorder, before applying martial law; e.g.
    in city B, this would be a 10% probability for the next turn
  + language can limit the attacking and defensive power of military units
    (but not their hit points) - but I can't think of an easy formula
    to do this

The basic idea is to introduce 'language' as a simple but intuitive
factor of 'cultural cohesion' that can seriously affect an empire.  The
idea is to use a simple numerical model that works in an intuitive way,
so the user can 'feel' its effects without having to do any detailed
computations.  I detailed the numberwork to convince you that this is
possible, but I am not sure.  If the 'language' factor adds to the
burden of micromanagement, it would be a bad thing.  Ideally it should
work like happiness: when it gets too bad, you noice, and you throw
some luxury at it, or you buy a few temples, without really having to
do the math in detail.  Similarly, when the language barrier turns into
a problem, it must be readily apparent, and the user must be able to
just throw a few Schools at it without having to go into mathematical
details.

This system is largely backward compatible:  set languageloss to 0 and
the only effect it will have is on conquered cities!  They will have
problems adapting at first, but instead of modelling this by 'inertia',
this is modelled as a language barrier, that can be overcome in time by
means of external trade.

When this is implemented we can take the next step; language evolution.
In the real world, not a single language from 4000 BC can be understood
today.  I was once told that ancient Persian, as spoken around 2000 BC,
is fairly intelligible to a modern day Farsi speaker.  But this is a
rare exception.  So once language exists it should have a tendency to
divert into local dialects unless intensive trade and schooling actively
maintain mutual intelligibility.  But this really is the next chapter.

-- 
Reinier (carried away)



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