Jump to content

Recommended Posts

I didn't criticize CM for being single-threaded. Lots of games are, even up-to-date MMORPGs.

I am just pointing out that buying a processor that has many cores, but slow cores, is stupid. Even if you have a multithreaded game then you often end up in contexts where temporarily only one thread is doing work and your minimum framerate is very lousy.

Whether a 2.2 GHz K8 or K10 in CMSF is good or not depends largely on what the user is used to. Of course there can always be driver screwups.

Link to post
Share on other sites
"Victoria 2... would be a good candidate for multi-core."

What makes this game require multicore? I don't understand what the difference is between one game or another re processing requirements other than raw power etc.

Thanks for the education...

Well a game like Victoria 2 models the entire world working population. I'm sure it takes certain short cuts in certain areas, but for every "Pop" (population unit) it has to calculate a lot of variables. Promotions to different classes (of which there are about 10), migration to different regions or states based on life rating, employment (and the ENTIRE world is modelled), ability to purchase needs on the world market. Not only that, the great powers end up with hundreds of factories that are all competing on the world market for various goods, which are continously adjusting prices for those goods. Then you have the AI for every country in the world controlling 1+ million man armies in the late game, so if a war breaks out there is a lot of "thinking" to do.

So basically, towards late game (the 1900-1936 period) when there is 1 Billion working people for the game to process in real time, numerous wars involving millions of soldiers, and thousands of factories all messing with the prices of goods on the world market (and thus effecting the needs of all the populations as well) you have A LOT of calculations going on. I doubt CMSF even comes close to doing as many calculations at once, thus why CMSF runs on my old laptop but Victoria 2 struggles, despite it being a very simpified game graphically.

The CPU is directly responsible for all this.

In programming you have statements such as:

If X = n then Y else Z, the more complicated the calculations that the game requires (such as simulation type games) the more complicated these statements are going to be.

You also have stored variables in programming, such as "enemy_morale = 0.1", or the X Y and Z in the above example. The more of these variables the game has the remember, and the higher the requirement that these variables go, the more RAM the game requires. The difference between 32bit and 64bit is how high these numbers can go, effectively. 32bit systems can only utilize up to roughly 3GB of RAM on Windows XP. Most games at the moment are 32bit, so RAM is usually not a problem now.

So the CPU calculates these variables to give you output which you see on your screen. The faster the CPU, the more of the calculations it can do at once, and the bigger the RAM, the more the program can remember for the CPU to access quickly.

Now take a FPS game, RPG, or RTS game. There is not a lot to remember or calculate in comparison to a flight sim, combat sim, or what have you. There is no complicated physics equations required to see if a bullet hits in a certain amount of wind over a certain amount of distance. I mean most RTS games just have a random dice roll vs some attributes to see if a unit hits or misses. You're looking at one paragraph of code vs one page of code for the CPU to process to determine a 'hit'.

A lot of RPG, RTS, and FPS games though push the limits visually and require quite hefty video cards to run.

Now multi-core comes into play when there is far too much going on for one core to handle. In most games, even 2.2gHz is fast enough to process everything that is going on. But as you can see in my Victoria 2 example, there is a insane amount of calculating going on and even faster CPU's (3.0gHz) end up being bottlenecked by the late game. So that means the load needs to be spread out across multiple cores. I am not a programmer (I am a IT Solutions Architect) but I imagine making a game to use multiple cores requires a lot more effort for very minimal gains. However, if you do have multiple cores you can assign a game to sit on just one core (and let Windows use the first), which will help performance in games with high CPU requirements. Task Manager, find the game process, right click, and set affinity to your last core only. Also set priority to "High". You can also see under performance in Task manager where your bottlenecks are in terms of CPU and RAM (and under Windows 7 etc it will also give you disk Input/Output under performance monitor).

In the end, think of your computer like a highway:

The speed limit is the CPU speed. The number of lanes is the amount of RAM. The number of onramps is your hard drive speed. And the video card is the weather conditions.

So if you are trying to play a game, you might have great RAM, CPU, Hard Drive speed, but a poor video card. That means all your commuters going to work on your highway have poor visibility due to rain and thus can't travel fast. Or you may have great RAM, CPU, Video Card, but a slow hard drive. That means you have fewer onramps onto your highway, so it takes cars a lot longer to get on there, but once they are on, they fly down it. In terms of gaming, visibility is usually the most important factor these days.

