OnLive is a service that brings cloud computing to gaming...
... so who do I need to talk to in order to get Dwarf Fortress streamed to me from a server farm?
Just imagine... Several hundred dwarves per fortress. Trash piles as far as the eye can see. Not a single non-weaponised atom-smasher around.
Magma. Everywhere.
Posted Sep 26, 2011, 8:08 PM UTC
Regrettably nope. OnLive doesn't actually 'cloud' it as far as I'm aware as much as it just streams the games running on their high quality PC's. It won't be able to overcome Toady's lack of optimization because bottom line is that it'll run on the same i7 CPU's that give my computer FPS deaths.
FTFY. There is a vast, genuine difference between 'optimization' and getting a program to run significantly faster on multiple cores.
'Optimization' is about improvements to algorithms and data structures.
'Parallelization' is about getting thousands of little itsy miniature programs to agree what time it is, where they are, who they are, and what just happened. While they're all wearing white tuxedos in the middle of a cow pasture and insisting on dividing everything by floating point numbers because they're really, really high, and also drunk out of their minds. And it really, really matters that they work things out peacefully because you need those tuxedos back in pristine condition or else the world ends.
It is, as they say in the business, 'non-trivial'.
I think he's using the term in the vernacular where "optimization" means "make it go faster", of which parallelization is just one method to success.
Also, parallelization of at least part of Dwarf Fortress could be trivial, if we had any knowledge whatsoever of its internals. For example, given a static map of obstacles (i.e. the given map state at a single instant in time), pathfinding for
ndwarves/animals/goblins etc. is trivially parallelizable to however many threads you have available. Similarly, subsystems that don't need to be synchronized don't have to be done synchronously. On the wiki they talk about a more efficient magma pump stack because it reduces the number of temperature calculations that have to be done. Temperature calculations are all well and good but 90% of the time they don't have any effect on the game state whatsoever and the remaining 10% probably won't suffer from the small amount of latency that would be introduced by signalling the other thread that something important has changed. Alternatively you could create a sort of dependency tree that would force some processing to be done serially but two independent blocks of work could be done in parallel (i.e. calculating if a new tree is going to grow on a spot is entirely unrelated to whether Urist McHammerdwarf is getting impaled by goblins).Of course this is all speculative considering we all have no idea as to how the game is truly organized on the source level. As far as we know, the level of complexity in the game is hugely immense in the code level but only a small fraction of the logic is actually being used in the game (judging from some of the bugs and planned features I'm guessing that's true to some extent).
I have dreamed of the DF codebase.
[deleted]
Extended metaphors are a beautiful thing.
So...processes are dorfs hanging out in a meeting hall with no tasks assigned?