Multicore Support?

Is this something that will be added on in newer betas/final game? As of now, it's only using ~50% of my first core, and less than 10% of the 3 other cores.

 

Thanks. :)

 

33,562 views 11 replies
Reply #1 Top

Yes, there is multicore support in Demigod just like Supreme Commander. 

Reply #2 Top

Quoting Blitz64, reply 1
Yes, there is multicore support in Demigod just like Supreme Commander. 
End of Blitz64's quote

heh, that doesn't mean much.

Reply #3 Top

Then why is it only using 50% of my first core, and less than 10% of the other 3?

Reply #4 Top

Core optimization should come later methinks.

Reply #5 Top

I wonder once again if LUA has a global interperetor lock???

So far I have not seen multicore support in DG with my 4 cores only pegged to 25% max.

Multicore is important especially for the game host who has their client + server calculations to do, and has 3 spare cores to work with the server stuff.

Reply #6 Top

bump, would a stardock employee care to comment please? :)

Reply #7 Top

Bumpity bump bump, Im curious as well. Respond away fearless Stardock Employees!

Reply #8 Top

Quoting astonerbum, reply 5
I wonder once again if LUA has a global interperetor lock???

So far I have not seen multicore support in DG with my 4 cores only pegged to 25% max.

Multicore is important especially for the game host who has their client + server calculations to do, and has 3 spare cores to work with the server stuff.
End of astonerbum's quote

 

A GPG dev can correct me if I'm wrong, but I don't believe Demigod is client-server based, just like most RTS games.  The host isn't doing all the calculations and transmitting them to the clients (think of the cheats that could allow!), instead I believe ALL clients are computing data in a strictly peer-to-peer environment, then checking up with all other clients to make sure things are in sync.  That's why you get sync errors, if it was a host pushing data clients I'd think that would be avoided.

 

Anyway, not to detract from the point, which is that multicore support is greatly desired!

Reply #9 Top

I believe ALL clients are computing data in a strictly peer-to-peer environment, then checking up with all other clients to make sure things are in sync. That's why you get sync errors, if it was a host pushing data clients I'd think that would be avoided.
End of quote

This is my understanding as well. 

Reply #10 Top

that is true; all computers do the same, and equal, amounts of work. 

Reply #11 Top

Proper load-balancing across 4 or more cores is actually not trivial :). The fact that the engine is already multi-threaded and thus uses 10% of 3 cores along with 50% of the "main thread" usage is pretty good...They have obviously divided up the workload... While they may do small tweaks here and there, I would HIGHLY doubt that they will do the deep "surgery" required to the engine at this stage to produce significantly better load balancing... Doubt as in, i'd put 10000 dollars on it :P...

This is actually one of the reasons that I have never been even slightly tempted to buy hardware with more than 2 cores for my home computer. Generally by going to 4 cores, I take a Mhz hit or a price hit... The only reason I could see for someone needing 4+ cores is if they like to do heavy multitasking on their computer: ie: statistical data analysis in one program while playing a game...or video/mp3 encoding (which is easily load-balanced to properly use many cores).

I've done quite a bit of work related to massively parallel computing (ie: using 128, 256, 512+ cpus at the same time to solve a problem quicker)... and I can tell you that while some problems fit this template VERY well, if you deviate from these "easially paralled" problems even slightly, it becomes a mammoth effort to "spread" the workload along many many cores. This is usually very true in games where the ORDER of the workload matters...So you can't split the work into blocks A, B, C, D very easily if the solution to work-block D depends on what happens in block C, which depends on what happens in block B, etc.

Thus how games achieve the usage of multiple cores tends to be by "splitting" the workload. Say you have all the work being done in one core... Now you rip out the AI workload and put it on a separate thread. You then need to somehow communicate between the two threads for the AI will need the game-state information to do its thing...and the game action-states will need to be modified depending on what the AI decides to do, etc, etc, etc... Very very easy to get mired in the details if it isn't planned very carefully. But its doable and this is why in many games that DO use multiple-cores, one of the things that they use the other cores for is AI. Another could be special effect physics, etc.

One example of this last bit would be in the PS3 how you can use one of its multiple "cores" (exactly why so many people HATE HATE programming for PS3) to make sweat run down the faces of characters playing basketball :).

 

Anyway, I better stop my rambling now...Sorry if I got a bit technical, hope it was easy to understand.

 

-Drexion

 

+1 Loading…