Another Wishlist

What would you like to see in Freeciv? Do you have a good idea what should be improved or how?
User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Another Wishlist

Postby GriffonSpade » Mon Apr 29, 2013 5:24 pm

Edited 8/21/2015
UNITS

2) Ability to control unit stacking for both tiles and ferries(via size limit, and unit types each having a unit size declared in units file, allowing, for instance, one large unit with several small ones on the same tile)

19) Ability to set attacker AND defender class requirements for defense bonuses

24) Effect controls for modifying(add/subtract, or at least turn off) fortify/city defense and terrain defense (separately). Preferably with attacker nreq (notably for IgWall attackers)

25) Separate the ability to attack from NonNative Terrain into two different qualities: the ability to attack native terrain from nonnative terrain, and the ability to attack nonnative terrain from nonnative terrain. (For example, to prevent a caravel or frigate from attacking land while in a city, while allowing destroyers and battleships to do so.) [Perhaps simply with a No_Attack_NonNative_From_NonNative unit flag]

30) The ability to create a Unit Death unhappiness effect, that creates X unhappiness (ruleset defined) lasts for Y (ruleset/server defined) turns. No one likes when their families die in war, and their deaths should have an effect on their home city's happiness, possibly even leading to riots and civil war. Currently units dying in republic and democracy even make their home cities HAPPIER, which is somewhat inane. [City Defense deaths should NOT cause unhappiness, and neither should defensive deaths in locations that would not cause democracy/republic unhappiness (e.g. inside happy borders)

33) Add the ability for bombarder units to Counter-Bombard when an enemy bombards them, using their own Bombard ability (or perhaps controlled by new counter-bombard fields). Have the ability to counter-bombard be controlled by a field (For example, a Howitzer could counter-bombard a battleship or cannon, but a catapult cannot counter-bombard them. This would be a list like the cargo field, listing applicable Unit Classes. Declared in either the Attack or Defender's fields, it doesn't matter.)

34) Add the ability for units to Bombard-Defend when an enemy bombards them. Bombard-Defense would force bombarder units to NOT bombard, and to use normal attack versus defense rules; controlled by a field (For example, a Fighter could defend against a bomber, but a Legion can not. This would be a list like the cargo field, listing applicable Unit Classes. Declared in either the Attack or Defender's fields, it doesn't matter.)

UNIT AI COMMANDS/ADVISORS

4) "Explore and Raid" - Similar to the explore command, except when adjacent to an enemy unit or city with moves remaining, it would automatically attack them. This would prevent exploring units with high attack but low defense from dying like fools as they just let enemies kill them.

5) "Counterattack" - Similar to the fortify/sentry command(preferably fortify, unless it is given priority over the Go command), except when an enemy moves to adjacent tile, and the unit has moves remaining, it would automatically attack them, then begin to fortify back into their counterattack stance, giving a more realistic border defense policy. The server option to automatically attack really isn't very good, as it's ALWAYS active and on EVERY (military) unit, rather than just the ones you pick and choose.

6) Allow units that cannot fortify to have a similar function ("Rest"?) that does almost everything that fortify does, but does not increase defensive strength

CITY

7)
Separate queue for units and buildings. (In a city with a million people, why wouldn't you be able to build a granary at the same time you train a legion? I don't have much hope for such a massive change to come, but one could wish)

Separating units and buildings sanely requires two fundamental changes to how production is handled.

I] Separation of the production queue into 3 parts: Construction, Manufacturing, and Training.

II] Division of production resource into 2 parts: Construction and Manufacturing.

Ia. Construction is the building queue, it works as now.
Ib. Manufacturing is vehicle/mechanized unit queue, it works as now. (Bombards, freight, tanks, airplanes, ships, and maybe engineers)
Ic. Training is the human unit queue.
Instead of using production, it uses a time-based creation.
Effects can alter how long it takes to train units.
While a unit is being trained, it consumes an effect-modifiable upkeep cost as if it was a live unit.
Effects can also alter how many units are trained at once (For example, barracks might allow the top two units to be undergoing training, rather than just the top one).
If there's an upkeep deficit, in-training units are dropped first, starting from the 'bottom' one currently being trained.
Losing a training slot would cause any unfinished unit that is no longer being trained to lose all its training.
One unit a turn could be Rushed with gold, but would not gain veteran level effects from buildings.

