C2C - UEM - Ultimate-Earth-Map 100% MOD and SVN update compatible by Pit2015

Not just 100, but even 200

I still think that too many civs is a nightmare for diplomacy and simply managing all the AI's interacting with each other... it's already pretty bad at 40 civs, I get an average of 2 AIs per turn asking me to stop trading with their enemy or to join their petty war on the other side of the world. Sometimes it really feels like a kindergarten recess. With a 100 of these petty muppets together, I'd likely just put everyone on ignore and go berserk... just not to deal with their squabbling and quacking. After all vanilla civ had what, 18 AIs top? It definitely feels like it was balanced around that number.
 
I still think that too many civs is a nightmare for diplomacy and simply managing all the AI's interacting with each other... it's already pretty bad at 40 civs, I get an average of 2 AIs per turn asking me to stop trading with their enemy or to join their petty war on the other side of the world. Sometimes it really feels like a kindergarten recess. With a 100 of these petty muppets together, I'd likely just put everyone on ignore and go berserk... just not to deal with their squabbling and quacking. After all vanilla civ had what, 18 AIs top? It definitely feels like it was balanced around that number.
That's strictly an AI improvement question, since this behavior is dumb in the first place.
Alternatively, it hopefully might be possible to simply remove several of the DUMBER "AI messages" altogether, seeing how it's useless in 101% of the games I've ever played.
Asking me for help in a war is one thing, asking me to stop trading with someone else is not your effing business, lol.
Also, the UN-type events could (and should) be vastly expanded, because the current Vanilla options are... lackluster, to say it mildly.
And annoying as well, when you are being asked to... lemme guess - STOP TRADING WITH SOMEONE.
MY business decisions are not YOUR effing business whatsoever, DON'T YOU GET IT ALREADY?
(Shouting at AI being Annoying Idiots, loool.)
To sum up the post:
The AI improvements are needed regardless of how many civs there are in-game, and when it will be eventually done - no amount of civs will be too much of a hassle.
Or not as bad as it is now even with 40 civs, like I said.
 
@Malzazard 100 Civs for a world scenario will be cool, well you dont need to use them all but you can. If you like you can choose less civs. There will be wars and some will get destroyed.

Hey @Toffer90 if that is possible build it in. Expand to 100 civs. :goodjob: So a new challenge.
 
I bet it is failing of something else, there is enouth memory, game crashes sometimes if it cant allocate the memory correctly.
 
I bet it is failing of something else, there is enouth memory, game crashes sometimes if it cant allocate the memory correctly.
More civs => more cities and more units => more memory consumption => inevitable crashes.
As of right NOW, though.
 
Indeed, it is still likely to be an exe limitation, where e.g. a 1024 KB memory buffer is exceeded for light effects or something along that line. These smaller RAM buffers that can be exceeded are mostly handled by the exe as they are typically related to sound and graphics. If MAF is caused by the dll then it will most likely be a MAF where one runs out of RAM (~2.8 GB) because otherwise the exe wouldn't post a MAF message, but the game would CTD in the dll due to unexpected behavior from the bad memory handling there and would not post any message at all unless attached to VS or something.

In late game maybe, but the game MAFs also if there is enough RAM left. So with 100 civs you will only start with 100kb more RAM usage or so. You can see that by causing the plot error in WB then the game will MAF but it has many RAM left.

So the future is to save more stuff to the HDD, not to memory. That will give a lot more free memory and the usage will be very low.

Same like it is done now with the graphics paging, only load the units to the memory in the region where you are currently viewing, maybe that can be done.

@Toffer90 Also if the exe still CTD at 2.8 GB read this, looks like the dll is not LAA flagged correctly then? Maybe that can be improved, read FAQs on this page:

FAQs​

"Do you need to LAA patch DLLs? The answer is a qualified 'yes'. See the Wikipedia articles Dynamic-link library and Virtual Memory for the full background, but the relevant point is this:

