I think that for a game, or for most games, you've really got to have access to all of the same memory shared between each piece of code that's running on a core, so it really needs to be more like threads than processes. Processes have a much more confined wall between things which means you then have to use something to bridge the gap, which is additional overhead and doesn't exactly seem very easy to synchronize or be efficient.
I guess that to make use of lots of cores, you'd have to rethink how you structure your app, so that it is ready to be highly parallel. Ideally you'd maybe want one core per game object, or small group of game objects, and have them all be calculating at the same time, like each core handles x number of particles or whatever, or width x height area of landscape.
I can't see that using processes is very intuitive or flexible, the whole point is that programs are blind to each other and enclosed in separate memory areas, and trying to then open up those boundaries to make it share enough to be useful seems like a pointless exercise when the boundaries shouldn't have been there in the first place. I vote for threads with shared memory, if at all.
My ideal is to have one dedicated core per object so that every object is being processed in parallel with no need for any `multitasking` or scheduling or timelicing.
I guess that to make use of lots of cores, you'd have to rethink how you structure your app, so that it is ready to be highly parallel. Ideally you'd maybe want one core per game object, or small group of game objects, and have them all be calculating at the same time, like each core handles x number of particles or whatever, or width x height area of landscape.
I can't see that using processes is very intuitive or flexible, the whole point is that programs are blind to each other and enclosed in separate memory areas, and trying to then open up those boundaries to make it share enough to be useful seems like a pointless exercise when the boundaries shouldn't have been there in the first place. I vote for threads with shared memory, if at all.
My ideal is to have one dedicated core per object so that every object is being processed in parallel with no need for any `multitasking` or scheduling or timelicing.