Jump to content

multi-core support.


Recommended Posts

I was wondering if you guys have been working on the code to take advantage of multi-core cpus. Im not the smartest when it comes to all the specs and lingo but i do know this, the game is single thread coded, which really bogs the game for me on anything higher then a medium sized battle.

Its really annoying to see only 1 of my cores being used and hyperthreading is basically useless. And see hiw you guys are able to make the engine evolve it be nice to see the ability to take advantage of the current technology.

Link to comment
Share on other sites

  • Replies 54
  • Created
  • Last Reply

Top Posters In This Topic

+1.

This should also open great possibilities for much more and complex calculations.

E.g. on a second core the calculations regarding the unit's "memory" could be done to support the TacAI with it's decisions.

Like in chess-games, the calculations could show which area on the map or next to the unit is threatened from wich direction, the kind of fire and how big the threat is.

Depending on spotted enemy units or expected positions, a tensor-field could be created. If a unit recognizes a movement, by comparing the old with the new positions in its "memory", the tensor-field could be updated without affecting the performance, since it would be running on a dedicated core. If a unit comes under fire, additional informations from the tensor-field would be available and could show highly or less threatened zones and the unit's TacAI could use the results for better judgements.

Link to comment
Share on other sites

As far as I'm aware the 2.0 Engine is NOT utilizing multiple-cores as of yet. I do NOT think that is on the plate this time around.

I'm not sure if multi-core support is under consideration for the 3.0 Engine or not. There's quite a bit of programming involved in making the game run on multiple cores in a balanced manner (and which also does not seriously hamper single core CPUs). Some of the speed improvements may not be as great as some people may expect with multiple cores. While multiple cores could help with some things, there are still a number of calculations and the management of multiple threads that slows the process down (some things are just procedural/linear).

I would GUESS that multi-core support may possibly be undertaken at the same time as 64-bit memory addressing support is also coded up (which already exists for the Mac version of CMBN & CMFI). However I'm not privy to all of the details of future development, so I'm only guessing here. But multi-core support is a major coding undertaking and I don't know where that will be on the development calendar.

Link to comment
Share on other sites

I would GUESS that multi-core support may possibly be undertaken at the same time as 64-bit memory addressing support is also coded up (which already exists for the Mac version of CMBN & CMFI).

Nah. Apart from these two not having anything to do with each other technically the 64 bit cleanness is already there, the Mac port already is 64 bits.

Most likely the main reason why BFC holds back 64 bit windows support is not wanting a third set of binaries to QA and concerns about drivers and libraries in existing 64 bit environments on people's windows machines.

Link to comment
Share on other sites

More and more people are getting 64 bit systems so getting a 64bit version for WIndows would be nice. I haven't encountered many stability problems with CMBN, but I do have plenty of them from another game. When switching to 64 bit version of this other game, both performance and stability improved A LOT.

Link to comment
Share on other sites

32 bit systems are almost extinct as we speak. 9 out of 10 units sold are 64 bit.

Yeah but almost all of the early 64 bit capable CPUs were and are still running a 32 bit operating system if they run windows.

Primarily because 32bit does not go above the 4gig limit.

That isn't an issue unless you use windows XP SP 2 or 3. (SP1 was fine, had PAE)

Link to comment
Share on other sites

We have no immediate plans to move to multicore or 64bit Windows. The development effort needed to do this isn't worth the return on investment. Making the existing game run a tiny bit faster or better (that is our best estimate) will not sell a single extra copy of Combat Mission. Adding the equivalent time's worth of features (easily numbering in the multiple dozen), on the other hand, will impact sales in a positive way. Since sales are a reflection of what you guys value most, that means it's a lose-lose situation for us if we diverted resources to going multicore instead of new features.

Would it be nice to have multicore support? Hell yeah, why not at this point. Unlike when we started most people are using multicore computers now. But this sort of thing requires a massive recoding effort. The only time it makes sense to get into that is when we feel that the single core, 32 bit environment is holding back improving the game. We still feel we're a long way from that.

Steve

Link to comment
Share on other sites

What is PAE?

It was used to use more than 4 GB RAM in 32 bit CPUs. It doesn't give each individual process more than 2, 3 or 4 GB of virtual address space but the machine can hold 64 GB RAM and the OS can see it, plus swapspace of course.

All late 32 bit OSes had it, including XP and XP SP1, Linux, FreeBSD etc, but Microsoft removed it in XP SP2. Depending on who you ask either because too many stupid driver makers didn't get their drivers right for the PAE case (yes, I am looking at you so-called Creative Labs) or to sell more of their windows server line products.

Link to comment
Share on other sites

We have no immediate plans to move to multicore or 64bit Windows. The development effort needed to do this isn't worth the return on investment. Making the existing game run a tiny bit faster or better (that is our best estimate) will not sell a single extra copy of Combat Mission. Adding the equivalent time's worth of features (easily numbering in the multiple dozen), on the other hand, will impact sales in a positive way. Since sales are a reflection of what you guys value most, that means it's a lose-lose situation for us if we diverted resources to going multicore instead of new features.

