Release candidate 2.8.2.0 - testers needed

So when I play I like tweaking things a bit to fit my liking. In 2821 I made a new (xml) unit class to have a non-replacement "man-o-war" unit. Worked fine in 2821, and all XMLs I edited haven't changed from 2821 to 2822. However, in 2822 I now get a "DLL hardcoding error: NUM_UNITCLASS_TYPES" "Use a non-hardcoded DLL or recompile the DLL to match your new XML setting." Also getting the same error for "NUM_UNIT_TYPES".

I'd also argue not hardcoding things such as number of unit classes would be a standard submod-friendly thing.

Weird thing is it shows up fine in the colopedia, both the new unit and the black bear (last entry in both files) is showing up too. First entries are showing up too (criminal & colonist). Is this new error of no consequence?

On a different topic I rebalanced all ships to be historically accurate, since vanilla's ship balancing is rather nonsensical imo, is there any community interest in uploading one's tweaks?
 
I'd also argue not hardcoding things such as number of unit classes would be a standard submod-friendly thing.
I added a dynamic DLL (non-hardcoded) to the release. Same download location. Hardcoding is a new optional feature, which can be used to assist the compiler to optimize better. It will not make a huge difference right now, but I used it anyway because a test build is supposed to get people to test stuff, in this case what will happen if users get a hardcoded version. Will anything work differently? My goal was that nobody would notice because I assumed nobody would alter the xml files of a pre-release test build. I guess I was wrong on that account, but at least it seems other than the expected xml issues, nothing has gone wrong. I call that a success.

Hardcoding xml values is also really beneficial while debugging because hardcoded values will display the name rather than index in the debugger. This is however unrelated to released versions as nobody will debug the release DLLs.

Weird thing is it shows up fine in the colopedia, both the new unit and the black bear (last entry in both files) is showing up too. First entries are showing up too (criminal & colonist). Is this new error of no consequence?
It's because a lot of the code is not exploiting the benefits of hardcoding yet. Some internal stuff like lists of units (EnumMap) will use the hardcoded value.

On a different topic I rebalanced all ships to be historically accurate, since vanilla's ship balancing is rather nonsensical imo, is there any community interest in uploading one's tweaks?
There is always community interest in any feedback, particularly from people, who are willing to modify files.
 
I am seeing a lot more units learn a profession from native settlements in one turn than I remember in previous versions. I think it might even be instant ie zero turns. How does the logic work? does the type of unit matter? anyway, It doesn't seem right.

I'm not using the only 1 learning at a time option.
 
Last edited:
I am seeing a lot more units learn a profession from native settlements in one turn than I remember in previous versions. I think it might even be instant ie zero turns. How does the logic work? does the type of unit matter? anyway, It doesn't seem right.
Savegame please. I just tested it and I see no signs of one turn learning.
 
Ver. 2.8.2.2:
Domestic advisor/buildings: is this one a bit bugged?

I miss column for Town Hall buildings, on the other hand there are twice "tools" and "stockade" columns.
 
Ver. 2.8.2.2:
Domestic advisor/buildings: is this one a bit bugged?

I miss column for Town Hall buildings, on the other hand there are twice "tools" and "stockade" columns.
Yeah there is an issue. However nobody touched the code for that screen for as long back as the log goes (mid 2017). No idea when or how it broke, but I suppose it's the excuse I need to rewrite the page to use the new system.
 
Yeah there is an issue. However nobody touched the code for that screen for as long back as the log goes (mid 2017). No idea when or how it broke, but I suppose it's the excuse I need to rewrite the page to use the new system.

Would be good to open issue on GitHub(WTP) for that?
 
Would be good to open issue on GitHub(WTP) for that?
In general yes, but in this case not really. The thing is that I'm already working on it. No ETA because I'm not rushing it. Instead I'm making reusable code, which does everything we want automatically. Ask the DLL for a list of buildings or yields and it should add the columns matching that list. Using fixed width columns (in pixels), higher resolutions will have more columns on each page, but less pages in multi page setups (yeah ultra wide resolution support). Since it's a list, creating a list of a subset becomes trivial. Think the domestic market screen.

It might take a while to make the first page using this system, but once there is one working, the remaining pages will be sort of trivial because they become copy paste the file and alter a few things like what to write in each cell. All the complex stuff like table setup and spacing is handled automatically in a shared file.

I had planned this for a while, but redoing the code to display the very same thing just wasn't worth the time compared to other tasks. Now that I had to look into a bug anyway, rewriting and replacing the buggy code without locating the bug makes it better value for the time spent.
 
I have uploaded 2.8.2.1 as a pre-release. It can be downloaded here.

