yairm210 / Unciv

Open-source Android/Desktop remake of Civ V
Mozilla Public License 2.0
8.12k stars 1.52k forks source link

Missing features from Civ V - G&K #4697

Open xlenstra opened 2 years ago

xlenstra commented 2 years ago

This issue is meant as a collection of all G&K features that have not yet been implemented, but we are planning to implement. If you know such a feature that is not listed below, please comment on this thread, and we'll add it to the list.

The old version of this issue can be found as #663, but it contains lots of discussion on issues that have long been solved, cluttering up the issue. Furthermore, multiple new issues have been posted there, but have not been added to the original post. This new issue is meant as a clean slate, including all the open issues from the old version, but leaving all finished baggage behind.

Major things:

Units:

Combat:

Diplomacy:

Civs:

Cities:

Other:

ajustsomebody commented 2 years ago

this is an absolutely great thread! by any chance you can also link my implementation of diplomacy todo issue?

also please add mountains being able to be seen from away due to height of it like f-fog m-mountain p-plain x-player

ffffffffffffffff ffffffffmffffff ffffffffffffffff pppppppppp pppxpppppp

ravignir commented 2 years ago

Submarines are visible to and can be attacked by enemy units directly next to them

Rather: They are visible to units next to them and can be attacked when visible

SomeTroglodyte commented 2 years ago

Regarding Celts: #4658 only lacked an acceptable implementation of combining positive and negative subfilters into a tileFilter for "unimproved Forest" - I'd like a vision on how to elegantly do that

xlenstra commented 2 years ago

My first idea would be allowing combined filters for tiles as was already done for baseUnits, and then add 'unimproved' as a filter in tileInfo.matchesFilter, which is only true when improvement == null, so you can have something like: "[+1 Faith] from every [City center] adjacent to at least [1] [{unimproved} {Forest}] tiles [in all cities]"

Alternatively, you can do something like "[+1 Faith] from every [City center] adjacent to at least [1] [Forest] tiles without [improvements] [in all cities]", which would require adding "improvement" and "improvements" in improvement.matchesFilter, but is also more moddable, allowing things like "[+2 Food] from every [Forest] adjacent to at least [2] [Forest] tiles without [lumber mill] [in this city]" or something.

SomeTroglodyte commented 2 years ago

You got "and" logic through for unitFilters? My input for logic in tileFilters was summarily rejected back then when I wanted that alien mod improvement to be allowed on any tundra including hill or forest but not other hills or forest - in one unique.

And - oops - that kind of discussion does not belong here. Even the closed 4658 would be the better place. I just wanted that line marked as half-done or something.

ajustsomebody commented 2 years ago

Gold treasure: You receive 50-100  Gold.

Cultural artifacts: You receive 20 Culture.

Religious artifacts: You receive 30-40 Faith.

An ancient prophecy: You receive 80 Faith. Note that the civilization must have founded a Pantheon before this reward becomes possible and that it stops occurring after you've founded a religion.

you should be able to get a random ancient era tech from ruins, you only get ones that you can currently research ( u cnat get calendar without pottery)

barbarian activity spoiled from ancient ruins

all of the bonuses should be adjusted for game speed except for gold

add these too please

ravignir commented 2 years ago

Some of these things may be easily crossed out of the list:

Barbs not healing is already implemented i think (unless they pillage). Do they gain promotions?

Capturing cities destroys all culture buildings in them, and has a chance of destroying additional buildings

I found info on that in civilopedia, it appears that all culture buildings are destroyed, all military buildings are destroyed (barracks etc), all national wonders are destroyed and any other building has 34% chance of being destroyed.

Things to include on the list:

ajustsomebody commented 2 years ago

Question: are tiles just at the ends of rivers considered next to river in civ5? as an example: 20210807_144941.jpg

SomeTroglodyte commented 2 years ago

You've circled 6 tiles - 4x yes, 2x no

ajustsomebody commented 2 years ago

You've circled 6 tiles - 4x yes, 2x no