Would it be nice to have multicore support? Hell yeah, why not at this point. Unlike when we started most people are using multicore computers now. But this sort of thing requires a massive recoding effort. The only time it makes sense to get into that is when we feel that the single core, 32 bit environment is holding back improving the game. We still feel we're a long way from that.

Steve

People also overestimate how many well-multithreaded games there are. I have never seen a wargame doing multithreading except maybe Panzer Command, and none of the popular MMORPGs do, not LOTRO, not WoW. Some top of the line mass market shooters do.

And even for those who do, many don't really scale up doing one thing, they just distribute different things, and if one thing was your bottleneck it still is. That's why the minimum framerate (or maximum framerate drop) often doesn't improve as much as maximum framerate. Too bad minimum framerate is what has most impact on the game experience.

People need to wrap their head around the fact that PCs with many slow cores are not suitable for software that is either old or some niche software.

Link to comment
Share on other sites

Yup. And I can't blame customers for thinking "more is better" because that's what the computer salesmen tell people. It's like when Apple first moved to RISC technology (PowerPC). In theory the new architecture offered blazing speed improvements over the older 680xx chipsets. But in reality even after the OS was optimized for PPC, only certain applications ran significantly faster and only then for specific functions. PhotoShop, for example, had somethings go way faster and other not. The real speed improvement from the PPC chips came from their capability for faster clock speeds.

The problem is the age old one... bottlenecks. Something can only go as fast as it's slowest component. For games we've got video to contend with. Finding the hit location on a 20,000 polygon vehicle 10 times faster doesn't mean squat if the game was already waiting around for the video card to draw the darned thing.

Could CM run faster with multicore support? Oh, for sure in places it could. But enough to make a big difference to the player in terms of framerate or new features we can add? No. Especially because we would have to spend our time reengineering the game instead of adding new stuff. It's a venture of diminishing returns.

Steve

Link to comment
Share on other sites

Yup. And I can't blame customers for thinking "more is better" because that's what the computer salesmen tell people. It's like when Apple first moved to RISC technology (PowerPC). In theory the new architecture offered blazing speed improvements over the older 680xx chipsets. But in reality even after the OS was optimized for PPC, only certain applications ran significantly faster and only then for specific functions. PhotoShop, for example, had somethings go way faster and other not. The real speed improvement from the PPC chips came from their capability for faster clock speeds.

The problem is the age old one... bottlenecks. Something can only go as fast as it's slowest component. For games we've got video to contend with. Finding the hit location on a 20,000 polygon vehicle 10 times faster doesn't mean squat if the game was already waiting around for the video card to draw the darned thing.

Could CM run faster with multicore support? Oh, for sure in places it could. But enough to make a big difference to the player in terms of framerate or new features we can add? No. Especially because we would have to spend our time reengineering the game instead of adding new stuff. It's a venture of diminishing returns.

Steve

Would going to 64bit also be a venture of diminishing returns? Is there another way around the OOM problem. The problem has been alleviated quite well but not eliminated. So, will it pop its ugly head up again latter?

Link to comment
Share on other sites

The OOM problem is likely going to be even better with Version 2.0 because we've reduced the polygon counts (RAM) and shifted the detail over to the video card. This should help.

Going to 64bit means either we have to support 3 applications (vs. current 2) or we have to drop support for 32bit Windows. We don't want to increase support headaches and dropping 32bit doesn't appear to be viable yet. Having said that, I see us supporting 64bit in the near future.

Steve

Link to comment
Share on other sites

The OOM problem is likely going to be even better with Version 2.0 because we've reduced the polygon counts (RAM) and shifted the detail over to the video card. This should help.

Going to 64bit means either we have to support 3 applications (vs. current 2) or we have to drop support for 32bit Windows. We don't want to increase support headaches and dropping 32bit doesn't appear to be viable yet. Having said that, I see us supporting 64bit in the near future.

Steve

Hooray, this bodes well for the future. Thank you, thank you Battlefront.

Link to comment
Share on other sites

FWIW, for those who have an actual RAM shortage (as opposed to running out of virtual address space) a 64 bit version is generally not desirable. Because now all the pointers in the program take up twice the space, and some integers as well. This can be quite significant. Sure you won't crash hitting the virtual memory limit but your physical RAM gets stretched even more than before and you might be paging much more.

It's easy enough to say that RAM is cheap but unfortunately many desktops are crippled in how much memory they can take, and laptops are even worse.

Link to comment
Share on other sites

FWIW, for those who have an actual RAM shortage (as opposed to running out of virtual address space) a 64 bit version is generally not desirable. Because now all the pointers in the program take up twice the space, and some integers as well. This can be quite significant. Sure you won't crash hitting the virtual memory limit but your physical RAM gets stretched even more than before and you might be paging much more.

It's easy enough to say that RAM is cheap but unfortunately many desktops are crippled in how much memory they can take, and laptops are even worse.

How much ram will be enough? On my 64bit system I have 12 gig of ram, will this be enough?

Link to comment
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.

Guest
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.

 Share


×
×
  • Create New...