II. Division of the production resource would work like trade resource division, but controlled at the city level.
IIa. Construction Resource is used for buildings. It is the default production resource.
IIb. Manufacturing Resource is used for manufacturing units(Not training). How much of a percent of your production can go into manufacturing is controlled by effects, similar to tax limits, only on the city level. Any unused Manufacturing Resource is automatically dumped back into Construction Resource.

8) I don't know if it's been addressed, as I've not checked recently, but better handling of troops that have gold upkeep rather than production. Last I checked, the AI would continue creating more and more troops, even though they are immediately disbanded, and utterly abandoning any hope at research or buildings. (Soldiers want paid!)

21) Ability to block citizen placement (for working tiles on a city) from enemy zones of control

23) Effect controls for how much food remains after a plague and starvation (Instead of having them use growth's value, each have their own value)

DISPLAY

13) Ability to control how much population one city size(or a given total city size) corresponds to (and a bit of a stretch, but to control how much population each unit adds to the total)

38) Ability to set FoggedBorders to 'visible borders only' (borders in fogged areas not drawn at all, as opposed to drawn but not updated, or drawn and updated)

39) Client Setting: Combat Delay to delay the displaying of combat until X milliseconds after it actually occured (To allow time for the client to Center and the player to focus, so that the entire combat can be seen, also allowing Combat Animation Step Time to be low.)

TILESET

15) On Hex tilesets, load river mouths for the additional two directions (up/nw and down/se for iso?hex, and up-left/ne? and down-right/sw? for notiso?hex)

MOVEMENT

16) On Oct tile-rulesets, have an option to have diagonal movement costs increased by approximately the square root of 2 (1.4142..., or, for example with 1/3 movement bits, 1 to 1+1/3, 2 to 2+2/3, 3 to 4 or 4+1/3)

22) Repurpose "UnsafeCoast" flag to cause map generator to ignore this terrain when making oceans shallow (To allow deep water to form around glaciers, to prevent Triremes from sailing around them, though not necessarily ALWAYS deep water, if it's near another terrain type.)

26) Block the ability of road native units(That are on otherwise nonnative terrain) to cross into cities that are not connected to their road type

TECHNOLOGY
17) Allow up to 4 prerequisites on a technology

EFFECTS

28) Effects that allow cities to become unhappy, for Propaganda style effects. (For example, Statue of Liberty causing those with all government types except Republic and Democracy to experience unhappiness) Applied before Make_Content effects, it would usually simply serve as a reduction to them, which I think is already possible via negative Make_Content. However, it would also allow citizens to become angry if there are no Make_Content effects. [Possibly just create a function that Make_Content values make citizens angry instead if they are negative?]

29a) Effect flags! Similar to the existing, and INCREDIBLY USEFUL terrain and unit flags, for use as requirements in other files, such as buildings, units, and terrain.
29b) Ability for unit/building requirements to need Flags, such as Terrain and Tech flags (and Effect flags).

35) Additional effect requirement ranges: Especially something like 'Radius2' (sqrt8?)and 'CRadius2' (sqrt5?) that would allow more flexibility than Adjacent straight to Continent/Player.

36) Additional effect requirement ranges for Building effect requirement type: Adjacent and CAdjacent [and Radius2/CRadius2?] (In effect, first checking for cities, then checking if any of those cities have the desired building)

37) Ability to check units OTHER than the target (as far as I can tell, a target unit can only check itself? Also, I'm assuming UnitType is the unit's Name, e.g. Warriors or Phalanx, and not Move_Type, which is Land, Sea, or Both?) This would allow various effects, like having AEGIS cruisers giving a defense bonus against air units to nearby allies, support units giving regen or defense bonuses to nearby allies, and sabotage units giving penalties to nearby enemies.