i dont mean the ones that are directly water tiles, i mean the one with worker and one with hill forest

ravignir commented 2 years ago

Question: are tiles just at the ends of rivers considered next to river in civ5? as an example: 20210807_144941.jpg

nope

ajustsomebody commented 2 years ago

@xlenstra one thing i wanna add, the happiness from wonders sometimes needs to be worked, it is different per wonder and sometimes it being in your Territory is enough

xlenstra commented 2 years ago

@xlenstra one thing i wanna add, the happiness from wonders sometimes needs to be worked, it is different per wonder and sometimes it being in your Territory is enough

Already on the list

ajustsomebody commented 2 years ago

can you please add the table at the bottom of this link https://civilization.fandom.com/wiki/Map_(Civ5) to the list? especially the natural wonder one is not implemented

ajustsomebody commented 2 years ago

can you add production food science culture output aimed city population assignation to the list? also the cities dont update their assigned population when tile yields change or territory changes (u can improve a farm on a grassland but the game wont move the populstion assigned to s plain grassland to that farm)

avdstaaij commented 2 years ago

According to the wiki, anti-air units and fighters should deal increased damage against Helicopter Gunships.

Anti-air units in particular currently don't do this in Unciv because Helicopter Gunships are implemented as land units and do therefore not match the "air units" unitFilter used in the "+[amount]% Strength vs [air units]" unique. The original game uses the "Bonus vs Aircraft/Helicopters (150)" and "Bonus vs Bomber Units/Helicopters (150)" formulations, but singling out Helicopters is not very modular. Anti-air units and bombers should probably deal increased damage against all free-moving air units, in case mods add more of them. Perhaps we could add a new "hovering" movement type for such units.

xlenstra commented 2 years ago

According to the wiki, anti-air units and fighters should deal increased damage against Helicopter Gunships.

Anti-air units in particular currently don't do this in Unciv because Helicopter Gunships are implemented as land units and do therefore not match the "air units" unitFilter used in the "+[amount]% Strength vs [air units]" unique. The original game uses the "Bonus vs Aircraft/Helicopters (150)" and "Bonus vs Bomber Units/Helicopters (150)" formulations, but singling out Helicopters is not very modular. Anti-air units and bombers should probably deal increased damage against all free-moving air units, in case mods add more of them. Perhaps we could add a new "hovering" movement type for such units.

Helicopter is already a unit type, so I don't feel a specific need for a 'hovering' movement type, especially as it is basically the same as land units in all circumstances (except when you want to make it enter coast tiles without embarking, which was kind of in civ V, but that seems more trouble than its worth). I was already planning on at some point adding Strength bonus vs that unit type to those anti-air units anyway, and I feel like that ought to be fine modularity-wise.

ajustsomebody commented 2 years ago

can u change "Ranged units may capture civilian units instead of destroying them" to you capture civilian units by moving into their tile, this wont use up your attack?

"Automatic reassignment of population after each turn, with possibly user-set resource focuses"

can you change this into when any of the yields within the borders of that city and its shared territory and when that city loses/gains territory (shared included)?

Great people & work-boats should be destroyed on capture

great people minus great prophets, there should instead be a unique that says "gets destroyed when captured" or maybe just "doesn't get destroyed when captured"

xlenstra commented 2 years ago

can u change "Ranged units may capture civilian units instead of destroying them" to you capture civilian units by moving into their tile, this wont use up your attack?

"Automatic reassignment of population after each turn, with possibly user-set resource focuses"

can you change this into when any of the yields within the borders of that city and its shared territory and when that city loses/gains territory (shared included)?

No, because the base game also doesn't do that and this way it is clearer for the user.

Great people & work-boats should be destroyed on capture

there should instead be a unique that says "gets destroyed when captured" or maybe just "doesn't get destroyed when captured"

No, as this is a way of implementing the missing feature, but is not a direct part of this feature itself.

ravignir commented 2 years ago

