News: WOTM 04 - saves available

Since the tech discussion is going strong despite the topic hijack, I'll add this here.

My HP notebook has a Turion 64 X2 (1.8 GHz + 1 MB cache), 2 GB ram, and nVidia GeForce Go 7200 (which I was told had dedicated video memory but now I am reading that it uses up to 256 of shared memory, which may explain the video freeze problems - "thread stuck in device driver" - I had in GOTM 11 and 13 and may mean it was not really a driver issue).

I observe some slight slowing of response in late huge games even with this much RAM, and yes, a reboot improves it.

On the video, the source I am reading http://forum.notebookreview.com/showthread.php?t=74493 says that the 7200 is rather weak for games (no wonder the box was so affordable). But, if I go to the low graphics settings in Civ 4, it seems to be performing well so far, even in the big games.

So I am sure that extra memory will help, but I suspect if the game gets big enough (there must have been 1000 units in play across all civs in GOTM 13), some slowing may still occur.

And for those experiencing video limitations, set the graphics items on the left side of the screen to low, it automatically selects the lowest settings for the itemized list on the right (graphics tab in options), and see if that helps (if you have not already).

dV
 
So I am sure that extra memory will help, but I suspect if the game gets big enough (there must have been 1000 units in play across all civs in GOTM 13), some slowing may still occur.

I don't think 1000 units would impact the graphics card at all, since only a few units get displayed. Away from the graphics card, the memory required to store the units is pretty low too - you should easily be able to store all details of an unnamed unit in about 10-12 words [1][2] (assuming it the game uses words internally, 10-20 bytes if the programmers took the trouble to use bytes instead), but even if it was say 100 bytes, that's 100K total memory, which ISTM is negligible. So I suspect slowing in late game is due to CPU time; if the game is vaguely sensible and tries to coordinate unit movements, then the time to calculate unit moves will grow substantially faster than the number of units (I wouldn't be surprised if it was something like (no. of units) squared). Of course it could be a memory issue if the algorithm to calculate moves is really greedy on memory.

[1] on the 1 word = 32 bits = 4 bytes definition

[2] offhand, I would guess the minimum, assuming word as the basic storage unit and without doing too much compression, is:
  • One word each for the x-and y- coordinates of the location
  • One word for the type of unit (this could be a pointer to the static information for that unit type)
  • One floating point number (1 word?) for the strength
  • One word for a pointer to the unit's name if there is one. This'll be null in almost all cases.
  • One word to indicate if a warlord is attached to the unit.
  • 1-2 words for the promotions, if stored as bitwise flags.
  • One word for remaining movement points.
  • One word to indicate if fortified/healing/on sentry duty/on a boat/etc.
  • One word to indicate how many turns fortified.
  • One word to indicate nationality (may not be necessary, depending how units are accessed)
  • Possibly one word in a list of units on that tile, if the game does that.

Air units would need slightly different info, and boat units might also have pointers to the units aboard them.

(No doubt someone who's actually looked at the SDK would be able to say more precisely what the storage requirements are)
 
There were some issues associated with (number of units)^2 performance in earlier versions of Civ4. I think those have been fixed, though. Also, I wouldn't really expect them to go away when the game is saved, exited, and reloaded.

Perhaps there are some other kinds of issues. E.g., there's space allocated for units that don't exist any more, but, the program still spends time checking that those nonexistent units don't affect play. Saving and reloading could eliminate them from the system. Just a guess, really.
 
Back
Top Bottom