This website views at its very best in Firefox web browser, and is not available in a mobile version.

      Copyright © All Rights Reserved | Built by Serif Templates

Parchment Background Image for How To's: RCT3's Affinity With Your PC on FlightToAtlantis.net

For over a decade there've been conflicting reports circulating about the Internet as to whether RCT3 can use more than a single processor. If our own computer has multiple cores we might sometimes find ourselves wondering whether our game is using all the processing power available to it. In this article we’re going to put this uncertainty to rest.






3D games are usually single-threaded and are designed that way to get over some of the challenges that come with synchronizing game code across several threads and multiple cores – one of the problems being core stalls that occur when one core needs to wait for another to process required data.






Can Single-Threaded Games Take Up Multiple Cores?






When 3-D games are launched they are often the only application in use. Multiple cores and multi-threading have been primarily designed for individuals who edit and use several office suite documents at the same time, and for users of content creation applications such as video and image editing where typically, multiple applications are running 2-D outputs concurrently.






Although in the gaming industry single core performance is still more important than multi-core performance many recent games are developed to utilize multiple cores.






Modern drivers can and do spread our single-threaded game engine’s load across our multiple cores. Quite often we’ll see one core shouldering the majority of the load, with lighter chores that are capable of being multi-threaded, such as physics or audio, spread among the other cores.






Getting Up Close






Presented here are some example screenshots of the Performance tab in Task Manager. As you can tell from the images there are four separate mini windows along the top at the right that represent the number of processors on that particular machine. At the left of that is the CPU Usage bar. That bar indicates, collectively, how busy the all the processors are on the CPU at any one time.






Image 01, HowTo's - Is RCT3 Utilizing All My Processors?

Ordinarily on that computer the system overhead takes the CPU within 1% - 5% capacity with the memory used for its overhead being around 1GB – give or take 100MB.






The Windows installation reserves a little more than 650MB for system overhead but as you see the Memory currently in use is at about 900MB. When these screenshots were taken Windows Media Player was playing music from file through DFX enhanced speakers which increased the CPU Usage to over 5% and, along with the other applications running on that machine at the time, if we use 650MB as the starting figure we can see that the overhead on that machine is already overdrawn by about 250MB so technically, we're starting out there at a disadvantage. Notwithstanding that there’s nearly 2GB of RAM remaining available for use. Let’s see what happens when we bring RCT3 to the party.






Image 02, HowTo's - Is RCT3 Utilizing All My Processors?

In this image RCT3 is launched and is displaying only the launch screen. With 700MB of RAM being taken up with the RCT3's launch screen on display we can consider this to be RCT3's overhead. While there are lots of CTR’s and CFR’s installed with that particular RCT3 installation there were only about 20 folders inside the Themed folder. Let's put a park on the table, Hillside On The Lake, and see what happens next in Task Manager.






Image 03, HowTo's - Is RCT3 Utilizing All My Processors?

With Hillside On The Lake loaded the CPU Usage has gone up from around a third to about a half. The Memory being used has increased from around half up to two thirds or so which leaves only about 500MB of RAM available. If we had shut down all the unnecessary applications before starting we'd instead have some 750MB of RAM available at this time.






At the top in the four CPU Usage History windows we observe that this load on the machine can be considered to be roughly spread about the four processors, although the bulk of RCT3's processing does seem to be taking place on core 2.






To adjust the affinity of any process we need to go to Task Manager’s Processes tab where, if we look in the Image Name column we can find our game’s process listed.






Image 04, HowTo's - Is RCT3 Utilizing All My Processors?

Once we’ve located RCT3plus.exe we’ll right click on it and select the option to Set Affinity.






Image 05, HowTo's - Is RCT3 Utilizing All My Processors?

If you have multiple processors on your machine, depending on the number of cores your machine has you will see two or more check boxes in the display that comes up. The example machine has four cores so we observe there are four CPU's listed. Another machine with eight cores would have eight CPU's listed.






