Update on the Timeline for the 4UC Integration

axatin

King
Joined
Jul 24, 2022
Messages
670
Hi everyone!

Following extensive discussions within the dev team, we are now ready to provide an updated schedule for the integration of 4UC. We want to release a first alpha version of 4UC around the beginning of October. In the alpha version, the four components of all civs, including models/textures and description text, will be fully implemented. Some of the Civilopedia strategy entries may still be missing, they will be added later.

We will do some testing before the alpha release to fix obvious bugs. However, it is likely that the version will be unstable and that a lot of issues still need to be addressed. You are all invited to playtest it and to report any bugs you notice. We've decided to release the alpha version as a modpack: IGE and Quick Turns will be included, but it won't be possible to add any custom mods to it. This is done because we want to focus on issues within the core mod itself (rather than those caused by modmods), and because debugging modpacks is much easier than debugging custom setups, in particular heavily modded ones.

We will update the alpha version as we fix crashes and other game-breaking bugs, so playing full games with it may become possible, but our main focus will be on preparing the beta release. Once the major and game-breaking issues have been addressed, we will release Version 5.0, the first beta version. Of course, it's not yet clear how long it'll take to fix the bugs in the alpha version. An early estimate would be 4 weeks, resulting in a release of Version 5.0 in November. Along with the release, we will provide information on the changes required to make modmods compatible, so modmodders can begin updating them.


Some of the components will be implemented slightly differently than proposed to help the AI use them effectively:
- The "Trommelfeuer" promotion of Germany's Krupp Gun will be changed from "Attacks from a unit with this promotion add +5% RCS to all units with this promotion for this turn. max of +50% RCS" to: "Attacks from a unit with this promotion add +3% RCS to all units with this promotion for the next turn. max of +30% RCS."
- The "Ibutho" promotion of the Zulu InDuna will be changed from "When expended, grants +30 XP to the unit the Induna is stacked with" to "When expended, grants +30 XP to the nearest unit." It will work as before if a unit is stacked with the InDuna, and it will now also have an effect when there's no other unit on the same tile.

Furthermore, we may have to drop some of the more complex UA reworks due to the limited dev resources. If their implementation turns out to be too complex or time-consuming, we will resort to an alternative version of the respective civ. This affects the two following civilizations:
- Egypt: Instead of the sponsored proposal, we may implement the original 4uc proposal which doesn't make any changes to the UA.
- China: The sponsored proposal requires a complex rework of the UA. As an alternative, we may implement only the Baochuan from the sponsored proposal and implement the other components (the UB "Examination Hall" and the unchanged UA) from the original 4uc China proposal.

Thank you for your patience. We'll keep you updated on the progress and let you know if any adjustments to the schedule are necessary.
 
Regarding China and Egypt reworks: hopefully you will be able to implement those changes for alpha release, but even if you dont, one might hope to see those changes implemented in further updates :)
 
It's a shame we won't be getting the Egypt UA rework, it looked very interesting. However, you could argue that since it didn't actually change any of the extra components and was totally focused on replacing base 2UC components that it was out of scope.
For china, the proposed rework is so ambitious and left field that I would want to see it implemented as a modmod first. I think that if China isn't getting implemented then the best use of dev time is to just get the assets and skeleton into the game without adding any new DLL abilities. If China isn't being implemented as passed then don't implement half-measures. Let it go back to congress and don't spend time and energy on something that is half-done and at risk of being changed again later.
 
It would be sad if Hinin's Egypt can't be added as proposed, it really looks like a cool rework for that civ.
Otherwise, great job and a big thank you ! You do an amazing job keeping the VP project alive (at this point, calling it a "mod" no longer gives justice to it)
 
Hi everyone!

Following extensive discussions within the dev team, we are now ready to provide an updated schedule for the integration of 4UC. We want to release a first alpha version of 4UC around the beginning of October. In the alpha version, the four components of all civs, including models/textures and description text, will be fully implemented. Some of the Civilopedia strategy entries may still be missing, they will be added later.

