Resource icon

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

It's not really a double-check, it's more like the normal check. That function is the standard way that the game determines if a given improvement is present in a given city. To process all improvements in a city, the game considers all improvements defined in the scenario data and calls that function to filter out only the ones that are present. That kind of thing is pretty common, for example when a city finishes a unit it checks all present improvements to see if there are any that give the unit a bonus experience level. It does the same thing when computing city production, commerce, corruption, happiness, pollution, defensive bonuses, available build options, and so on.

But what really concerns me is the cost of the unit AI. Imagine an AI battle where a large stack of units is attacking a city with a large stack of defenders. Each attacker must find the top defender in the city, which means evaluating the defense strength of each defending unit, which means finding the defensive bonus provided by the city, which means checking every present improvement. If checking every improvement requires checking every unit in the city, you'd be considering every defending unit, times every possible improvement, times every defender, times every attacker. That could easily be a drag on turn times. Though I should point out this is all speculative. Maybe the combat code doesn't work that way, or maybe the slowdown caused would be drowned out by some other factor. The only way to know would be to test an actual implementation.

Ugh, if that is indeed the case then that's unfortunate. It seems CivIII could really use more permanent state and/or some hash tables in its implementation. If looking up "is a unit of type X in the City?" is big-O(1) with a small constant factor, then the change shouldn't have too much of an impact.
 
Does the mechanism of making a tech require a previous age's tech work?

Also, being able to edit the civ traits would be really nice. Traits like Exp and Sea are next to useless in AI hands. Rel is too weak with anarchy turned to 2 turns or totally off (and the higher dif AI always get 2 turns). While Ag is overpowered with the most problematic part being hardcoded and again something the AI can't fully take advantage of early on due to not knowing how go to fresh water in despot.
 
Land transports would need a new unit AI written for them. That's doable, in fact I've already done it for the leader unit AI, but it would be difficult.
Would it be difficult, too, to combine Land transports only with the aircraft transport or missile transport flags (and the still existing AI routine for those units)? In my tests with normal Civ 3 this seems possible, but the problem is, so these "Land"-carriers can be a base for those units, they cannot take the aircraft or missiles with them when moving.

Such kind of units would allow very interesting space scenarios, based only on land terrain maps (what allows a much quicker expansion of civs) and land units with limited amunition.
Sure. Changing the types of units spawned by the barbs would be easy. I've already found the location where the barb logic calls the unit spawning method, and it would be easy to intercept that call and swap out the unit type.
This would be an additional great feature ! :thumbsup:
 
Good day,
Not so long ago, I came across this topic and, I admit, is pleasantly surprised that the support and modding of ancient Civ3 Conquests has still been preserved. The fact that someone took up the correction of the engine of the original game is especially pleasing. In this regard, I just wanted to address the question.
I believe that everyone already knows about the old restriction of Firaxis for a max of 512 cities in the game. This mod has already included a No_Raze patch and a restriction of a max of 512 cities has been disabled. However, many have already faced such a problem. If the total number of cities on the map exceeds 556 settlements, then after the foundation of the next city, the game flies to the desktop. The same thing happens when you try to save the game. The forum has already discussed the explanation of this error. It is associated with the restrictions of the engine. I caught the eye of a discussion where it was said that bugs and brakes of the game are associated with restrictions as part of tables from 512х512 cells. In case of exceeding the limit of cities by the player and the release of the permissible cells of the table, the engine begins to build trade routes between settlements with errors. The threshold value after which the game hangs is just 556 or 557 cities.

As a result, there is a request for respected modders: is there an opportunity to solve this problem with the table and overcome this restriction? For example, expand the table by 1024 cells instead of 512.
I partly understand Firaxis. At that time, these restrictions were established to prevent problems with RAM and the brakes of the game. But since then more than 20 years have passed and the capabilities of computers have gone far ahead. The problem is not in the physical lack of RAM, but in the backwards of an antediluvian engine. It's a shame when the capabilities of the machine are noticeably exceeding the restrictions of the engine and you cannot play on large cards because of this. I just play on such a map of 300x300 tiles with the Rise&Rule mod and I have an error after building 557th city.
 
Good day,
Not so long ago, I came across this topic and, I admit, is pleasantly surprised that the support and modding of ancient Civ3 Conquests has still been preserved. The fact that someone took up the correction of the engine of the original game is especially pleasing. In this regard, I just wanted to address the question.
I believe that everyone already knows about the old restriction of Firaxis for a max of 512 cities in the game. This mod has already included a No_Raze patch and a restriction of a max of 512 cities has been disabled. However, many have already faced such a problem. If the total number of cities on the map exceeds 556 settlements, then after the foundation of the next city, the game flies to the desktop. The same thing happens when you try to save the game. The forum has already discussed the explanation of this error. It is associated with the restrictions of the engine. I caught the eye of a discussion where it was said that bugs and brakes of the game are associated with restrictions as part of tables from 512х512 cells. In case of exceeding the limit of cities by the player and the release of the permissible cells of the table, the engine begins to build trade routes between settlements with errors. The threshold value after which the game hangs is just 556 or 557 cities.

