The current rule of players placing citizens to work the map from within the city dialog has two big problems:
- It takes too much time (micromanagement) to place them, choices which are trivial rather than important.
- Calculating citizen placement and path-finding are by far the biggest CPU sinks in the AI, and it places great limitations on what kind of calculations we can do within reasonable timeframes.
We should therefore look at rules changes that could solve this situation. The current 'solution', which is to automate it with AI help, does not solve the second problem, and insofar as the AI makes worse decisions than the human player, the game will reward trivial and time consuming tasks, and insofar as it does not, doing it by hand at all becomes a pointless exercise in futility.
There are several possible models that can replace the current.
Master of Magic Edit
In the Master of Magic model each tile gives certain bonuses that is granted to every city within city range, divided by the number of cities within range. These bonuses are to max population, production, and trade. All citizens are specialists.
A similar model was also used in Master of Orion 2.
The 'all citizens are specialists' part can be implemented in Freeciv by either adding food and shield specialists, giving 5 specialists in total but makes necessary to remove trade output, or by adding food, shield and trade specialists, giving 6 specialists in total.
The minimal amount of change to fix the problem is quite simply to remove the possibility of reallocating citizens from tiles. Once placed to work on a tile, it stays on that tile. Enemy units can make it stop producing, but not bounce it from the tile.
Urban sprawl Edit
This is based on the idea of sprawling the population of cities onto the map. This makes sieges easier, and makes it more important to defend territory outside cities as well. It makes use of the new borders code, which already keeps track of which city owns which tiles.
- Settlers become much cheaper to build. No more workers.
- A city gives city center worked only. Every citizen after the first are specialists.
- Building Irrigation or Mine on terrain consumes the settler.
- Any owned tile with Irrigation or Mine is considered 'worked' and contributes its output to the owning city.
- City size is number of 'worked' tiles owned + specialists.
- A city can use any and only tiles it owns. This replaces the current city range concept.
- Need a new 'Fishery'(?) terrain improvement for ocean tiles to play a similar role as Irrigation and Mine. This is created by sending a Settler out in a boat (just like you transform ocean to land by sending an Engineer out in a boat now). Or make a new, cheap sea settler unit for this task.
- A military unit may uproot a settler if EFT_UNIT_RAZE is > 0 (eg 'bad' govt setting)
- Cities must always steal tiles owned by fortresses if possible (trivial change).
- GUI: Need thin visual borders to show city ranges.