I suspect very much that Firaxis gave us a debug build of their executable. I don't mean just a beta version, folks here are almost sure of this, and I am too. I mean version suitable for debugging, setting breakpoints, making a lot of darn asserts to assure everything is consistent in game state. Well, asserts are actually not so darn - they reduced number of threads here, but they are darn when I have constant swap with them... Well, probably there are no asserts, but the code is unoptimized by the compiler. Why? Read on...
I was among those lucky who doesn't get the newest drivers until faces problems, so I avoided all of CTD and other issues. The BIG reason is LAG. Riddick and PainKiller work waaaay better and consume muuuuch less memory. This thing consumes about as much as doom3/quake4 with high-to-ultra settings (given ENTIRE artwork is about 300-400Mb in size). Civ4 consumes something about 1Kb of memory per tile to my expectations. The word "overhead" is too weak to describe that.
I thought this could be some some DirectX issue. What I've found.... damn, what I've found. I've found d3d9x_26.dll in my SYSTEM32 folder. This DLL is used only in debug builds (release version links D3DX statically, so it stays as part of code within EXE).
Also, 11Mb file size is just... ergh.... I saw such size only with 2 progs: MS Word and some version of 3D MAX. Under release build executable size usually comes to about C++ code size. I don't believe Firaxis has 11Mb of C++ engine code there, especially with all "business logic" in python, aside from exe.
I mean that just building it as 'Release' will chop down memory requirements and speed it up about 2-4 times in case CPU becomes an issue.
I don't know why Firaxis didn't complete Release build before shipping out the game in a rush. Perhaps there is actually some memory problem which becomes access violation under Release build (this sometimes happens), but...
Anybody at Firaxis, is that true?
I don't think this is memory leak. Yes, VM size grows as the game proceeds, but in my case it stops growing after reaching 524Mb (which accomodates with caching new units, new improvements, etc...) . Well, it explains memory usage growth capped at some limit, BUT IT DOES NOT EXPLAIN ABSOLUTE VALUE OF THAT MEMORY USAGE (300-400Mb of WHOLE artwork, remember...).
P.S: I still like this game; and I want to like it because it will give me a lot of pleasure once it doesn't annoy me with 1-second delays to scroll a single tile. I understand that tech issues shouldn't affect my thoughts about taste of entire civ4, and actually these were coded by different people. Still, it's like a hot beer. It might be tasty when it's cold, I might want it very much, but still I can't drink it hot. And I probably won't buy it anymore if it will be sold hot every time and everywhere.
P.P.S: Actually this games costs not $60, it costs $110 if you need a memory upgrade ONLY FOR IT or $210 if you need video upgrade just for it. Why? Because normally I would buy those pieces within a year or two when they will be actually needed by MOST games and their prices will drop (video will drop for ~$200 in such a period of time), but civ4 forces me to do so now, so I am forced to spend these $200 not to Firaxis, but anyways away from my pocket. I won't... So those $60 are wasted up until now. I still have a little hope that these issues are from Debug build - it's fixable. But if it's architecture flaw (e.g. python memory use or engine programmer left the building or whatever...), then we're all out of luck.
I was among those lucky who doesn't get the newest drivers until faces problems, so I avoided all of CTD and other issues. The BIG reason is LAG. Riddick and PainKiller work waaaay better and consume muuuuch less memory. This thing consumes about as much as doom3/quake4 with high-to-ultra settings (given ENTIRE artwork is about 300-400Mb in size). Civ4 consumes something about 1Kb of memory per tile to my expectations. The word "overhead" is too weak to describe that.
I thought this could be some some DirectX issue. What I've found.... damn, what I've found. I've found d3d9x_26.dll in my SYSTEM32 folder. This DLL is used only in debug builds (release version links D3DX statically, so it stays as part of code within EXE).
Also, 11Mb file size is just... ergh.... I saw such size only with 2 progs: MS Word and some version of 3D MAX. Under release build executable size usually comes to about C++ code size. I don't believe Firaxis has 11Mb of C++ engine code there, especially with all "business logic" in python, aside from exe.
I mean that just building it as 'Release' will chop down memory requirements and speed it up about 2-4 times in case CPU becomes an issue.
I don't know why Firaxis didn't complete Release build before shipping out the game in a rush. Perhaps there is actually some memory problem which becomes access violation under Release build (this sometimes happens), but...
Anybody at Firaxis, is that true?
I don't think this is memory leak. Yes, VM size grows as the game proceeds, but in my case it stops growing after reaching 524Mb (which accomodates with caching new units, new improvements, etc...) . Well, it explains memory usage growth capped at some limit, BUT IT DOES NOT EXPLAIN ABSOLUTE VALUE OF THAT MEMORY USAGE (300-400Mb of WHOLE artwork, remember...).
P.S: I still like this game; and I want to like it because it will give me a lot of pleasure once it doesn't annoy me with 1-second delays to scroll a single tile. I understand that tech issues shouldn't affect my thoughts about taste of entire civ4, and actually these were coded by different people. Still, it's like a hot beer. It might be tasty when it's cold, I might want it very much, but still I can't drink it hot. And I probably won't buy it anymore if it will be sold hot every time and everywhere.
P.P.S: Actually this games costs not $60, it costs $110 if you need a memory upgrade ONLY FOR IT or $210 if you need video upgrade just for it. Why? Because normally I would buy those pieces within a year or two when they will be actually needed by MOST games and their prices will drop (video will drop for ~$200 in such a period of time), but civ4 forces me to do so now, so I am forced to spend these $200 not to Firaxis, but anyways away from my pocket. I won't... So those $60 are wasted up until now. I still have a little hope that these issues are from Debug build - it's fixable. But if it's architecture flaw (e.g. python memory use or engine programmer left the building or whatever...), then we're all out of luck.
