Resource icon

C3X: EXE Mod including Bug Fixes, Stack Bombard, and Much More Release 25

Could we imagine the same principle with the seasons (with a snow-covered terrain in winter and movement restrictions, for example)?
Is it possible and could probably be done using my existing scripts, but would likely require some work.

Adjusting brightness, hue, saturation and so on is done with one script. A second script then creates the various light effects. It does this by using "light annotation" files I made by hand, essentially using special reserved colors which are ignored by script one. This was a labor of love but took a while. One would likely need to do a similar annotation to create snow, fall leaves, etc. With the right colors it could probably be made to look like seasonal effects, but we'd have to probably discuss more before jumping into it, and I would want community help with the annotation work.

I may be able to think of some ways to automate part of this work; let me meditate a bit on that :)

Movement restrictions could probably be implemented via Lua script, but again here I defer to Flintlock.
 
Last edited:
Especially a change between normal terrain and winter terrain, connected with different unit stats (by Lua ?) could be very interesting, especially for WW2 scenarios .

Winter terrain graphics are included in the civ3PTW extras folder and Balthasar made an update of those files to C3C, that can be found here: https://forums.civfanatics.com/resources/winter-terrain-c3c-update.16264/

Balthasar also made his own "whiter" winter terrain, that can be found here:

https://forums.civfanatics.com/resources/balthasars-winter-terrain.16285/

A simple search at CFC with Winter Terrain gives a lot of additional hits, per example up to winter coloured trees and cities.

Winter terrain.jpg
 
Winter terrain graphics are included in the civ3PTW extras folder and Balthasar made an update of those files to C3C, that can be found here: https://forums.civfanatics.com/resources/winter-terrain-c3c-update.16264/
Wow, thank you very much, Civinator. I had no idea! And thank you general-jcl as well, for the excellent idea. I admit I'm quite interested in trying it. If we could get spring-summer-fall-winter (12 folders) transitions to work, I could also almost certainly hook it into my existing scripts such that we could have any hour + any month of the year.

The missing link that jumps out to me now is really autumn art. It would be fantastic if we had some nice browns for grass and fall leaf colors on the trees. (Spring with some flowers, etc. would be cool but optional, to my mind)

If we had all of those together (e.g., base game = June, fall colors = October, winter terrain = January), I could probably put something together that generates the months in between. No guarantee it would work perfectly but it's worth trying. Else we could also simply aim for 4 terrains total, rather than 12.
 
I'm also wondering if this will just be an aesthetic element or if it will potentially be a real new game element in the future that affects other game elements? For example, if units attack or bombard during the day or at night, they have certain advantages or disadvantages, and so on.
I believe the most obvious disadvantage of the night cycle would be to restrict vision: Even if you stand on a mountain, you can just see 1 tile ahead. And at sea you also see just 1 tile, unless you have radar, etc.

Could we imagine the same principle with the seasons (with a snow-covered terrain in winter and movement restrictions, for example)?
This is an equally interesting idea.
 
Hey! Love the mod. It's done a lot to improve the game for me.

I noticed there was a bug with multiplayer Civ 3 in hotseat and play-by-email where custom music isn't loaded in correctly. Do you think there would be a way to fix this with C injection? It'd be really handy if it came bundled with C3X but I wouldn't mind a DIY solution either.
 
Raising the city limit to 2048? That's amazing! Flintlock, your work has rejuvinated this game! And of course, great to see that instafluff has joined the "mission"!
Will it be possible for the player to set a custom city limit number in the configuration file?

Thank you very, very much!
:clap::cheers::thumbsup:
 
I've been trying out the "aggressively_penalize_bankruptcy = true" setting (along with "extra_unit_maintenance_per_shields = 11"), and noticed a couple quirks. First, units that require no support are disbanded when you reach 0 gold with negative income. In my case I had set settler and workers to require no support and they were frequently disbanded. Second, and maybe this would be more difficult to fix, but the AI will overbuild units past what they can afford and then these excess units get disbanded in giant waves. If the "aggressively_penalize_bankruptcy" setting is off, the AI will be somewhat more successful dealing with money problems because he can replace units faster than the 1 unit per turn that gets disbanded and players can't go into negative gold so there are no long term consequences other than wasting a few shields. It does make a mockery of the maintenance system though because if shields are plentiful enough the AI will be running giant deficits and fielding armies many times over what their upkeep limit should be.

And when "aggressively_penalize_bankruptcy" is on, I feel I'm not seeing "AI cities switched to wealth" as much as I thought in the previous version, although maybe my memory is wrong.
 
Last edited:
Is it possible and could probably be done using my existing scripts, but would likely require some work.