40) Enabling an action being able to cause casus belli against ALL other nations. Could be useful for a feudal type government or as a result of a nuclear attack or something. People baying for blood, and they don't care whose it is.

41) The ability to have 'non-critical fail' result from action failures. Possibly two separate ones based on 'maintaining stealth' and 'maintaining secrecy'

42) The ability to try to blame another nation in covert actions. Possibly another level of success like 41). It would reduce the chances of success and potentially create a diplomatic incident with the entire world rather than just the target on a critical-fail.

43) The ability to activate 'upkeep banking' (once you have the requirements). Upkeep banking would place all non-upkeep production into a list, and if any units are lacking their upkeep, they will change to the city that has extra production that can support them. Possibly by changing their home cities. Once this is possible, changing homecities should be possible from anywhere in the world, rather than just while within said city. A more advanced model might have all cities simply pay into a homogenized bank to cover all the units. In modern militaries, upkeep is mostly paid by the nation as a whole, rather than by independent cities.

MISC

32) In Units.ruleset, Change the name of the "DefenseDivider" variable to "AttackMultiplier". No actual mechanics change, just something to reduce the required mental gymnastics. (DefenseDivider is declared in the Attacker, but effects the Defender. It's somewhat confusing, as without reading the reference, it looks like it just counters the DefenseMultiplier variable. Might as well just have it read as AttackMultiplier, which is the apparent effect for the one in whose section it is declared in.)

45) Change the 'turns until contact is lost' option setting 0 to mean 'only while in direct contact', rather than 'never', which should be changed to -1.

Idle thoughts/Uncertain Ideas/Unconfirmed current functionality

Make 'non-aggressive' (or default) civilizations not attack during first contact.

Make a Quad tile-ruleset option, using the normal square/lozenge Oct tilesets, but unable to travel diagonally.

Make some method of trading food to other cities

Make the ability to create 'autonomous regions'. That is to say, you can choose a city and force it to become its own nation, preferably one on the same team or at least allied with the original owner. (Afterward, more cities could be given to the new nation through diplomacy.)

[REDACTED] wrote:

Code: Select all

1)  Ability to set which units a given unit is strong at attacking and/or defending against(like lancers defending vs cavalry, or fighters attacking helicopters)

3) Ability to set a bombard_kill flag in the units file, allowing bombarder units to kill their target if their attack would reduce its health to zero.

9) Ability to set mindist between cities even higher(range that server can use set in ruleset?), for larger harvest ranges (Maximum harvest range is 5, which would need an 11 mincitydist to prevent overlap[11 tiles away has 10 tiles between cities, preventing overlap. Current max is 9, which only prevents overlap with city harvest radius at 4.)

10) Ability to change city growth requirement to a linear version of the formula rather than geometric(?) one.(for instance, going up by 10 food for each population)

14) Ability to set the time passage not in years, but an even smaller increment of time, a month. (Primarily a display change perhaps? Simply Displaying CE 1.12 instead of CE 23, etc?)
[Note: edited this, said 1.11 = 23 before, .1 would be logically added to the decimal always, since no one uses a zeroth month, but instead first month to denote the beginning of a year]