"Uncapturable" unique already exists (unit is destroyed when you try to capture it) and it is only a matter of editing couple lines in unit.json to make it work like in civ5.

will-ca commented 2 years ago

Some differences:

will-ca commented 2 years ago

I also noticed that unit maintenance seems fairly steady in the late game, whereas in Civ V it increases quasi-exponentially with the turn count.

However, that's probably one of the worst design choices in Civ: It's clearly a kludge balanced based on only the first couple thousand years, and it makes "forever war" style games both infeasible and unrealistic as gold income eventually stagnates. I think an S-curve that's the same as Civ V's behaviour before levelling off after the endgame could be ideal, or maybe a count based on unit production costs.

ravignir commented 2 years ago
ajustsomebody commented 2 years ago

suggestion for better readability, add max of 3 stars to every element by difficulty to implement, making it look better. like 1 movement points to get into a city center should be 1 star while that border history thing should be like a 2 and 3 for teams

will-ca commented 2 years ago
ajustsomebody commented 2 years ago

distinction of landmasses between them

ravignir commented 2 years ago

Hydro plant building

xlenstra commented 2 years ago

Hydro plant building

Main reason this isn't implemented, is that the AI can't manage its resources, and would spent all of them on building this, thus making it impossible to build modern units

ajustsomebody commented 2 years ago

Hydro plant building

Main reason this isn't implemented, is that the AI can't manage its resources, and would spent all of them on building this, thus making it impossible to build modern units

same with spaceship factories, i cant build a damn rocket artilerry because my cities with low prod decide to construct space age factories in villages

ravignir commented 2 years ago

can you please add the table at the bottom of this link https://civilization.fandom.com/wiki/Map_(Civ5) to the list? especially the natural wonder one is not implemented

It is implemented, but there is a slight problem, let's see if you can spot it; // val numberToSpawn = round(mapRadius 0.13133208f - 0.56128831f).toInt() // fun getHexagonalRadiusForArea(numberOfTiles: Int) = if (numberOfTiles < 1) 0f else ((sqrt(12f numberOfTiles - 3) - 3) / 6) // fun getEquivalentHexagonalRadius(width: Int, height: Int) = getHexagonalRadiusForArea(width * height).roundToInt()

SomeTroglodyte commented 2 years ago

I can spot it! All that code is commented out, so the game won't even compile due to unresolved references! Yay! :partying_face:

kingkarna1 commented 2 years ago
  • Unhappiness effects, such as production debuffs and barbarian units spawning

ive think a building unique could help with barbarians: "spawns [amount1] [unit] as barbarians at a %[amount2] chance every [amount3] turns when empire has -[amount4] happiness" example: "spawns [3] [warrior] as barbarians at a %[67] chance every [5] turns when empire has -[17] happiness"

kingkarna1 commented 2 years ago
  • Oil wells should be named offshore platforms when built on water

i think if we have 2 oils(1 for land and 1 for sea, for this land oil is just "Oil" while water oil is "Water Oil") and add a new unique that looks like this: "this resource is the equivalent of [resource]"

it could work

avdstaaij commented 2 years ago
  • Oil wells should be named offshore platforms when built on water

i think if we have 2 oils(1 for land and 1 for sea, for this land oil is just "Oil" while water oil is "Water Oil") and add a new unique that looks like this: "this resource is the equivalent of [resource]"

This could work, but a more general solution might be to refactor the improvement system, as discussed in #4889. In particular, see https://github.com/yairm210/Unciv/pull/4889#issuecomment-900961319.

(yes, I still lurk here sometimes)

will-ca commented 2 years ago

The economic/cities overview for Civ V shows the icons of production.

will-ca commented 2 years ago

I suggest the first step for focuses should be to support coefficients/weighting for different resource types in population assignment.

foolishgrunt commented 2 years ago

Would it be possible to also list missing features that are "wontfix" and "wontfix until [X] happens"?

Example of "wontfix": Naval and land units cannot co-occupy city

Example of "wontfix until [X] happens": Hydo plant will not be implemented until AI learns to manage resources