"With the introduction of 32-bit libraries in Windows 95 every [DLL] process runs in its own address space." [This would be physical address space. As far as the application is concerned, the DLL is loaded into it's virtual address space.]

DLLs share the same file format as an EXE. As with EXEs, DLLs can contain code, data, and resources..."

Looks to me if it still CTD at 2.8 GB that it is not set correctly to use the full 4 GB currently. Maybe because the dll is not LAA patched.

Also maybe you want to test that tool on the exe if it will help to free full 4 GB:


I want to see if it will CTD later with my 24 GB graphics card now. But hard to go there with the memory usage updates now.

Next possibility - Read here: https://accu.org/journals/overload/21/113/oldwood_1875/

(Maybe that can be adapted to the mod code)​

Page-files​

The hard disk can also act as a temporary store for memory pages that are not currently in use. This is called virtual memory because it can only be used for page storage – the pages still have to be present in physical memory to be accessed.
This total size of all paging files defines the virtual memory limit for the entire machine; this can be smaller or larger than the per-process 4GB limit.

Page-file backed shared memory​

There is another way to access all that extra memory using the existing Windows APIs in a manner similar to the AWE mechanism, but without many of its limitations: Shared Memory. Apart from not needing any extra privileges the memory allocated can also be paged which is useful for overcoming transient spikes or exploiting the paging algorithm already provided by the OS.

Allocating shared memory under Windows is the job of the same API used for Memory Mapped Files. In essence what you are mapping is a portion of a file, though not an application defined file but a part of the system’s page-file. This is achieved by passing INVALID_HANDLE_VALUE instead of a real file handle to CreateFileMapping() . Listing 1 creates a shared segment of 1MB.

const size_t size = 1024 * 1024;

HANDLE mapping = CreateFileMapping(INVALID_HANDLE_VALUE,
NULL, PAGE_READWRITE,
0u, size, NULL);

if (mapping == NULL)
throw std::runtime_error
("Failed to create segment");
 
Last edited:
Hmm... yes if the game still crash at 2.8 GB then there is something wrong, a thought... is the mod overwriting the steam downloaded exe? Otherwise a LAA falgged civ4 bts exe has to be provided to be put in manually.

Or the DLLs are not LAA patched.

Someone check that, maybe its as simple as this to get more free memory.
 
Hmm... yes if the game still crash at 2.8 GB then there is something wrong, a thought... is the mod overwriting the steam downloaded exe? Otherwise a LAA falgged civ4 bts exe has to be provided to be put in manually.

Or the DLLs are not LAA patched.

Someone check that, maybe its as simple as this to get more free memory.
Looks like 1024 MB is reserved for VRAM
That is 3 GB of RAM + 1 GB of VRAM - it was done on old engine with limitations.
 
I bet it is failing of something else, there is enouth memory, game crashes sometimes if it cant allocate the memory correctly.
You do realize our BIGGEST challenge in this entire mod is trying to keep it within memory limits to reach the end of the game right? That and speed. And then wanting to do so much more still with rules and combat depth and trade and supply issues and... and... and... There's no way I'm putting 100 civs as a priority over other projects that would make things so much more cool once we get it in place.

However... there have been some truly genius suggestions of late as to how we might be able to get rid of much of our concerns about memory.
 
You do realize our BIGGEST challenge in this entire mod is trying to keep it within memory limits to reach the end of the game right? That and speed. And then wanting to do so much more still with rules and combat depth and trade and supply issues and... and... and... There's no way I'm putting 100 civs as a priority over other projects that would make things so much more cool once we get it in place.

However... there have been some truly genius suggestions of late as to how we might be able to get rid of much of our concerns about memory.

Its C2C! That mod goes where no one has gone before. :goodjob: Also 100 civs are good as memory test, recommend 40 civs but 100 civs can be tested/tried. :)

Really try to flag the DLLs to LAA, maybe it will free even more memory. "However... there have been some truly genius suggestions of late as to how we might be able to get rid of much of our concerns about memory." Good to hear.
 
Last edited:
Multiple mods have gone there before, 100 civ dll is a very old thing in the Civ4 community.
But not working or? Ok then C2C should go 192/195 all world civs. :) I meant it in general, but no one got it to work on the C2C/UEM scale. Is it much work or only increase the civ slot numbers to increase the usable civs?

Btw, maybe the civ mega pack can be integrated into C2C, so more choice.
 
Last edited:
Multiple mods have gone there before, 100 civ dll is a very old thing in the Civ4 community.
And we had that until we realized we needed to step it back until we could re-introduce it later, if we could ever justify it again.
 
Btw, maybe the civ mega pack can be integrated into C2C, so more choice.
I'd rather we wait until we have designed out a much larger selection of cultures and moved to a more civic selection basis of what civilization, among all your possessed cultures, that you as a country identify as. That may only be fulfilled by expanding out the massive civ pack perhaps but we'll see... might be easier as a breakdown of fundamental parts of what a civ is defined as and the ability to mix and blend those things more with a 'cheaper' shell culture adoption system.
 
Yeah, I thought I remembered C2C had a 100 civ dll back sometime before I joined the team (like 8 years ago or something).
To think there was ever a time before... lol So glad you did!
 
I'm still conflicted between some very much opposite directions I want C2C to go.

1. Generic regional civs (Native-type, literally) growing and expanding in-game to become more specific and more localized civs.
Basically, you don't START as "100 civs" - you UNLOCK them in the game itself.
Kinda making "vassals" but in reverse - splitting them off the main civ in the very process of the game play.
I think that there even IS a similar method of "colonization" already existing in C2C, but I never got a chance to test that one.
Like, you start as "Asian", and then you unlock "Chinese" by fulfilling specific RFC-ish CONDITIONS for "Chinese civ", creating it similarly to how we now get new civs from Barbs.
So it's not that we start with EXISTING 100/200 civs (whether on-map or not), but we get them by "creating" them under specific conditions.
In practice, this could even be still limited to the current 40 civs (though I dislike that), but you could "give birth" to civs you WANT to be there, not just see them appear RANDOMLY.
Ties well with the multitude of existing C2C cultures, which could be expanded even further.
Basically, this option isn't even "increase the number of TOTAL on-map civs", but instead a method to rework the BIRTH of civs in-game.

2. Straightforward literal increase of the number of allowed civs.
This causes memory and turn speed issues, but also allows for Real Earth Full World scenarios that have their own "sentimental" value for myself, lol.
Unlike the first option, this shouldn't be done right now, because of the memory/speed issues killing all the joy in any bigger game.
But the idea is still there, anyways.

3. Unrelated to the other two, mostly.
C2C-RFC hybrid, once again literally.
No change in civ numbers, no big changes in civ mechanics (maybe, maybe not), but a huge focus on the Earth Map itself.
C2C is so much broader than Vanilla for RFC-type purposes, we could have dozens of content more compared to the original RFC.
Tons and tons of new features, even more tons of new civs, all those cultures, and so on - it's literally a gold mine for RFC-ing C2C.
But it does require a strict Earth Map focus, and I see that not all C2C modders would approve that, sadly for me.
Ah, well.
 
100 civ dll is justified now as memory usage is improved or later if it improves further, 40 civs can stay recommended but more are possible to use on own risk, its only not prioritized currently. :)
 
Top Bottom