Image 06, HowTo's - Is RCT3 Utilizing All My Processors?

Returning to the quad-core machine we find that all four boxes are already checked. We’re going to uncheck the box representing CPU 2 and CPU 3 so that the game only uses CPU 0 and CPU 1. Let’s see what happens to the Task Manager display. This is what was displayed before we changed the affinity:






Image 07, HowTo's - Is RCT3 Utilizing All My Processors?

And with our game using only CPU 0 and CPU 1 this is what the display looks like now.






Image 08, HowTo's - Is RCT3 Utilizing All My Processors?

That the game is now running on the first two processors is plain to see. Let’s again change the affinity so that RCT3 is prioritised to use only CPU 0.






Image 09, HowTo's - Is RCT3 Utilizing All My Processors?

Now it can be observed that processor 0, the one that the RCT3 process has prioritized for use, is running full tilt and flat out while the others have less processing to do than they did a few moments ago.






Do keep in mind that any application’s use of a single core in a multi-core set-up is a priority and not a restriction. We know this because in this example RCT3 hasn’t crashed due to core 0 being full so obviously, with this being a multiple core processor; any overflow from the prioritised core is being spread among the other processors. If this was a four core machine with less processing power it could be set up so that cores 0 and 1 were full, with the overflow from them going into the remaining two cores.






It’s when individuals have a single core on their machine and that single core becomes full that problems are encountered. These same problems can be experienced on a dual core machine where both cores become full with no additional cores available for any processing overflow. On such machines, in order to reduce the amount of CPU Usage and Memory used for overhead one would want to be sure that there are no unnecessary processes running before we launch RCT3. Additional information about determining which processes may be shut down can be found here.






We’ll return to the Processes tab and again setup RCT3 so it runs on all four processors.






Image 10, HowTo's - Is RCT3 Utilizing All My Processors?

Here we have visible proof that RCT3 does take advantage of multi-core machines although we can be sure that the single-threaded aspect of the game engine is running on only one of the processors. So that we may take advantage of our system having multiple cores we just need to be sure that the affinity has been set up in Task Manager for it to do so.






The Example Machine's Specifications






One finding we've determined from this machine’s specifications is that in order to get a fair sized park running efficiently one does not need to have the latest machine still warm from the assembly line enabled with 64GB of DDR5 RAM along with an ultra graphics card and quadruple octa-core processors. This is an older 32-bitmachine which is a few years shy of being the same age as RCT3. It’s running Windows 7 off 4GB of DDR2 RAM and the CPU is a 2 Quad dinosaur with a processing power of under 2.50GHz although the processors do come with hyper-threading and an L1 cache. It is possible to run a moderately sized park containing a good amount of CS on a machine with medium-level specifications.






When this machine rolled off the assembly line it was said to have had a good graphics card for its time. Over the intervening years the graphics card has been upgraded twice, each time bringing an improvement to RCT3 gameplay which was no doubt due to the faster rate of calculations that came along with each succeeding card's GPU. It's current graphics card has 2GB of DDR3 RAM but RCT3 uses less than 500MB of that so the RAM on that graphics card, when it’s not being used for other games and applications, is overkill for RCT3.






When that machine was running Windows Vista it was necessary to manually go into each process and adjust the affinity so it ran on more than one processor. With Windows 7 all the applications running on it run on multiple cores by default. You might want to find out if your machine by default uses a single processor or multiple processors for each task.












Applying This Information






To make affinity adjustments on your own machine, as earlier mentioned go to the Processes tab where you can find your game’s process listed in the Image Name column. Once you’ve located RCT3plus.exe right click on it, select the option to Set Affinity, and make sure all the CPU boxes are checked.






The information presented here will enable you to ensure your game takes advantage of your multiple processor machine.






Setting the affinity in the way we’ve described above is possible with each of the processes running on your multi-processor computer. After monitoring the affinity of your processes for some time you may find that one or two of your processes run best on a single core.