Hope this rather simplified explaination helps. There is more to it than this of course, RAM speeds, caches, buses, etc. But you should get the general idea.

Link to post
Share on other sites
I process things visually, so you have enabled me to understand more in your post than I have ever before re how these issues interrelate. So, thank you, Dave... (Ever thought about writing manuals?)

Cheers mate, glad I could have helped.

My job is all about writing manuals as such (proposals, scopes of work, visio design, as built documentation etc). :)

Link to post
Share on other sites
  • 2 months later...

Traffic example? I'll bite.

Single core processor = 1 lane road, 2.0 GHz processor =50 mph speed limit, 3 tasks running = 3 drivers each in their cars taking a drive that should (if they were alone on the road) take 10 minutes (8 miles or so).

Now imagine that all three drivers want to get somewhere, but this road can only "fit" 1 car at a time, and the drivers/cars have to take turns. When it's your turn to drive, you drive for 1 minute. The other two cars have to pull over to the shoulder and wait. You drive, then its driver 2's turn. So you have to get off the road so he can pull onto it. Driver 2 drives 1 minute, then has to make way (get off the road) so the third driver can get on and drive during his "turn". So you get to drive for 1 minute, then cool your jets for 2 minutes while the other drivers get their turns. Your trip ends up taking 28 minutes (10 minutes driving, 18 minutes waiting; drive, wait, wait, drive, wait, wait, drive, etc).

This is called "task-switching". The single core swaps tasks in and out in a round robin fashion so everyone gets their slice of time actually doing something (driving along at 50 mph). Add in enough tasks all wanting their own little slice of time, and you can see computers bog down partly because of all the time available, each task is getting a smaller slice, as well as the overhead of switching their data in and out of processor memory.

Dual-core processor = 2 lane highway, 2.0 GHz = 50 mph, same three drivers in their cars (tasks).

Not really different from the single core model, other than the fact that 2 drivers can be driving at the same time (more throughput). They all do have to get off the road at the end of their turn, then back on, and it might be a different lane next time, but less time is spent waiting. Since there are two lanes available, each gets to spend more time on the road as opposed to waiting.

You make the trip in 14 minutes, 10 minutes driving, 4 minutes waiting; drive, drive, wait, drive, drive, wait, etc).

Quad-core processor = 4 lane highway, 2.0 GHz = 50 mph, same three drivers.

Yeehaw! Now there's a lane for each driver, so they can all drive at the same time, and never have to pull over. You make the trip in 10 minutes flat, no waiting. It doesn't really help a single driver drive any faster (still 50 mph), but you never have to pull over.

Up the processor speed or speed limit, to say 3.0 GHz (or 75 mph) and you'll get there sooner (6.5 minutes), but you still have to share the lane(s) with the other drivers (drive, wait, wait, drive,... or drive, drive, wait, drive....) if there are more drivers than lanes (tasks than cores).

Link to post
Share on other sites
That's why I specifically ordered a fast single-core machine as most games (that I want to play) still don't take advantage of multicore. Maybe in 5 years...

Is there an "off-the-shelf" system you can recommend for the old CMx1, as well as the new CM:BN...?

...or would I be looking at custom gaming machines...? I still like my old CMBB and CMAK, but want to play the new CM:BN, as well...



Link to post
Share on other sites

Any system that can play CMBN should be able to play CM1 games easily.

Actually, you will be able to play the monster CM1 games that would slow down an older system to a crawl.

Finally, you'll be able to play with the largest maps and with an (almost) unlimited number of units and resolving the turns won't take hours (maybe a few minutes at worst).

An off the shelf Dell XPS with a decent videocard and 4GM Ram should be fine. (But, Dell uses cheap components which is why I have mine custom built nowadays - the quality of components makes a big difference imo.)

Link to post
Share on other sites

An off the shelf Dell XPS with a decent videocard and 4GM Ram should be fine. (But, Dell uses cheap components which is why I have mine custom built nowadays - the quality of components makes a big difference imo.)

Thanks for quick answers, guys.

I had good luck with my previous Dells (my current rig is from 2005), so I wondered why some people were so down on their desktops. I wasn't aware that they may have skimped on their components since then, as well as making it more difficult to swap parts for upgrades.



Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...