Is a persistent world possible?

Hello everyone.

As the title says, I wonder if persistent worlds are possible. If anyone has seen One Hour, One Life then that is what I mean. Ideally I would use messaging service to replicate building and such so you can have multiple servers on the same world. But after that, can I create a single database for the server which saves all of the parts and locations? The server is finite in size but would change a lot due to building. Ultimately, can you create server databases to create persistent servers and worlds?

(It should save all of the builds from all points of the server and can be loaded in, even from a brand new server. If I use messaging service to replicate everything, what would be the best way to save to the datastore, would it be by picking a host server and using it until it ends and if so, how exactly could I do that?)

SavePlaceAsync.

The world updates and saves each time someone does something, so I don’t think that would be suitable for what I am gonna do.

Is it a matter of not being able to create places and instead wanting your persistent world to be across all active sessions of the place? Yeah, SavePlaceAsync wouldn’t work then. You’re looking more at wanting to use regular DataStores for that.

Hypothetically it is possible to make persistent worlds but beyond AssetService which is definitely not suitable for all cases, it would be rather intensive to pull something like that off. You’d probably have to coordinate data across multiple DataStores (with compression and omitting of things that realistically don’t need to save) if you want to keep it all in-house. Real-time persistence would be a little harder to pull off because you do have to be mindful of per-server/per-experience limitations of services.

I understand that there will be delays and stuff but basically…

Each server will replicate things like builds to each other. And then it will all save to one database. And that database will be used to keep servers up to date, allow new servers to be up to date and ultimately create a game where what you do will stay there for, hypothetically, as long as the game exists.

Do you mean a way that you could mix MessagingService and DataStores together?

I had a similar idea. Here’s a post I made about it, where I outline 2 possible methods that don’t require setting up custom servers:

The first method might be all you need for a long time, but it doesn’t really scale super well. You could always have multiple worlds though.

The main problem with the second method outlined in the post above is with when too many people want to be in (/ log out at) a singular location (ex: a youtuber joins the game.)

In theory, since Roblox has a generous HTTP request limit of ~8 requests per second, you could set up your own server and do what you’ve described, but that ruins the point of doing it on Roblox. You’d have to do some work to make sure a custom server like that will scale. Ultimately you’d risk having an inferior experience, risk loosing money in the event that your game blows up, or both.

You mean like a Minecraft realm where the time and weather can change if nobody’s playing? This is probably the worst thing to do but you could have your alt play it 24/7 without leaving.