18) Water:
The ability to set in server how many tiles out water can be border claimed by a city (So that a city could claim out as far as it's able to work, for example 2 in the default ruleset)
The ability to set in server how many land tiles must be adjacent to water before it can be successfully claimed by a border(In real life, any ocean next to their land border is claimed by countries, and the country with an adjacent border that has the highest claim would receive it)[0 would have the same claim rules as land, and -1 or 7 in hex/9 in oct would never claim additional water tiles
The ability to set in server if border claims can 'bridge' across water tiles to other land tiles (But only if the water tile itself can be successfully claimed).

20) Ability to remove Zone of Control effect from nonmilitary/zero attack units.(That is to say, These units do not create a ZOC, rather than ignoring existing ZOCs) As an extension, limitation of zone of control to tiles a unit can actually attack.

27) effect range "TradeCity" for requirement types Building, Special, Base, Road, Terrain, Resource, TerrainClass, TerrainFlag.
     -Trade city would include the range "City" of both the city in question and all of its (direct) trading partners.
     -Would be a good option for "strategic resources" so as to not be overly limiting to each individual city, while not being so uncontrolled as to allow cities with absolutely no interaction to gain access to things which require said strategic resources (Player's CityA having iron would not allow CityB to build Legion unless they had a trade route connecting them).
     -Possible additional option of a "TradeWeb" range that would include any city linked by trade, namely those which are trading with cities cityX is also trading with, but you are not trading with directly. (CityX trades with CityY, and CityY trades with both CityX and CityZ. CityX would then detect types from not only CityY, but also CityZ)

31) Ability to extend happyborders to inside all allies' borders as well as your own for republic/democracy unhappiness. (So you can send units to defend your allies without causing unhappiness)

Ability to set the ocean as an unusable source for irrigation, unless certain technology (desalination?) is known

Allow unlearnable technology to be set as starting technology, enabling different tech trees.

Allow an additional color(s) to be used for tiles on the minimap.(perhaps declared in the tileset?) (For example, having 'out of bounds' tiles show up as black, rather than green of land, or blue of ocean)
Last edited by GriffonSpade on Fri Aug 21, 2015 8:16 pm, edited 35 times in total.

cazfi
Elite
Posts: 1710
Joined: Tue Jan 29, 2013 6:54 pm

Re: Another Wishlist

Postby cazfi » Mon Apr 29, 2013 7:31 pm

There's features in 2.5 development version that should suffice for 1 & 2. I've been thinking 6 for a long time, but it's not a trivial change and you are first one beside myself to request it. Isn't granary effect just what you are after in 8?

User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Another Wishlist

Postby GriffonSpade » Mon Jun 03, 2013 9:39 am

Ah, not exactly the right effect. Granary sets it to 50% of the new amount when you grow, or disturbingly, when you shrink, instead of maintaining how much you had before. And obviously if you shrink, you'd continue shrinking every turn since you'd still have 0 food.

cazfi
Elite
Posts: 1710
Joined: Tue Jan 29, 2013 6:54 pm

Re: Another Wishlist

Postby cazfi » Mon Jun 03, 2013 1:29 pm

So you're actually after cities growing faster - to need to get increase of difference between two granary sizes instead of total new size of food? That is: whne granary size 1 is 10, and granary size 2 is 20, you currently need 10 food to grow 1 -> 2, and 20 to grow 2 -> 3, but you'd want that to be 10 for 1 -> 2, and 20-10 = 10 for 2 -> 3.
You can get the exact effect by adjusting granary size, except that numbers shown are a bit different: granary size 2: 10 -> food goes from 0 to 10, while you wanted 10 to 20.

User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Another Wishlist

Postby GriffonSpade » Tue Sep 10, 2013 8:05 am

Hmmm, another couple things have come to mind.

The first is an enlarged hex set(two or three times scale) that can use the nice Amplio units and cities. My own attempts have all failed due to blending when resizing them. (winding up with a whitish or magentish outline. Rather unfortunate since I think even blown up to double size Isohex would look pretty good, especially with the additional units available)

The Second is to allow resources to have "requirements" that must be met, without which it would not give its bonus. So for example to get a trade/production bonus for coal, iron, or gold, you'd have to mine the tile. Likewise some might be removed: naturally occuring wheat ceasing to give a food bonus after it's irrigated or farmed (because assumably people would be planting their own wheat rather than using wild-growing wheat)

The Third I changed myself, but I'll mention it anyway: The lack of ancient unit variety. Only Archers, Infantry, and Cavalry exist, with no difference between light and heavy units. Shouldn't light infantry and archers move more quickly than heavy infantry? Likewise with light and heavy cavalry?

cazfi
Elite
Posts: 1710
Joined: Tue Jan 29, 2013 6:54 pm

Re: Another Wishlist