We will do some testing before the alpha release to fix obvious bugs. However, it is likely that the version will be unstable and that a lot of issues still need to be addressed. You are all invited to playtest it and to report any bugs you notice. We've decided to release the alpha version as a modpack: IGE and Quick Turns will be included, but it won't be possible to add any custom mods to it. This is done because we want to focus on issues within the core mod itself (rather than those caused by modmods), and because debugging modpacks is much easier than debugging custom setups, in particular heavily modded ones.

We will update the alpha version as we fix crashes and other game-breaking bugs, so playing full games with it may become possible, but our main focus will be on preparing the beta release. Once the major and game-breaking issues have been addressed, we will release Version 5.0, the first beta version. Of course, it's not yet clear how long it'll take to fix the bugs in the alpha version. An early estimate would be 4 weeks, resulting in a release of Version 5.0 in November. Along with the release, we will provide information on the changes required to make modmods compatible, so modmodders can begin updating them.


Some of the components will be implemented slightly differently than proposed to help the AI use them effectively:
- The "Trommelfeuer" promotion of Germany's Krupp Gun will be changed from "Attacks from a unit with this promotion add +5% RCS to all units with this promotion for this turn. max of +50% RCS" to: "Attacks from a unit with this promotion add +3% RCS to all units with this promotion for the next turn. max of +30% RCS."
- The "Ibutho" promotion of the Zulu InDuna will be changed from "When expended, grants +30 XP to the unit the Induna is stacked with" to "When expended, grants +30 XP to the nearest unit." It will work as before if a unit is stacked with the InDuna, and it will now also have an effect when there's no other unit on the same tile.

Furthermore, we may have to drop some of the more complex UA reworks due to the limited dev resources. If their implementation turns out to be too complex or time-consuming, we will resort to an alternative version of the respective civ. This affects the two following civilizations:
- Egypt: Instead of the sponsored proposal, we may implement the original 4uc proposal which doesn't make any changes to the UA.
- China: The sponsored proposal requires a complex rework of the UA. As an alternative, we may implement only the Baochuan from the sponsored proposal and implement the other components (the UB "Examination Hall" and the unchanged UA) from the original 4uc China proposal.

Thank you for your patience. We'll keep you updated on the progress and let you know if any adjustments to the schedule are necessary.
I third pineappledan's sadness at not getting the Egypt rework yet. The China rework seems too complicated, I won't miss it. Having to wait till November is a bit of a bummer but hey, I'm really glad to see the timeline.
 
I will give the implementation of the Egypt rework a try, now that I'm largely done with proposals (6-70) and (7-84). No promises, though.
 
The main problem is that the dig site code SUCKS. It was, naturally, coded by Firaxis.

I'll probably have to rip it out and rewrite it from scratch, like I did for the Barbarians and much of the Diplomacy AI. At least it's a relatively minor portion of the DLL.
 
Repurpose the Trait_FreeResourceFirstXCities table
  • So that it places the specified resources around the city instead of on the city tile.
  • If the spawned resource is RESOURCE_ARTIFACTS, also populate the site with artifact class ARTIFACT_SARCOPHAGUS (see CvGame:: PopulateDigSite()).
  • This obeys CvPlot::canHaveResource() validations, and I'll add the validation criteria for RESOURCE_ARTIFACTS via SQL.
  • The placement priority (random within each priority bracket):
    1. Owned or neutral tiles within new city's working range, no resource (including unrevealed)
    2. Owned tiles outside working range (including tiles owned by other cities), no resource (including unrevealed)
    3. Don't place it
  • Update CvGame::SpawnArchaeologySitesHistorically() to not count existing sites with ARTIFACT_SARCOPHAGUS class towards the antiquity site cap.
  • AI should account for the free resource when founding a city.

New table: Trait_FreeResourceOnWonderCompletion (TraitType, ResourceType, ResourceQuantity)
  • Spawns the specified resources with ResourceQuantity on random tiles within owned territory on world wonder completion.
  • If the spawned resource is RESOURCE_ARTIFACTS, also populate the site with artifact class ARTIFACT_ANCIENT_RUIN.
  • This obeys CvPlot::canHaveResource() validations, and cannot replace existing resources.
  • AI should be more willing to build world wonders.

Anything missing from these implementation notes? Those were written before this issue was reported, but should still work well pre-Archaeology.

