Hacker News new | ask | show | jobs
by mfav 3325 days ago
Improbable's SpatialOS is actually a really, really neat piece of tech. For the first time it's becoming easy for an independent developer to build an MMO type application.

With the impending growth of VR (and virtual worlds in general), this is a great candidate for being the foundation of a new generation of apps.

Unity has done this for game development. It's the de facto engine of many research projects, video games, and some applications.

Unity lacks the ability to scale to large projects, however, which is where SpatialOS comes in. It's for projects that are large in scope (encourages/requires better programming practices) and is literally made for scale. The nice thing is that the SpatialOS tech uses Unity, but doesn't require it. It can be used with any engine if desired.

1 comments

SpatialOS is nice tech, and can help people who don't have distributed systems engineering experience.

However a couple distributed systems engineers, dev ops, and games engineers could build something similar.

It's not that hard for a team like that to replicate it from what I've seen of the documentation on how to use it.

It's defiantly worth something, but for 500 million? You could literally phone up game industry legends and get them build something amazing for that.

If it were just games, I think you'd be right in there being a relatively low value cap. Gaming is a huge industry, but the issue with persistent words is that to provide value, they need to have addicted users. If i'm not going to keep logging into a game, do I really care that it's supporting a huge number of users or that a tree I felled a year ago is still decaying on the floor somewhere?

There's a low upper limit to how many such games an individual would be willing to invest in (a number not far off 1?). Some MMORPG players will play a few of them, but I suspect most will focus on just one.

I think the real value of this tech lies in its applications outside of gaming, namely huge-scale simulations. There's plenty of opportunity for lucrative contracts with governments, academia, and R&D departments.

Why do simulations have to be real time online systems?

Most simulations don't work like that at all.

No idea to be honest, but i'll speculate about an application of this:

Let's say you're simulating an ant colony, there's going to be a lot of empty space, there'll be choke points with a high number of interactions, and quiet areas with not much going on. You could do a totally offline simulation, and it'll take an unpredictable amount of time to do some number of ticks - because the complexity of each tick is unknowable ahead of time. But if you want reasonable guarantees about how long a simulation will take to run (and assuming there's an upper bound to the complexity), being able to easily and automatically scale up the computing power would be very valuable.

So the utility isn't restricted to real-time, but more generally about having a predictable execution time per tick regardless of simulation complexity.

Of course, this is all speculation, I'd love to hear some real world applications of this.

I also want to know the answer to this.

Should we expect weather forecasters to ditch all their existing infrastructure and move to improbable?

Something doesn't add up; simulations are not MMOs.

> but for 500 million? You could literally phone up game industry legends and get them build something amazing for that.

Softbank isn't buying an implementation! It's buying a company that facilitates implementations.

Which for 500 million you could build a company with industry legends from scratch.
Ah well, maybe you're right about that! I have to say I don't understand what they've done.
What language did they write the os in?
It's not an os. It's just a name.

Core of this, is a distributed system that fires of events, and synchronises state between nodes. And to be able to dynamically add and remove nodes as required. Then some integration with games engines.

Ok but java? Haskell? C++?
Does it particularly matter what language it's in? You can build distributed system in any language.

Their documentation and demos shows that you describe the entities, entity state and events in their own domain specific language as a schema. The engine that manages all of these entities can be in whatever language they want, they haven't publically stated. But I have feeling it's in scala. This is the cool bit.

Then they have integration with unity, and other engines. The unity integration has something that will read the schema and auto gen some code, which will allow you send off command/events to the distributed system they've built.

Defiantly useful. But it's easy to replicate with a good team of engineers.

Scala and Go