Why Civ IV is so Computer Hardware Intensive?

I_batman

Emperor
Joined
Jun 22, 2004
Messages
1,261
Location
markham, ontario
I don't want this thread to degenerate into another "Civ IV graphics suck over Civ III", or "Firaxis/Take2 sucks", or "Take2, Please Fix Civ IV Warlords", or "Upgrade your system" flamewar.

There have been enough of them already.

What I would like is an reasonable answer from I assume the people who know the code 2nd best: The Fan Modders. (The Firaxis guys who know the code best don't seem available to respond.)

I have a quite powerful rig, and have NO problems playing the game, but clearly the size of the map is extremely limited when compared to Civ III or Civ II.
Also, by most accounts, the poly counts on units within Civ IV seem to be less than what other 3D engines will handle. (This poly count statement is likely debatable.)

So my question is exactly what part of a computer system is the bottleneck for Civ IV utilizing larger maps and handling higher poly count units.

The areas I can guess as at being potential bottlenecks are:

1.The CPU processing speed of a computer vs the massive amount of caluculations required every turn. I doubt this a bottleneck, since I have not seen anyone complain of their CPU churning at 100% during a turn.

2. The limit on memory on the main board. I have heard that 2 GB is recommended, and I have that myself. That would assume either a massive amount of calculations and/or a huge chunk of the game is actually stored in memory every turn. I personally don't believe this can be a problem since much larger games, including Civ III, ran more cities and units without difficulty.

3. The bus speed/width to the graphics card. Civ IV was built on 32 bit architecture like virtually all other games so far, so I doubt this is a problem.

4. The memory on the graphics card. This I am guessing could be a definite problem when running a lot of high poly units on the screen at one time, but I would be very curious to see what would happen if someone ran a whack of really low poly units at the same time.

The above issues are all hardware related, and I hope that that is where the issues lie, since that would mean as technology keeps improving (Moore's Law), we should be able to run larger maps and more detailed units as time goes by.

But if the problem lies with the software, how the game actually is coded to use the hardware, that is a totally different issue. If we have a bottleneck because the game accesses so many text files (XML and Python scripting), that is a much more organic problem for the game, and does not bode well for the future of Civ IV.
I have seen 10 minute wait times on massive Civ III maps, with 1000's of units, while the CPU is 50% idle. The Civ III coding for whatever reason could not utilize fully the CPU. So this is a legitimate question for Civ IV.

I don't know the answers to these points, and I am looking to the guys who have dived deep into the code to give me some kind of insight. Will Civ IV always have the severe limitations with maps and poly counts, or we will someday see a 360 x 320 map actually playable with Civ IV, with really high detail units?
 
Kids like the fantastic 3D graphics.

Couldnt of said it better myself.

Thought Civ4 is not one of these games that im referring to in my BELOW comment...

Pieces of crap games can sell well to idiots just for having flashy graphics even if the playability, gameplay, and entertainment is devoid of quality.
 
Couldnt of said it better myself.

Thought Civ4 is not one of these games that im referring to in my BELOW comment...

Pieces of crap games can sell well to idiots just for having flashy graphics even if the playability, gameplay, and entertainment is devoid of quality.

Sigh....I asked for not the rationale behind the decision-making, nor anybody's opinion on that decision.
That has been done to death by about 100 threads and 1000 posters, including myself.

Read my original post. I want the technical understanding of what is happening in the computer with data flows and manipulation of the data with the software.
If you can't answer those questions, you are going off-topic.
 
Sigh....I asked for not the rationale behind the decision-making, nor anybody's opinion on that decision.
That has been done to death by about 100 threads and 1000 posters, including myself.

Read my original post. I want the technical understanding of what is happening in the computer with data flows and manipulation of the data with the software.
If you can't answer those questions, you are going off-topic.

Thats why i didnt quote you incase you didnt notice. :p
 
Some mods for Civ3 played faster then others. This can probably be said for Civ4 then aswell. I would take that to mean its not all hardcode programming that determines the time deleys but individuals decisions on various aspects in the modding process that contribute to the amount of deley down the road.

Eventually modders will be able to make mods for Civ4 that utilize the fastest proccesses throughout. Right now its possible that they make one time costly move in code that tallys in the end to mean mega deleys once compounded (4th era levels of units buildings etc)
 
I've been wondering why zooming in and out of globe view can several minutes in the later game. Or why just scrolling around slows to a stuttering crawl, even when I'm just looking at blank ocean. Doesn't make sense to me at all. I fear there something basic just plain wrong in the software. Something like Civ rendering all terrain improvements everywhere all the time instead of just on the part of the map that you're looking at.
 
I've been wondering why zooming in and out of globe view can several minutes in the later game. Or why just scrolling around slows to a stuttering crawl, even when I'm just looking at blank ocean. Doesn't make sense to me at all. I fear there something basic just plain wrong in the software. Something like Civ rendering all terrain improvements everywhere all the time instead of just on the part of the map that you're looking at.

So, perhaps the problem comes from spinning a globe, an entire 3D structure? Someone should do a test involving a flat map, and the same map except round, and see what differance there is between the two.
 
I don't think changing CIV4 to 3D would degrade the performance by so much. I think you hit it on the nail by insinuating that the programming for CIV4 is not optimal. Graphic intensity wise, CIV4 is really not much to look at.
 
...
I have seen 10 minute wait times on massive Civ III maps, with 1000's of units, while the CPU is 50% idle. The Civ III coding for whatever reason could not utilize fully the CPU. So this is a legitimate question for Civ IV.
...

This to me sounds like an intel processor with hyper-threading turned on. Civ III, just like about every other game, can only use one processor. So with hyper-threading turned on software thinks that there are two processors and it will only use one. If there is not much else going on there is not a significant speed hit in this case. Having a process only use 50% just about has to be because of this.
 
I have seen 10 minute wait times on massive Civ III maps

Me too. TETurkhan Map (256x256) caused looong waits.
 
Memory is a significant part of the performance problem. I've seen the page file hit 1.3 GB on my 512 MB physical RAM machine...those are the times when I give up and play something else. It seems as though Civ IV must store every little detail in the game in memory all the time. But I suspect inefficient programming is the cause of this.
 
I've heard a lot of people saying they can play civ IV without a glitch or a hiccup running pretty much minimum specs, whereas some people have problems running with very high end specs. Its this case with computers running the game for long periods that the higher spec models with the 2GB rams, faster CPU's, top of the range video cards; heat plays a major role in most of the problems.
 
One certain problem is that civIV is horrifically bad at "cleaning up after itself" when it comes to memory. It seams to open a new memory allocation for each new screen, and never purge them thereafter. I know several players (including myself) who had SEVERE slowdown after playing for some time (15 minutes to a few hours,depending on machine specs), and in every case, the problem was reduced by orders of magnitude by installing an agrressive memory cleaner to run in the background and clean up the messes that Civ makes (Personally, I like "freeram"). Of course, on large maps, some slowdown still occures, but everyone I know now finds the game playable on the system they have (which of course vary in quality) whereas that was not the case for most of us before we began running a background memory manager.
 
Hmmm Civ3 annoyed me, with it's slow, bloated programming and generally lack-lustre AI.

Realistically, both Civ3 and 4 might be ok software.

But really, after all these years, is it not time to expect a little more?

Firaxis has been trading on Sid Meier's name from the 'get-go' - delivering marginal improvements through repeated full-price releases.

I thought maybe after the mediocre, and very roughly programmed piece of software that was Civ3 and it's add-ons, that they might finally pull finger with Civ4.

But, no, seems not.

Another marginal improvement, but this time banking even more heavily on the community to, essentially, do what they couldn't or couldn't be bothered.

Thank-goodness for Civfanatics - Firaxis should be paying Thunderfall - as without this community the Civilization franchise wouldn't be worth a fart in a fart-factory.
 
I'm gonna go out on a limb and say that Gamebryo is a POS PC game engine. Anyone who has played Oblivion will agree.
 
[...] in every case, the problem was reduced by orders of magnitude by installing an agrressive memory cleaner to run in the background and clean up the messes that Civ makes (Personally, I like "freeram")[..]

That's a good idea. I'll give it a try.
 
Jastrow
One certain problem is that civIV is horrifically bad at "cleaning up after itself" when it comes to memory. It seams to open a new memory allocation for each new screen, and never purge them thereafter. I know several players (including myself) who had SEVERE slowdown after playing for some time (15 minutes to a few hours,depending on machine specs), and in every case, the problem was reduced by orders of magnitude by installing an agrressive memory cleaner to run in the background and clean up the messes that Civ makes (Personally, I like "freeram"). Of course, on large maps, some slowdown still occures, but everyone I know now finds the game playable on the system they have (which of course vary in quality) whereas that was not the case for most of us before we began running a background memory manager.

Never heard of this before. I'll give it a shot. Has anyone else seen a marked improvement when running such software?
 
Never heard of this before. I'll give it a shot. Has anyone else seen a marked improvement when running such software?

No, any performance improvement from running "ram freeing" programs is a fallacy. All they do is force all possible data from memory into the page file only. When this memory has to be accessed, it must then be loaded from the page file.
 
So far I have heard people suggest the main problem is indeed organic with the coding, and poor memory handling/cleanup by the game engine.
While it is good to know there may (or may not, there seems to be debate) a 3rd party program that will help with that, I wish that some of the well-known coders on this site could weigh in on what they have seen when they have been mucking about with the code.

I have done some C coding in my not so distant past, but never got to the sophistication of cleaning up memory and threads after they were finished.

I am not even sure Take2 released that level of the code in the SDK.
Can anyone who has messed with the Civ IV C++ code comment?

My biggest concern is if the suppositions are correct, and this is a result of poor memory handling, and this part of the Civ IV code is unfixable or not released by Take2, then Civ IV will always have poor performance issues on large maps.

Also, has anyone have any insight of the relatively low restriction on poly counts of units, or this part of the same hypothesis of memory handling issues.

I would like to do a little experiment on that, but I don't know of a extremely high poly unit out there that would be available.
If I created a 10 x 10 map, say all of plains or all of sea and nothing else, then parked a suitable, single, high-poly unit in the middle of the map, and tried moving it, what would happen?
I am talking about some high-poly unit that though incredibly detailed, does not operate well within a game.
I would think that if the problems within the Civ IV game were entirely memory related, on such a small simple map, this single unit would operate seamlessly at first, since there is nothing else going on.
 
Back
Top Bottom