What would you like to see in Freeciv? Do you have a good idea what should be improved or how?
Posts: 35
Joined: Tue Mar 11, 2014 9:54 pm


Postby monamipierrot » Fri Mar 14, 2014 11:21 pm

Last chapter of my reposting of old posts in civland forum. This time it is clearly a feature almost exclusively interesting for big multiplayer environments such as longturn or greatturn, but some of those lonely single-player empire builders out there could find the idea much interesting. Here it is.

I found out that one of the real-life features of history which I miss more in LongTurn is involvement in game atmosphere

This could be achieved by many means. One of them could be “giving names” to things, i.e. toponomy.

The idea to give name flags to maptiles can be implemented in 4 different ways
1. the easiest: any tile (or group of tiles) can be labeled by any player, and this label may be seen by everybody, by one player or by allies with his view. It does have no function in game.
2. the label may be seen by enemies or other players, if they conquer or control the land or if the player open them. They still have no function than just aesthetical one.
3. labels are automatically created when discovering new pieces of interesting land, and are visible to anyone. The player that triggered the label creation can change the proposed name. Many Wonders trigger labels to islands/continents/oceans. Again, no structural function.
4. the labels have a structural function in the game. This is the most interesting but also the most difficoult to implement, and only after some experiments with 1, 2 or 3.

Let’s see only point 4, but the simplest ideas of it can be tranferred in the former three.

The idea is to incourage or “force” players to give names in order to get some little extra advantage. (The obvious disadvantage for the player is that enemy players can inderectly gain info about land and/or player who gave name to it. This should of course be balanced.)

Player Benefits
I think that the given benefits may be 2 or 3 at once (any other idea is welcome):
- labeled land/sea may gain a +1 passive visibility range for the player who gave and “own” the name, i.e. in common longturn rules player may see them from 5 rather than from 4 tiles. This would be even better implemented if we slightly or strongly lower base-visibility range (thing I strongly recommend anyway regardless of this chat)
- they may slightly lower enemy unit/cities bribing cost, improve the player ones, or give other diplomatic advantage.
- they may gain a +1 passive territory range bonus, i.e. in longturn the tiles would switch to my side at 5 of distance rather than 4 (very similar to the visibility thing).
- in the same way they may decrease enemy territory range.
- for ocean/lake tiles, benefits can be inherited by adjacent land (this because otherwise no one would give name to a lake, or a gulf).
In this way name labels would work like a sort of “cultural” border, and also affecting the “military-political-administrative” border.

Labelling units
Label may “cost” turns to produce, exactly like a land improvement. The uint who can “build” them is the Explorer (and later Partesans), but also Settlers. Caravel may also have this ability, to be inherited by more advanced naval units.

Label layers
Label can be of different types and also of different “layers”, i.e. a single tile may be labeled with different labels, for example, the “Longturn Peek” may be a part of the “Freeciv mountains”.
Layer types can be somewhat hyerarchycal, non-hyearchical, or both.
A VERY complex example of this could be:

A - hyerarchcal layers
1 - Island/continent/ocean layer: very hard to build, limited advantages
1a - automatically-defined sub-continet/sub-oceans/peninsulas/gulfs/channels/istmus... (this is quite hard to implement, but it would be great)
2 - General land type layer: can be assigned to group of tiles adjacent (NSEW) each other, of similar terrain kind. Max tiles should be around 30. Terrain general kinds should be 4 or 5, e.g:
- elevated (mountains and hills)
- agricoultural (plains and grasslands)
- wet (forest, jungle, swamp)
- desolate (desert, tundra and glaciers)
- sea (ocean, deep ocean, and lake)
3 - Terrain type layer: same as above, but terrain must be identical. Max n. of tiles should be around 10
4 - single tile layer (the most important type). A city name could be just a special case of it. Settlers can only name single tiles.
B- special layers (group of tiles adjacent to each other and with the same characteristic, regardless of terrain):
1 - river layer
2 - road layer (uff, quite hard to implement)
3 - other improvements layer (irrigation, mining)
C - custom (geo-strategical) layers (?)

layers can have only one name, “belonging” to one player. E.g. some mountains name can only be one, and give its benefits only to one player. a tile may be labeled under different layers which could be of different players. In our example, the name of a single “Peek” can be of a different player. Each of them takes it corresponding benefits. Different layers benefits are cumulable, with or without a maximum.