foolishgrunt commented 2 years ago

Great person points should be accrued on a per-city basis, not empire-wide.

xlenstra commented 2 years ago

Great person points should be accrued on a per-city basis, not empire-wide.

Already on the list

will-ca commented 2 years ago

IIRC: Civ V clearly shows which units are (defenceless) civilians by drawing their icons in a different shape. In Civ V they are triangular.

This clearly communicates to the player which units are okay to send into combat and the like, and probably eases the learning curve. I didn't even notice it since I already knew that from Civ V, but I can see how poor distinguishability would be confusing to a new player. (See: #5689.)

will-ca commented 2 years ago

Consensus in results exposed by Google is that even the basic nuke can't actually be intercepted in Civ V.

https://github.com/yairm210/Unciv/blob/af941754cdd513cd80d13fb820083de9ceda5387/core/src/com/unciv/logic/battle/Battle.kt#L625-L635

It's not clear whether that's by design, or a bug/incomplete feature in Civ V, though.

xlenstra commented 2 years ago

Consensus in results exposed by Google is that even the basic nuke can't actually be intercepted in Civ V.

https://github.com/yairm210/Unciv/blob/af941754cdd513cd80d13fb820083de9ceda5387/core/src/com/unciv/logic/battle/Battle.kt#L625-L635

It's not clear whether that's by design, or a bug/incomplete feature in Civ V, though.

If I'm not mistaken, when I implemented this, it was marked as a bug that this was impossible. It's been a few months since I looked at the civ 5 source code, but iirc, atomic bombers are actually marked as interceptable, but as they are handled differently from all other air units, the function doing the interception is never called. I've chosen to actually implement this, both to fix this "bug" and to give some defence against at least the first level nukes.

itanasi commented 2 years ago

Several of these can get checked off.

See #6128 #5975 #5974

itanasi commented 2 years ago

Unemployed Citizens should contribute 1 Hammer and count as a Specialist

xlenstra commented 2 years ago

Unemployed Citizens should contribute 1 Hammer

I'm 90% certain this is already implemented

and count as a Specialist

Does this actually matter for anything? It feels like a weird choice to me, 'Your specialization is not doing anything'? It seems more to me it was an implementation detail resulting in every pop being either a specialist or working a tile, which could streamline some calculations but we've already worked around that?

itanasi commented 2 years ago

Looks like the +1 Production is in. Counting as Specialists matters mainly for the Food or Happiness bonuses from stuff like Policy (Civil Society) or Wonder (Statue of Liberty)

xlenstra commented 2 years ago

Looks like the +1 Production is in. Counting as Specialists matters mainly for the Food or Happiness bonuses from stuff like Policy (Civil Society) or Wonder (Statue of Liberty)

Tested it ingame and this indeed seems to be the case, yet it feels weird to call unemployed people 'specialists'. Another option would be to add 'unemployed' as a populationFilter, and the uniques for Civil Society and Statue of Liberty can be expanded to include another unique for that. Does anyone have a preference?

ravignir commented 2 years ago

Tested it ingame and this indeed seems to be the case, yet it feels weird to call unemployed people 'specialists'. Another option would be to add 'unemployed' as a populationFilter, and the uniques for Civil Society and Statue of Liberty can be expanded to include another unique for that. Does anyone have a preference?

have you tested it in all possible configurations? Vanilla/G&K/BNW. I am getting weird results.

BNW nad G&K: Unemployed citizen is just unemployed citizen - not affected by Korean/Secularism ability, half specialist Food consumption policy, Statue of Liberty (despite it says it provides 2 Production, the yield does not change!).

Vanilla: Affected by Secularism, Food thing and Statue. Not affected by Korean ability (but i found info it used to).

xlenstra commented 2 years ago

I've only tested it with the Civil Society and Democracy policies in G&K, as that was the easiest to set up, and they both worked so I assumed it would be consistent

alexban01 commented 2 years ago

Notification log

you can mark that as done now :)

Actually there are a few more