As a result, there is a request for respected modders: is there an opportunity to solve this problem with the table and overcome this restriction? For example, expand the table by 1024 cells instead of 512.
I partly understand Firaxis. At that time, these restrictions were established to prevent problems with RAM and the brakes of the game. But since then more than 20 years have passed and the capabilities of computers have gone far ahead. The problem is not in the physical lack of RAM, but in the backwards of an antediluvian engine. It's a shame when the capabilities of the machine are noticeably exceeding the restrictions of the engine and you cannot play on large cards because of this. I just play on such a map of 300x300 tiles with the Rise&Rule mod and I have an error after building 557th city.
You should read the earlier posts by Flintlock on this. Currently not doable.
 
I think it's spread over some pages, but I think they are an interesting read anyway. The primary cause is this: https://forums.civfanatics.com/thre...ck-bombard-and-much-more.666881/post-16025200 and IIRC all the places where the table is called haven't been mapped out yet

But I might be talking too far, Flintlock would know better of course :D
It's just a very common request. :s
Thank you very much!
And about the fact that my request here is far from the only one, I believe that the answer lies in sight. Requests for the removal of restrictions on a max of 556 cities arose from the fact that the game has been far over 20 years, the power of computers went far ahead, so everyone were "furious" with annoyance, because of such a “trifle”, due to the “trifling piece of code" users of modern machines cannot play very much on huge worldmaps.
It is especially disappointing from the fact that the modders were able to partially hack a more complex engine of Сiv4 BtS and speed up the transfer of the next course between AI and human players, remove many limits, and with Civ3 Conquests it is still not so optimistic.
 
I am not familiar with Civ4 modding (I am just a "consumer" there, playing with many mods but knowing very little about their inner workings), but the game in general was designed for much more flexibility, including dll modding, no? Maybe this played a role in there being more and deeper modifications.

Reverse engineering and modifying of "normal", closed games is very rare on the other hand, and you will often only find one such project (if any) per game going on at all. But they are always a pleasure to see. :D

I would of course love to see a removal of Civ3's hard limits as much as anyone else, like the city limit, civ limit, multiplayer slot limit (without the MP tool for hotseat), and I have great hopes both with Flintlock's work and the C7 project (I really love how both are progressing at the same time), but free time and motivation are highly limited resources, so we should not pressure anyone for anything. :)


@Flintlock: On a side note, inspired by another thread in this forum, if you ever get to looking at AI building logic in depth, could you take a look if there are any hardcoded factors per civ beyond the build often/never flags?
 
By the way... Flintlock last year mentioned that "...the table is 512x512 in size, enough for one entry for each pair of cities. Founding more than 512 cities causes the program to write beyond the bounds of the table, corrupting whatever other data already exists there."
I can confirm that such a phenomenon takes place. In a single game on the huge maps created in the editor with 31 civilization, I observed strange bugs with trade routes after the limit exceeds 512 cities. For example, I could establish a new city over the limit somewhere far away from the boundaries of the main civilization in a deaf wasteland. And in this wilderness, in the complete absence of roads and access to the coast, I had iron, ivory, incense and other luxury in my strategic resource window. This cannot be explained otherwise than a failure of trade routes between cities when the limit is exceeded. So the Flintlock is right: the modders need to do something with the table 512x512, to put it on one or two orders.
 
A couple of questions, as I just discovered this for some strange reason. Perhaps not using my eyes?

First, there are times when I do raze captured cities, so does this patch keep me from doing that?

Second, if this does away with the phantom resource bug, does that mean we can finally exceeded a combined 32 strategic and luxury resources?

My apologies for asking these questions if they have been answered previously.
 
@Kokuryutei since this seems to be beyond the practical limits of Flintlock's methods, you may be interested in C7 (linked in my signature), an attempt to remake the game from scratch with no such limitations.

@timerover51 you can still raze cities yourself, and yes you can use more tradeable resources - though I'm not sure if there are any side effects to be aware of
 
@Kokuryutei since this seems to be beyond the practical limits of Flintlock's methods, you may be interested in C7 (linked in my signature), an attempt to remake the game from scratch with no such limitations.

@timerover51 you can still raze cities yourself, and yes you can use more tradeable resources - though I'm not sure if there are any side effects to be aware of
Thanks for the fast response. I will need to think about this a bit before using it, but if it fixes the resource problem, that would be wonderful. Then I can get really creative with Pounder's Resource Pack.
 
