Improbable Icon

Forums

SpatialOS for single player?

unreal

#1

Hello!

I wanted to ask if it is possible to use SpatialOS for single player games?

The main reason why I ask this is to understand whether using SpatialOS can help make a single player but which can be numerous times more powerful then any other single player game out there. For example, in order to create say 50 factions in the game that all will interact with each other and change the world around them - destroying and building - one Unreal Engine isn’t enough, more computations are needed. So I thought is it possible to do something of the sort with SpatialOS?

I would like to hear your thoughts!

TL:DR - One Unreal Engine isn’t enough for making a huge game world for single player, is it possible to connect multiple engines using SpatialOS to increase the number of entities in a single world and computation power.


#4

is there a documentation or some articles about these? Most of the stuff I see is only about creating one world with thousand on entities but here it is quite different.

Is there a way to contact the personnel in Improbable for this? (even if it is paid)


#5

Hey @troman25, sorry for the delay in getting back to you.

We don’t have documentation or articles that can help answer this as SpatialOS is a multiplayer solution, and because of this, is primarily designed to enable and facilitate multiplayer games.

Saying that, making a single player game is possible but there a few key factors worth considering.

One of the many great things about SpatialOS is that it allows you to stitch together multiple game engines across one vast game world, therefore helping to create that powerful and dynamic environment you’ve described. With this in mind, you could have a world that is simulated by SpatialOS and have a single player connect to that world. This would then give you a single-player experience. However, this will always be an online experience, as SpatialOS is an online-only solution, so that is one thing to bear in mind.

The second is that if you were to go ahead with the above, you should be mindful of the potential costs of the game. Due to servers constantly running the world in the background, managing entities and workers and the size of that world (depending on how big you want to scale it to as well), you would need to think about the monetisation model you’d have, so that you can continue to pay to maintain the servers.

Hope all the above helps!

best,
Nee :slight_smile:


#6

Hey Nee,

Thanks for reply. I would like it very much if we could elaborate on the topic a bit.

  1. How likely it is to actually host something like this on spatial OS?
  2. How exactly would it work since every player will have different “version” of the map so how can SpatialOS keep up with all this when many people will be playing at once?

Actually the main reason why we are interested in the platform is the option to stitch together several engines for the game but as we are only starting out my questions might come off a bit weird :slight_smile:

Thanks!


#7

Heya @troman25,

No problem on the questions, we’re here to help answer them! :slight_smile:

On question 1, do you mean how feasible is it to host this on SpatialOS? If so, then as mentioned in my last reply, it is totally doable and possible, bearing in mind the pointers I also described. Or do you mean something else when you say “how likely”, like expense or another factor? Do clarify if that’s the case.

As for question 2, I’ve flagged this with one of our tech team who can help answer this too. They should respond on here soon.

best,
Nee


#8

Hey @troman25,

In response to your second question, there are two distinct ways to ensure that every player has their own world state, and that this state is not interfered with by other players.

The first is to have one deployment per single player instance. This is clean, but prohibitively costly.

The second, would be to use layers to separate player world states, while using server-workers to power multiple world states simultaneously.

For example, you could have x players sharing the same SpatialOS World but unable to see each-other, or any of the objects in other players world states. You would simulate one instance of every interactable object (the server doesn’t need to know about non-interactable-objects, these can exist only on the client) in the world per player, which is linearly more expensive than simulating that object once and making it visible to multiple players as you would in a multiplayer game.

Basically, it’s possible to use SpatialOS to power dense, complicated single player games that would otherwise be impossible, but you get more bang for your buck building multiplayer games on it.

In terms of “stitching together several engines”, there’s no reason you can’t do this. Your SpatialOS World is the the canonical source of truth about your game, but you can choose to render this world in whichever and however many game engines you wish. The obvious use case for this is a mobile companion app, but the possibilities are endless.