The changlog is also in the link. It should be noted that not everything planned for the next release is included. Most noteworthy large rivers are absent.

On the other hand there is only one DLL now. When you start the game, it will ask you which colony radius you want to use. No more issues because you forgot to copy a DLL file.

The main goal of this release is to get testers to use the new savegame format. Bug reports where I can load the savegame are way more useful. Please report all the bugs you encounter, preferably with savegames. Do note that savegames can be big because I added debug information to them. If somebody uploads a savegame, which can't be loaded, then the debug info gives an idea of what it is trying to do, hence a chance of fixing the problem.

Please playtest multiplayer. Whenever a desync is encountered, please upload a savegame where it happens when you click end turn or something else. It doesn't matter if the desync has been reported before. I want it with the new savegame format and I want savegames where I can reproduce the desyncs or I won't be able to figure out what is causing them.

I recently started looking into network desyncs, but I got nowhere because of issues reading savegames. I really want to fix all desyncs prior to next full release if possible.

A few weeks ago, I downloaded the new DLL (2.8..2.1) and replaced the old DLL with it. The game would no longer run so I reverted to the old DLL. I haven't tried it since.
Maybe I did something wrong?
Richard
 
2.8.2.2
numbers/rounding

Screen shown when mouse over Carpenter on Sawmill:
1 Carpenter produces 10 hammers +10% bonus (Health) = 11 hammers. Expected number when 2 Carpenters are working 2X 11 = 22.
Number shown instead: 21

Spoiler :

upload_2020-12-30_11-6-24.png



When I change to the production popup of the sawmill instead
it does not simply add up the numbers of the single carpenters but starts calculating from the start
Carpenter 10 + Carpenter 10 = 20 + city bonus1 = 21 and displays that, seemingly too low number.
Then adds 10%city health and comes to 23 in the production popup - but below the sawmill still 21 are displayed.
My expectation would be that the total of the production popup should be identical to the number in green below the sawmill, being the final result of all boni and mali.

Spoiler :

upload_2020-12-30_11-9-39.png

 
So I'm on a borderline potato laptop at the moment, and the method I'm using for internal trade routes, with my current 20 settlements, takes over 20 seconds to load the "Assign transport routes" interface, and I assume it grows exponentially with more import/export orders. Would it be possible to, when entering the interface from a transport which is in an owned settlement, to default both "export" and "import" filter to the current settlement? (then the player just has to change at least one of the 2 filters) I imagine something of this sort could reduce that load time a whole lot?
 
So this just happened, I certainly have enough gold but the Archbishop's accountant disagrees?
 

Attachments

  • Untitled.jpg
    Untitled.jpg
    308.3 KB · Views: 74
On a different topic, my capital of 80 pops's growth is being bottlenecked by happiness, it might be immersive & happiness-boosting to have gems/gold/silver added to the internal market, for pops such as the bishop, governor and famous nobleman. It takes a long time to get all resources demanded by the internal market, this one still missing 4, so something like gems could help a bit.
 
On a different topic, my capital of 80 pops's growth is being bottlenecked by happiness, it might be immersive & happiness-boosting to have gems/gold/silver added to the internal market, for pops such as the bishop, governor and famous nobleman. It takes a long time to get all resources demanded by the internal market, this one still missing 4, so something like gems could help a bit.

I like the direction of this proposal. Ideally gold and silver could be used to produce jewelry or luxury goods.

A presumably easy to implement and imo very atmospheric feature along these lines would be too have coca be demanded for slaves to reduce their negative effect on happiness.
 
For less micro-ing with smugglers I'd suggest duplicating the unit, making the new one 3 times as expensive and carry 3 times the cargo, and have the model be 3 ships instead of 1. Last point being the only thing idk how to do ^_^. If someone knows how to I might play around with it and for other ship types too.
 
I like the direction of this proposal. Ideally gold and silver could be used to produce jewelry or luxury goods.

A presumably easy to implement and imo very atmospheric feature along these lines would be too have coca be demanded for slaves to reduce their negative effect on happiness.

Oh yeah, producing luxury goods would be great, forgot about that one. Maybe at the blacksmith, if producing from silver/gold.
 
Oh yeah using the blacksmith is brilliant with the high opportunity cost of occupying tools production..Only available from ironwork and up since it requires a well developed colonial economy.
2 silver + 1 gold -> 5 luxury goods
 
Last edited:
Screen shown when mouse over Carpenter on Sawmill:
1 Carpenter produces 10 hammers +10% bonus (Health) = 11 hammers. Expected number when 2 Carpenters are working 2X 11 = 22.
Number shown instead: 21
Known issue. The game does all calculations in ints (whole numbers) as this makes network sync easier/possible. However it introduces rounding errors. 1 +50% +50% = 1 while 1 + 100% = 2. I have talked about switching to fixed point calculations instead, but so far nothing has happened.