@Kokuryutei since this seems to be beyond the practical limits of Flintlock's methods, you may be interested in C7 (linked in my signature), an attempt to remake the game from scratch with no such limitations.
How true I understood, you are working on a new project based on the old game Civilization 3 conquests. I have a slightly different environment. For the game, I use the Rise&Rule mod on top of Conquests. In principle, this configuration suits me. But what categorically does not suit me:
- Restrictions on the original engine for RAM resources. Even with 16 GB of RAM in the system unit in the late game, the speed of transmission of the course is equal to the speed of a carotid snail;
- The inability to exceed the restriction on the maximum of cities. The upper limit is 556 settlements. Exceeding the limit is fraught with CTD;
- The incompleteness of AI and especially diplomacy. In Civ3 are many ridiculous and absurd things precisely with the behavior of computer players. AI never agrees to transactions with the transfer/exchange of cities. AI enters the adventures fatal for him: he can announce the war to the enemy, which is totally surpasses him with both the economy and the army and technologies. AI can sit passively for centuries in different corners of the map, and then after gaining the opportunity to conclude military alliances practically do not crawl out of endless wars.

I see that most of these problems can only be solved by deep transcoding and hacking the Conquests.exe
 
AI never agrees to transactions with the transfer/exchange of cities.
This is a feature, not a bug. It's intended to circumvent various human exploits (possible in an early patch-version of the Vanilla 16-Civ executable) which were so powerful/ unbalancing — e.g. selling a bunch of "worthless" 1-shield towns to an AI neighbour in exchange for all their stuff, then using that gold/tech to upgrade/rush-build a massive stack of units, and taking the towns back — that the game's designers decided to block them, by preventing the direct sale/purchase of towns.

Towns can still change hands during diplomatic negotiations, though. Towns can still be gifted to another AI-Civ: for example, if you're playing for a Diplomatic win, you can fight 'wars of liberation' against the runaway AI-Civ(s), and gift your conquests back to their previous/original owner(s). And a badly damaged AI will often also concede additional towns during peace negotiations.
AI enters the adventures fatal for him: he can announce the war to the enemy, which is totally surpasses him with both the economy and the army and technologies. AI can sit passively for centuries in different corners of the map, and then after gaining the opportunity to conclude military alliances practically do not crawl out of endless wars.
I totally agree with you about the MA / MPP suicide-pacts, though.

That's why I moved MAs to Nationalism, and moved MPPs to Fission. Doesn't stop the AI from misunderstanding them, of course, but does help prevent dogpiles against the human in the early game (which I find distinctly un-fun!) — and also prevents the AIs from dogpiling each other, reducing the probability of a runaway appearing before the game's gone even halfway — while still reducing the number of potential MPP-participants in the late game.
 
This is a feature, not a bug. It's intended to circumvent various human exploits (possible in an early patch-version of the Vanilla 16-Civ executable) which were so powerful/ unbalancing — e.g. selling a bunch of "worthless" 1-shield towns to an AI neighbour in exchange for all their stuff, then using that gold/tech to upgrade/rush-build a massive stack of units, and taking the towns back — that the game's designers decided to block them, by preventing the direct sale/purchase of towns.
Well, the refusal of AI to exchange cities isn't yet critical for a normal game. The restrictions on the outdated engine are most upsetting, not allowing the use of all the advantages of modern hardware.

I totally agree with you about the MA / MPP suicide-pacts, though.
That's why I moved MAs to Nationalism, and moved MPPs to Fission. Doesn't stop the AI from misunderstanding them, of course, but does help prevent dogpiles against the human in the early game (which I find distinctly un-fun!) — and also prevents the AIs from dogpiling each other, reducing the probability of a runaway appearing before the game's gone even halfway — while still reducing the number of potential MPP-participants in the late game.
I had many similar examples in a single game. In one of the campaigns for Greece, I practically at the start of the game (around 1800 BC) was put on the war by the Chief Shaka. And Zulu settled far at the opposite end of the mainland. While their Impi warriors hobbled through the entire continent 30 turns, I had to be nervous, covering the workers and colonies of resources. As a result, three cripples reached my borders, which safely "killed" about patrol chariots. And such meaningless early wars are pretty annoying.
AI has another interesting habit that closer to the final of the campaign can serve him bad service. At the beginning of the game, all AI players create motley units for reconnaissance of the map. In parallel to this process, some buildings or Great Wonders create military units (for example, Knights Templar). And so hundreds of turns can last. I have so once AI players until 1800 AD have never declared a war! For many centuries, AI players can accumulate a monstrous number of units, both newest and antediluvian. And after studying technology with access to military alliances, one insignificant spark is enough to call an avalanche. I could sometimes use it like a exploit. That is how I declared war on the Celts and concluded an alliance against them with the Incas, playing for Japan, and after 20 turns came out of all wars. The Celts didn't remain in debt and also concluded alliances with the Turks, Vikings and Romans. In turn, the Incas also asked for help from the French and India, and the latter also began to ask for military assistance from neighbors. Literally less than 10 turns, all 30 civilizations were involved in the world war during which competitors destroyed all the army, railroads, mines, economics, wealth in the trash, also completely killing science. Japan, which provoked this mass suicide, didn't really fight anywhere. Instead, she fenced off a “nuclear umbrella” on her island and slowly built a starship for Alpha Centaurus. And she also sold low-value technologies to the warring civilizations, driving them into unbearable debts:devil:
 
Back
Top Bottom