Company of Heroes: Eastern Front

Author Topic: POP Cap  (Read 1328 times)

Offline maddogb

  • Strelky
  • **
  • Posts: 62
    • View Profile
POP Cap
« on: January 28, 2015, 11:11:09 PM »
A while ago i noticed that removal of popcap is not officially supported yet to speed the game up my  friend and i tried it quite successfully and continue to play this style,
 is the lack of support due to a programming reason?
 just wondering if that could be solved by either increasing multipliers on points or maybe  putting a very high limit?

Offline Blackbishop

  • Administrator
  • Poster of the Soviet Union
  • *
  • Posts: 12057
  • Community Manager, Programmer and Kicker
    • View Profile
Re: POP Cap
« Reply #1 on: January 28, 2015, 11:35:22 PM »
If you mean, why we don't give support to the no-pop cap mode besides having it there, it is because the game is not optimized to being used like that; I posted a couple of answers about that on ModDB, so I'll paste them here to avoid typing them again XD.

Quote
Quote
it would be nice if there is a Pacific theater :/
The problem is that the more stuff we add the more slow our mod becomes. Mods like Blitzkrieg and Normandy 44 have a huge number of units, which the Essence Engine 1.0 is not made for, so it would be detrimental to the mod because we are replacing the high poly models to have better FPS.

Quote
Quote
People get better computers as time goes on so it balances out.
Essence engine is not optimized to handle too many resources either, in example, CoH is not going to use the four cores of a quad core processor, not even three(I think it uses two though). The engine is not going to use all the RAM the PC has either, it has a small limit, because it was optimized to work in a 32 bits Windows environment.

The limit of RAM than a 32 bits Windows XP/Vista/7/8/8.1 can use is 3.45GB at most, so CoH only can use like, let's say, 2GB of memory max. However, in 32 bits Windows it ran out fast while playing EF, so it wanted to get more but the OS didn't have more (because the system also requires it's own share), so the player got CTD with messages "TEMP folder blablabla"; but these errors doesn't exist in 64 bits OS because they usually have at least 4GB of RAM so it has more to share... however, CoH will never exceed the 2GB limit I said above, and as the system now has more RAM to share(most of the machines now have +4GB and 64 bits OS) you won't get the TEMP error because the system has enough, but it will just crash silently because can't allocate more memory for the game due to the engine limits. That's the story the crash files tell us if I recall correctly.

Nothing of that will change unless Relic steps in and make the engine optimized for 64 bits (and more multicore processors although it is not necessary I guess), but that is not going to happen.

TL;DR
Unfortunately that's not true. While PCs get better components as time goes on, the Essence Engine is not updated anymore, so it doesn't use them.

Quote
Quote
I'm a computer enthusiast so I know about the memorylimit of 32bit OS :)

CoH can only ever run out of memory in 4v4 games, right? Cause in a 1v1 there will never be that many units.
Yeah, because CoH is optimized to run only it's own files and not custom files; no mod is saved from crashes because the more content it has, the more things the engine loads, and when CoH loads a mod it loads everything, vanilla SP/MP files and mod content right of the bat instead of reading what it needs, which means if you have two additional factions (or as much content as that split into the vanilla factions) using an engine that is only prepared to load vanilla SP/MP files, you can only expect trouble so, you need to optimize your mod as much as you can.

Most of the good looking infantry in mods are made by mixing two or more infantry units, just removing the texture from some unwanted part to make it invisible and that's the way all the "custom" infantry units are done, but that's plain wrong because you will have an infantry squad that requires the resources of two or three infantry units because they are still there and the engine still renders them, just that the player doesn't notice because they lack texture. The right procedure should be to disable the meshes that the Dev doesn't want to show, and that way, while the infantry still requires bit more of resources to load, the game doesn't spend resources to render them.

The vehicles in other hand the more polygons they have, the better they look and the worse it is for the game to render them. Not all the modelers like to make them as low poly as they could, because that would compromise the eye-candy, however a low poly model can look beautiful if applying good textures(you can look at our SU-76!) so, if the Dev doesn't pay attention to that, the mod get inadequate models too.

No pop-cap mode is basically allowing more stuff to be used and that means it needs more resources but the engine has it's limits and unless Relic works on that to improve it nothing will change. Playing that mode can be interpreted as something like this:


Because sooner or later it will crash due to the high number of units involved. Not to mention several key models from EF are high poly ones. Now, these models are being replaced and hopefully we will have them replaced by the time we release EF on Steam. That's why there is no support because we can't do anything about it. If you aren't talking about this then sorry, I misunderstood you.
Mors Indecepta

Might controls everything, and without strength you cannot protect anything. Let alone yourself...

Offline maddogb

  • Strelky
  • **
  • Posts: 62
    • View Profile
Re: POP Cap
« Reply #2 on: January 29, 2015, 12:25:15 PM »
yeah that's roughly what i was on about,
 i just wondered if it was an issue down to a occasionally called conditional loop relying on a counter within the engine that could be compensated for by a large fixed constant number.
we do get occasional abrupt endings to games but suspect it is down to our poor net connections, might try on standard popcaps to see if that disappears :)