Postby cazfi » Tue Sep 10, 2013 8:57 am

GriffonSpade wrote:The Second is to allow resources to have "requirements" that must be met, without which it would not give its bonus. So for example to get a trade/production bonus for coal, iron, or gold, you'd have to mine the tile. Likewise some might be removed: naturally occuring wheat ceasing to give a food bonus after it's irrigated or farmed (because assumably people would be planting their own wheat rather than using wild-growing wheat)


Hmm... In 2.5 there's "Resource" requirement type so in theory you could:
1) Make bonuses from resources 0 in terrain.ruleset
2) Define bonuses for resource tiles as effects, with what ever requirements (and negated requirements) you want

User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Another Wishlist

Postby GriffonSpade » Fri Dec 20, 2013 3:10 pm

Revamped my list! Includes various things I've come up with and made threads for since, or seen on others' lists; also things that have been, or are being, implemented are removed.

cazfi
Elite
Posts: 1710
Joined: Tue Jan 29, 2013 6:54 pm

Re: Another Wishlist

Postby cazfi » Fri Dec 20, 2013 7:44 pm

GriffonSpade wrote:Revamped 12/20/13

UNITS

1) Ability to set which units a given unit is strong at attacking and/or defending against(like lancers defending vs cavalry, or fighters attacking helicopters)

http://freeciv.wikia.com/wiki/How_to_up ... at_bonuses

GriffonSpade wrote:10) Ability to change city growth requirement to a linear version of the formula rather than geometric(?) one.(for instance, going up by 10 food for each population)
-Additionally, the food store's current value to be delinked from the new 'maximum' (to grow) value and not change, along with an integer value for direct reduction of the food store upon growing

You can define granary size as an exact value for all city sizes that you think can ever occur in game so that generic geometric formula does not kick in. From S2_4 game.ruleset:

Code: Select all

; Parameters used to generalize the calculation of city granary size:
;   if city_size <= num_inis:
;     city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
;   if city_size > num_inis;
;     city_granary_size = (granary_food_ini[num_inis] +
;        granary_food_inc * (city_size - num_inis)) * foodbox / 100
granary_food_ini = 20
granary_food_inc = 10


GriffonSpade wrote:13) Ability to control how much population one city size(or a given total city size) corresponds to (and a bit of a stretch, but to control how much population each unit adds to the total)

http://freeciv.wikia.com/wiki/How_to_up ... Population

GriffonSpade wrote:16) On Oct tilesets, have an option to have diagonal movement costs increased by approximately the square root of 2 (1.4142..., or 1 to 1+1/3, 2 to 2+2/3, 3 to 4 or 4+1/3)

That would not be gfx (tileset) option, but ruleset one...

GriffonSpade wrote:Make a Quad tileset option, using the normal square/lozenge tilesets, but unable to travel diagonally.

...like this.

GriffonSpade wrote:Ability to set the ocean as an unusable source for irrigation, unless certain technology (desalination?) is known

Possible since 2.4. Only if "Can_Irrigate" effect is active, tile can be irrigated. See Alien ruleset for example usage.

GriffonSpade wrote:Allow unlearnable technology to be set as starting technology, enabling different tech trees.

root_req. Been there many versions already.

GriffonSpade wrote:Allow an additional color(s) to be used for tiles on the minimap.(perhaps declared in the tileset?)

What exactly do you mean by "additional"?

User avatar
GriffonSpade
Elite
Posts: 578
Joined: Mon Apr 29, 2013 4:41 pm

Re: Another Wishlist

Postby GriffonSpade » Sat Dec 21, 2013 8:15 am

Thanks for your time and effort Cazfi.

cazfi wrote:
GriffonSpade wrote:Revamped 12/20/13

UNITS

1) Ability to set which units a given unit is strong at attacking and/or defending against(like lancers defending vs cavalry, or fighters attacking helicopters)

http://freeciv.wikia.com/wiki/How_to_up ... at_bonuses


I realized I'd only read the 2.4-2.5 TILESET changes....Guess I got some homework to do.