Trait_FreeResourceOnWonderCompletion may cease to place artifacts after Archaeology because of how the proposal was worded. You can't take away what's already "revealed".
Note:
Following discussion in the thread, we should specify that when you found a City, the Antiquity Site is added to the max number possible,
therefore, like the Burial Tomb before, Egypt increases the total number of artifacts on the map equal to its number of cities.
In contrast, when you build a World Wonder the new site is taken from total number to be placed. I.e. it doesn't lead to more artifacts (the current implementation of Rekk)

However, Trait_FreeResourceFirstXCities can still be set to work if you add a smaller SpawnArchaeologySitesHistorically() function that spawns specifically ARTIFACT_SARCOPHAGUS class antiquity sites without filtering.
The code is still indirect by going through PopulateDigSite -> AddArchaeologicalRecord -> SpawnArchaeologySitesLite, but it'll work just fine.
 
Anything missing from these implementation notes? Those were written before this issue was reported, but should still work well pre-Archaeology.

Trait_FreeResourceOnWonderCompletion may cease to place artifacts after Archaeology because of how the proposal was worded. You can't take away what's already "revealed".


However, Trait_FreeResourceFirstXCities can still be set to work if you add a smaller SpawnArchaeologySitesHistorically() function that spawns specifically ARTIFACT_SARCOPHAGUS class antiquity sites without filtering.
The code is still indirect by going through PopulateDigSite -> AddArchaeologicalRecord -> SpawnArchaeologySitesLite, but it'll work just fine.
Your implementation notes look fine, but SpawnArchaeologySitesHistorically() and CalculateDigSiteWeights() are disgusting spaghetti and I don't like inserting code when I don't understand what the original code is even doing. So I'm garbage cleaning first.

I might skip out on the "AI should account for the free resource when founding a city" implementation for now.
 
I might skip out on the "AI should account for the free resource when founding a city" implementation for now.
It's probably fine, seeing as site evaluation AI needs an overhaul anyway.
 
I have torn out and rewritten the awful archaeology code (and probably squashed about 5 bugs in the process), so the Egypt rework should be doable. :)
 
The Chinese UA will not be reworked - I'm not sure that decision was communicated here, so I'm doing so now.

The Egypt rework is done with the exception of the Trait_FreeResourceOnWonderCompletion table, which I'm currently working on.

Once I finish that, and mainly thanks to axatin's diligent efforts in the past few weeks, all DLL integration work for 4UC will be completed, a major milestone in the integration. UI, text changes, and testing still need to be done prior to the alpha release, as described in the OP.

I have updated the VP Congress Session Results thread with a list of all changes that were made to the sponsored proposals during implementation, for the curious. I've also written up what is certainly the biggest changelog in the history of VP, so if you also have the same strange fascination as I do with reading patch notes, look forward to that in a few weeks. :)

Lastly, as mentioned above I have completed the long-delayed (6-70 - New City-States) and (7-84 - Lebensraum) proposals, both of which are changes I've been looking forward to, so that wraps up all of my sponsorship commitments. Regardless of what happens to me in the upcoming weeks, months or years, I can at least leave on a note of satisfaction, knowing I've left the mod in good shape for successors.

If things go well, I won't be departing at all, but I want to be prepared for all possibilities. My upcoming work in the next couple weeks, should life permit me to stick around, will be entirely focused on the Diplomacy AI, my favorite component.
 
I'll admit I'm probably one of the only ones a little sad not to see the Chinese UA be implemented. I actually thought it would make them an incredibly unique civ to play, although tbf they already are. It definitely was outside of the scope of what that congress session should have been about so while I am slightly sad about it I both understand and agree with the arguments to not do it, at least for the time being. It probably deserves another vote just on its own somewhere down the line once 4UC has been properly implemented and bug tested
 
The Chinese UA will not be reworked - I'm not sure that decision was communicated here, so I'm doing so now.
Any chance Chinese UA might be reworked in forseable future, since the UA is very cool and unique?

Anyway, thx for the awesome work. I am super hyped for all the changes. Looking forward to tryhard test new version :)
 
Back
Top Bottom