Adjusting brightness, hue, saturation and so on is done with one script. A second script then creates the various light effects. It does this by using "light annotation" files I made by hand, essentially using special reserved colors which are ignored by script one. This was a labor of love but took a while. One would likely need to do a similar annotation to create snow, fall leaves, etc. With the right colors it could probably be made to look like seasonal effects, but we'd have to probably discuss more before jumping into it, and I would want community help with the annotation work.

I may be able to think of some ways to automate part of this work; let me meditate a bit on that :)

Movement restrictions could probably be implemented via Lua script, but again here I defer to Flintlock.
It looks like a great addition to the game. How long did it take you to convert the entire terrain, including scripting and manual work? I’m wondering how quickly Ares’s terrain pack could be converted using your method, if Ares doesn’t mind, of course.
 
It looks like a great addition to the game. How long did it take you to convert the entire terrain, including scripting and manual work? I’m wondering how quickly Ares’s terrain pack could be converted using your method, if Ares doesn’t mind, of course.
Great, thank you. I'd guess about 10 hours to understand C3X code + 10 hours to draft and tune the scripts (w/ huge help from ChatGPT) + ~8 hours of annotation over 3-4 weeks. Obviously if I had to start again it would be much faster now.

The annotation task is not particularly complex but just requires careful thought and precision to get the right pixels and spot check that the lights come out looking nice after generated. The light annotation files look like this:
1758932332178.png


On a related note, regarding the seasons, thinking about this a bit more I don't think my scripts would really be the right fit exactly. Really what we need are something like 2 new terrain sets (fall/spring) made by someone who knows their way around GIMP well. We already have summer (base game) and winter per Civinator's post above. I'm imagining a look something like this (made by ChatGPT):

1758932584422.png


If we had equivalent fall & spring terrain packs like this, we could either (A) add them directly (so 4 total seasons) or (B) I could compute transitions in a new script between them so we had 12 full months.

If we accomplished that it would be straightforward to allow users to use only seasons, use only day/night, or use both at some reasonable transition rate (e.g., switch to next season at the end of every 24 hour cycle). This would also greatly increase the size of the download and sprites Civ3 would need to keep in memory, but I think it's doable.
 
I've been trying out the "aggressively_penalize_bankruptcy = true" setting (along with "extra_unit_maintenance_per_shields = 11"), and noticed a couple quirks. First, units that require no support are disbanded when you reach 0 gold with negative income. In my case I had set settler and workers to require no support and they were frequently disbanded. Second, and maybe this would be more difficult to fix, but the AI will overbuild units past what they can afford and then these excess units get disbanded in giant waves. If the "aggressively_penalize_bankruptcy" setting is off, the AI will be somewhat more successful dealing with money problems because he can replace units faster than the 1 unit per turn that gets disbanded and players can't go into negative gold so there are no long term consequences other than wasting a few shields. It does make a mockery of the maintenance system though because if shields are plentiful enough the AI will be running giant deficits and fielding armies many times over what their upkeep limit should be.

And when "aggressively_penalize_bankruptcy" is on, I feel I'm not seeing "AI cities switched to wealth" as much as I thought in the previous version, although maybe my memory is wrong.

The option aggressively_penalize_bankruptcy is an absolute must. Let me explain.

If its off, the game become unbalanced very fast if you play extreme difficulty.

You have to face hundreds of units from at least half the civilizations around you.

Plus, when the save file gets beyond 37 MB there are corruption issues. You cannot load your game.

Since the city limit is raised, the problem you describe will be smoothed, since more cities contribute to more gold.

This problem can be eliminated doing 2 simple things:

1. Double, triple or quadriple the amount of gold produced from luxuries.

2. Limit the science spending for government types by half.

That way the AI always has gold that is actually tradable. You can trade tech and AI will make an offer of good amount of gold.
 
In my experience, AI to AI trading is pretty busted. They will jump at every opportunity to make the most marginal trades, and will throw themselves into utter bankruptcy very quickly. Only 1-2 tech and money leaders will emerge, among which the entire wealth of the AI players gets concentrated. Using the MP tool to take control of an AI player during an ongoing game can let you see all the gold per turn deals they have among each other.
 
I noticed there was a bug with multiplayer Civ 3 in hotseat and play-by-email where custom music isn't loaded in correctly. Do you think there would be a way to fix this with C injection? It'd be really handy if it came bundled with C3X but I wouldn't mind a DIY solution either.
Probably, but it depends on what the specific issue is. Can you give more details? Ideally you could give me a save file and/or instructions on how to reproduce the bug.

Will it be possible for the player to set a custom city limit number in the configuration file?
Sure. There are two points in the game code where it enforces the city limit, and then there's the technical limitation, the reason that there is a limit. The enforced limits can easily be set lower than the technical limit. If you're curious, one of those is in the code to create a city, it's why the game stops you from founding and displays "Too many cities" once you reach the limit, and the other is in the AI logic to make the AI stop trying to found cities once the limit has been reached.