Label building
When a explorer choose the “name this place” action, player will be given a menu with all available layers, plus a “custom” one. For sea layers, the Explorer should be on its shore. A caravel can give names to land, but it have to be on its coast.
For normal layers, the server would automatically show the tiles, unmodificable. Only known tiles will be labeled. Then it would propose a name, based on a proper nation-based simple toponomastical list without connection to the kind of land (e.g. “Florida Mountains”, or “Tyrol Bay”). Player can change the name as he wants but color, font and other details of label will always betray the kind of layer to enemies, if terrain type is not self-sufficient; this way there's no point on choosing disorienting names.
For custom layer, player can choose manually the tiles (of all kind), but they have to be adjacent.

Label production cost
Turn cost should vary deeply, but may be fixed for some of the above cases:
- single tile: 1 turn (of course calculate a proper multiplier for LongTurn)
- terrain type layer: 2 turns
- general land type: 3 turns
- island/continent: 4 or more turns
- river layer: 2 turns
- custom layer: amount should be calculated by some algorythm which takes in account number of tiles, number of different terrain kind involved, etc. and keep it quite high, in order to discourage it.

Only known tiles can be labeled. A name can be extended if more suitable (and non-labeled) land is discovered later, and this could be .automatically or should be done manually at a fixed minimum “price” of 1 turn.

Label change
Of course, name can be “changed” (i.e., they change to enemy side) under some conditions. The condition is the new player should know all tiles labeled. Then, its explorer should build a “name change”, and would take an amount of turns proportional to the original cost, but maybe doubled. “Change to original name” action would take less. Or: each time one “change name” the cost is increased, each time is reverted to original, it doesn’t change, so a war of names (how many times we saw it in real history?) would gradually increase its cost while being always relatively less expensive for the original owner of the “copyright”.
Names may be subject of diplomacy.
If possible, one player can “merge” a enemy name to another one, for example if he founds that enemy already gave a name to the other half of a river he already labeled when he only knew his side. A double name for a river should be avoided, thus the merging action, which would be still expensive, would be at least not reversable.
Enemies can’t see labels unless they know one tile or a percentage of its tiles. At least for a tile, fog of war DOES count (you can get back to a remote island and find that someone else gave a name to it). In order to see enemy custom layers, which grant specific military/strategical benefits (to be discussed a part), one have to know all his tiles. This would encourage the creation of “strait”, “isthmus”, “channel”, “pass”, “archipelagus”, “peninsula” labels without fear of giving too much details to enemies.

If labeled land is altered and label can’t be no more applied to one of its tiles (terrain alteration), label is restricted to the biggest surviving portion of still suitable tiles.

There’s more:
Once conquered a enemy city, the tile (i.e. city) name still is owned by the original player, and must be properly changed in order to delete his diplo/visibility/whichever benefits. (Note that according to what previously told, changing a city name is expensive, while reverting to original would be less)
Turn cost is proportional to city size. If you don’t have a settler/explorer handy, you can still change city production to the “Change city name”, which would cost some shields, proportionally to size.
If a city is destroyed, the label remains, as “ruins”.
Cities may be found on enemy labeled single tiles (including ruins), but have to assume its name. They also can be found on enemy labeled layers, with all the disadvantage of the case. On the other hand, one can name layers with some enemy cities on them, with great benefits.
City may also “build” names to layers they are built upon, and this should also cost some little shields. In order to do this, city should own some proper facilities, each giving access to a upper-level layer, e.g. libraries and universities - or harbour for sea... Or it could be cost zero and automatical: when builded a library, the terrain type layer would be given the name of the city, same with the general kind terrain layer and university, ocean with the harbour... ocean+deep ocean for the port...
Wonders could work like this, but for island/continent or oceans.

About terrain recognition
It would really interesting to have some code which recognizes and describe some simple features in a world map, depending of course on the generator used.
I guess there’s no problem in recognizing a pangea, an island or a continent, a inner sea/lake, a closed ocean, or THE ocean.
It could be tougher when it comes to: peninsulas, subcontinents (such as Africa, Eurasia and both of Americas), connected oceans/seas, isthmuses, channels/straits, gulfs/bays, or group of repeated features (archipelagos, groups of mountains/lakes/peninsulas etc.). If some piece of code could do this, then we could have a map of features available to be given a name by players (forced or encouraged to) or automatically.