Original Post
Has anybody tried offloading CPU load to a networked computer within a game? Obviously the first step would be to avoid it if possible by writing efficient code or using optimal algorithms. But, assuming everything has been optimized and you've used multithreading to take advantage of all possible CPU cores, would there be an advantage in distributing the load onto a network?
Semi-fictional example: I have a game which uses an entity component model. Objects are composed of components and use a messaging system to communicate with each other. If I have a spare computer on a 1000mbps LAN which isn't doing anything, I could use it to run some of the components (like physics or AI processing). The only concern I can think of is the difference in latency between CPU->Memory and CPU->Network. They'd be orders of magnitude in difference. But, if I'm going for a target framerate of 30-60 fps, and maximizing the local CPU produces 10-15fps, offloading CPU work onto the network would free up some local CPU resources and give +X extra fps, even with the added network latency, possibly achieving the target framerate of 30-60fps. The only other possible issue would be maintaining synchronized game states... But, the pay off would be that you'd be able to add a TON of horsepower to whatever you need to calculate.
Granted, the added complexity this would add to a game would have to require a long hard think on cost vs. benefits before going forward...
Semi-fictional example: I have a game which uses an entity component model. Objects are composed of components and use a messaging system to communicate with each other. If I have a spare computer on a 1000mbps LAN which isn't doing anything, I could use it to run some of the components (like physics or AI processing). The only concern I can think of is the difference in latency between CPU->Memory and CPU->Network. They'd be orders of magnitude in difference. But, if I'm going for a target framerate of 30-60 fps, and maximizing the local CPU produces 10-15fps, offloading CPU work onto the network would free up some local CPU resources and give +X extra fps, even with the added network latency, possibly achieving the target framerate of 30-60fps. The only other possible issue would be maintaining synchronized game states... But, the pay off would be that you'd be able to add a TON of horsepower to whatever you need to calculate.
Granted, the added complexity this would add to a game would have to require a long hard think on cost vs. benefits before going forward...