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

2416
PuppySlayer•

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.

23
escape_goat•

Toady's lack of parallelization

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

13
iamjack•

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 n dwarves/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.

11
[deleted]•

[deleted]

1
weezer3989•

Extended metaphors are a beautiful thing.

1
Harb67•

So...processes are dorfs hanging out in a meeting hall with no tasks assigned?

1
sporkmongerwielder of the adamantium war hammer•

I just wish DF could offload some of those computations to the GPU. I rather suspect a lot of stuff that DF does behind-the-scenes would be a good fit for GPU processing. Or just multi-threading would be nice too.

9
archivis•

Rumor has it Toady tried offloading stuff to the GPUs. They got all hot and bothered about not being used to render shades of brown in a modern shooter that they stormed out to seek their proper Call of Duty destiny. So that was a no-go. Also, on the way out, they insulted his pet cat, so he's not even going let them back in the building.

3
Zarokima•

It wouldn't make much, if any, difference. DF is single-threaded, so the only thing that really affects it is your processor's raw speed.

8
Yserbius•

What Toady needs to do is set up a way to utilize multi-processor supercomputers.

Yeah, not gonna happen.

6
ZeroNihilist•

But he's missing out on the lucrative misusing-scientific-resources market!

5
[deleted]•

Sign me up!

2
[deleted]•

[deleted]

2
[deleted]•

I know. I reserve the right to dream, though.

1
lentic_catachresis•

I agree with the OnLive/DF concerns stated elsewhere (and will add that DF is merely an alpha), but I would love to see a streaming host that I could run on my PC that would relay input from a remote device to DF and stream the display back to that device.

2
DataProtocol•

There is a solution to this called Dfterm. I've never used it, but this was something I wanted to try a year or so ago.

2
lentic_catachresis•

Oh, awesome. Will have to try it.

1
WWWeirdGuy•

Wow...Always knew about onlive, but this....MIND BLOWN!

1