First, units that require no support are disbanded when you reach 0 gold with negative income. In my case I had set settler and workers to require no support and they were frequently disbanded. Second, and maybe this would be more difficult to fix, but the AI will overbuild units past what they can afford and then these excess units get disbanded in giant waves.
The mod relies on a base game function to find units to disband on bankruptcy. So it's not trivial to make it skip units that don't require support, I'd have to modify that function. The original developers must have forgotten to check for that. I can see that the function skips over units with the "king" and "flag unit" abilities at least. And yes, modifying the AI not to bankrupt itself with unit costs would probably be difficult. There's a simple solution, which is to negatively perfume units for AIs as they go beyond their free unit support limit. That will cause them to build improvements instead and, in the extreme case, choose to build wealth instead of more units. That's a pretty blunt solution, though, so it might not work well.
 
So it's not trivial to make it skip units that don't require support, I'd have to modify that function. The original developers must have forgotten to check for that. I can see that the function skips over units with the "king" and "flag unit" abilities at least.
Is it just me, or is this actually a big mistake? Requiring support is an independent property of being a king or a flag unit. The editor allows you to create king units and flag units that may or may NOT require support. It is therefore illogical to check any property other than whether support is required for a given unit. The game simply lacks an OPTIONAL unit property of being disbanded due to bankruptcy, which could also be easily selected for each unit. In addition, many mods use king units as regular units, which means that they cannot be disbanded even in situations where they should be due to bankruptcy. So this bug also works in the opposite direction, and units are incorrectly protected while others that should be protected are not.
 
Last edited:
Is it just me, or is this actually a big mistake? Requiring support is an independent property of being a king or a flag unit. The editor allows you to create king units and flag units that may or may NOT require support. It is therefore illogical to check any property other than whether support is required for a given unit. The game simply lacks an OPTIONAL unit property of being disbanded due to bankruptcy, which could also be easily selected for each unit. In addition, many mods use king units as regular units, which means that they cannot be disbanded even in situations where they should be due to bankruptcy. So this bug also works in the opposite direction, and units are incorrectly protected while others that should be protected are not.
It's not a mistake from the point of view of the original developers - having a king or flag unit disband due to lack of funds would be a game-breaking bug in a game where those features were being used as originally intended. (E.g. a civ disappears suddenly because the king was accidentally disbanded).
 
It's not a mistake from the point of view of the original developers - having a king or flag unit disband due to lack of funds would be a game-breaking bug in a game where those features were being used as originally intended. (E.g. a civ disappears suddenly because the king was accidentally disbanded).
This would not be a game-breaking bug if these king or flag units did not have the requiring support box checked and if the disband function correctly determined who to disband. The basic prerequisite for disbanding due to lack of funds should be whether the unit requires support. Or is it not? I consider the disbanding of units that do not require support to be counterintuitive. If the user wanted units that did not require support to be disbanded as well, this should be an option and NOT a default enforced setting.
 
Probably, but it depends on what the specific issue is. Can you give more details? Ideally you could give me a save file and/or instructions on how to reproduce the bug.
On the Steam version, custom music simply doesn't work for play-by-email. The base game music is loaded instead.
To replicate: load a scenario with custom music on the Steam version in play-by-email. It won't work.

This doesn't appear to be an issue on my (disc) patch of Conquests, so there's a starting point.
 
It looks like a great addition to the game. How long did it take you to convert the entire terrain, including scripting and manual work? I’m wondering how quickly Ares’s terrain pack could be converted using your method, if Ares doesn’t mind, of course.
I need to look into it.
 
So, I've looked over the tread, and sorry if it was answered, but is "air units dying instantly when attacked" fix possible? So we could have actual fantasy dragons and all.
 
The fact that notifications are disbanded and I don't have to click every damn time that bloody pop up, actually double the performance of the game.

Let me explain.

There is a point in the game that everybody fight each other.

At that point every civilization has established an embassy with your civilization.

I benchmark the time in both situations and the data are clear.

Looking at the timestamps of the auto save files, without disbanding notifications I get 2 turns (save files) every 9 minutes, on average. That's 4.5 minutes per turn

When the notifications are disbanded I get 5 turns every 11 minutes. That's 2.2 minutes per turn.

The values I show are on average and the interactions (pop ups that you have to respond) with the game are none or minimal.

I save about 5-10 clicks per turn. Some turns I counted 20-25 notifications. These are crazy numbers!!!

Kudos to the magician. Excellent work!

PS: I will extensively report for the city limit when I progress enough for my current playthrough (I also test things and extra time is required)
 
Last edited:
Back
Top Bottom