cazfi wrote:
GriffonSpade wrote:13) Ability to control how much population one city size(or a given total city size) corresponds to (and a bit of a stretch, but to control how much population each unit adds to the total)

http://freeciv.wikia.com/wiki/How_to_up ... Population


AFAIK, this only allows 'zeroes padding', for example 1 population is 1x(default, 10,000), 2 is 3x, 3 is 6x, 4 is 10x, 5 is 15x, 6 is 21x. (each seems to add its 'number' times more to the population), rather than allowing for a linear progression: 1 population is 1x, 2 is 2x, 3 is 3x, 4 is 4x, etc; or even different amounts, such as having each size be Nx population, with N being whichever number you want to put in there (for example 2 for 20k, 5 for 50k, etc)

cazfi wrote:
GriffonSpade wrote:10) Ability to change city growth requirement to a linear version of the formula rather than geometric(?) one.(for instance, going up by 10 food for each population)
-Additionally, the food store's current value to be delinked from the new 'maximum' (to grow) value and not change, along with an integer value for direct reduction of the food store upon growing

You can define granary size as an exact value for all city sizes that you think can ever occur in game so that generic geometric formula does not kick in. From S2_4 game.ruleset:

Code: Select all

; Parameters used to generalize the calculation of city granary size:
;   if city_size <= num_inis:
;     city_granary_size = (granary_food_ini[city_size] * foodbox / 100)
;   if city_size > num_inis;
;     city_granary_size = (granary_food_ini[num_inis] +
;        granary_food_inc * (city_size - num_inis)) * foodbox / 100
granary_food_ini = 20
granary_food_inc = 10


I'll have to play with this one, get back used to altering rulesets...

cazfi wrote:
GriffonSpade wrote:16) On Oct tilesets, have an option to have diagonal movement costs increased by approximately the square root of 2 (1.4142..., or 1 to 1+1/3, 2 to 2+2/3, 3 to 4 or 4+1/3)

That would not be gfx (tileset) option, but ruleset one...

GriffonSpade wrote:Make a Quad tileset option, using the normal square/lozenge tilesets, but unable to travel diagonally.

...like this.


Clarified a bit that it IS a ruleset thing, but is tangentially related to what tile type you're using, and gave the first the header of 'movement'


cazfi wrote:
GriffonSpade wrote:Ability to set the ocean as an unusable source for irrigation, unless certain technology (desalination?) is known

Possible since 2.4. Only if "Can_Irrigate" effect is active, tile can be irrigated. See Alien ruleset for example usage.

GriffonSpade wrote:Allow unlearnable technology to be set as starting technology, enabling different tech trees.

root_req. Been there many versions already.


Sorry to waste your time on these, I just put them up there at the bottom and planned on looking them up at a later time.

cazfi wrote:
GriffonSpade wrote:Allow an additional color(s) to be used for tiles on the minimap.(perhaps declared in the tileset?)

What exactly do you mean by "additional"?


Allowing more colors than 'green for land, blue for ocean' on the minimap. For example, allowing 'out of bounds' tiles to use a black color, or even to color code based on terrain (even though i personally would not do that, as that'd make it hard to distinguish cities and units.)

cazfi
Elite
Posts: 1710
Joined: Tue Jan 29, 2013 6:54 pm

Re: Another Wishlist

Postby cazfi » Sat Dec 21, 2013 10:08 am

GriffonSpade wrote:
cazfi wrote:
GriffonSpade wrote:Allow an additional color(s) to be used for tiles on the minimap.(perhaps declared in the tileset?)

What exactly do you mean by "additional"?


Allowing more colors than 'green for land, blue for ocean' on the minimap. For example, allowing 'out of bounds' tiles to use a black color, or even to color code based on terrain (even though i personally would not do that, as that'd make it hard to distinguish cities and units.)

Maybe not most intuitive: But see Gamre->Options->Local Client->Overview. Enable for example "Terrain relief map layer". Colours are defined in terrain.ruleset.