Then adds 10%city health and comes to 23 in the production popup - but below the sawmill still 21 are displayed.
Vanilla has two functions: one for the display and one for the actual changes. That's a poor design because they can go out of sync. While merging those two is possible, it's not a 5 minute job to do so.

Would it be possible to, when entering the interface from a transport which is in an owned settlement, to default both "export" and "import" filter to the current settlement? (then the player just has to change at least one of the 2 filters) I imagine something of this sort could reduce that load time a whole lot?
It could be. I would like the savegame where it is that slow because it sound like a good one for testing performance issues. Changing something related to performance requires something good to test on to tell if the changes makes a difference. Certain types of performance boosting can even backfire and make the game slower, which is why testing is important.

So this just happened, I certainly have enough gold but the Archbishop's accountant disagrees?
Once again the answers for the diplo screen are calculated during the AI turn and it's outdated when it shows up. Most likely you had a ship arriving in Europe, which then sold lots of stuff and made a fortune, but the answer to pay has already been rejected.

Due to how vanilla works and how that specific screen is unmodable, fixing this is far from trivial.

For less micro-ing with smugglers I'd suggest duplicating the unit, making the new one 3 times as expensive and carry 3 times the cargo, and have the model be 3 ships instead of 1. Last point being the only thing idk how to do ^_^. If someone knows how to I might play around with it and for other ship types too.
It also means losing 3 times as much to pirates whenever something goes wrong. I think it would be more interesting to make some sort of fixed selection groups (not as easy to break up by accident), which then "merge" to act as one unit for management purposes, but still acts as individual units in combat or movement. If cargo slots are merged too, then 3 units with 2 slots each could be managed as one "unit" with 6 slots.

I do agree that many small units can turn into micro management hell and that while some players want that, there are a number who doesn't. The solution is however not always as simple as it seems at first glance.

2 silver + 1 gold -> 5 luxury goods
Not technically possible to set up in xml right now. It is technically possible to fully mod this part of the code, but it's not an overnight job to do so.

The problem is that the profession lists input and output while the building lists the numbers. This makes it a 1:1 setup. To change this, the entire setup system needs a rethink and it's possible we need a new setup for every single profession and building.

Having said that it would be great to be able to control this better. Actually thinking about it now gives me ideas. Not that anybody will start working on it or that it's decided to do it, but I'm thinking about this.
 
It could be. I would like the savegame where it is that slow because it sound like a good one for testing performance issues. Changing something related to performance requires something good to test on to tell if the changes makes a difference. Certain types of performance boosting can even backfire and make the game slower, which is why testing is important.

Alright, it seems to vary a bit, last time was ~14 seconds. This game is gonna go on for a while so I'll try to get it as bad as I can before sending it.

It also means losing 3 times as much to pirates whenever something goes wrong. I think it would be more interesting to make some sort of fixed selection groups (not as easy to break up by accident), which then "merge" to act as one unit for management purposes, but still acts as individual units in combat or movement. If cargo slots are merged too, then 3 units with 2 slots each could be managed as one "unit" with 6 slots.

C2C mod has unit merging and un-merging. I imagine they're technically different units in XML that get swapped between, so the XML work would still be needed. I wouldn't mind trying it myself, if you happen to know how to edit the number of models rendered for a unit?
A player could always just liquidate ships they don't want and buy/build the multi-ship variant. Pirates aren't such a big deal that a player can't deal with it.

The problem is that the profession lists input and output while the building lists the numbers. This makes it a 1:1 setup. To change this, the entire setup system needs a rethink and it's possible we need a new setup for every single profession and building.

Having said that it would be great to be able to control this better. Actually thinking about it now gives me ideas. Not that anybody will start working on it or that it's decided to do it, but I'm thinking about this.

I had wondered why a cannon and a musket took the same work to produce in-game lol.
I suppose different jobs of X silver/gold/gems -> X luxury goods at 1:1 would then be the simpler implementation
 
Known issue. The game does all calculations in ints (whole numbers) as this makes network sync easier/possible. However it introduces rounding errors. 1 +50% +50% = 1 while 1 + 100% = 2. I have talked about switching to fixed point calculations instead, but so far nothing has happened.

Vanilla has two functions: one for the display and one for the actual changes. That's a poor design because they can go out of sync. While merging those two is possible, it's not a 5 minute job to do so.


by the way, another option for desynchronization in multiplayer.
 
Back
Top Bottom