Hack Week 2019: Persistent Client

Hey all!

Each year at Roblox we have a hack week. This is a week where us engineers get to try out some of our cool ideas for the platform. I thought it would be a nice idea to dive a little deeper into my hack week project from 2019.

I worked on a project called ‘Persistent Client’. Basically, it’s a way for instances to exist and continue running when connecting to and from different game servers. A couple of use-cases I had in mind were:

  • Interactable loading screens
  • Seamless teleports
  • Multi-server games
  • Animated loading screens with sound

The video I have linked shows some of these in more detail. If you keep an eye on the upper-left you can see the current server and place that my character is playing in.

In the first demo, I walk across the bridge and as I do I am connected to a different server. Then, in the second demo, I walk back to join players from the previous server. Finally, I created a loading screen with a dragon that can be moved around using the arrow keys while I am connecting to the new server.

Anyway, that just about summarizes it. If you have any questions, or interesting use-cases it would be awesome to hear about them!

149 Likes

Getting big Skyrim vibes from the demo, haha.

If this was fully implemented on the platform, it would be a huge deal for open world games. I think developers like @TwentyTwoPilots would be very interested, especially with the scope of the Ultimate Driving world.

Another thing that I’d be interested in is making it easier to reconnect with friends across different areas. Currently there are several games (such as Adventure Up) that rely on party co-op play, but have side areas. It’d be nice to have a system in place where users who are friends can all join the same instance without having to leave the game and reconnect.

19 Likes

I love this! I think that this would be great for many open-world games, in my opinion this is way better than the default loading screen and would really make the games look better.

6 Likes

This is super cool! This can be used for so many things.

2 Likes

Every year a few Hack Week projects actually get scheduled for development and release. This should be one of them.

This might help a lot with player retention during teleports.

Maybe developers could use this to implement some sort of minigame during the loading process.

I could imagine this being used to implement a multi-city world where players can travel along highways to go from one city to another.

9 Likes

I’d say this feature is not only badly needed but also should be one of the next features to be added to the engine ASAP. Amazing work! Wanna-be open world creators like myself salute you. This would make game play so much smoother and is kind of industry standard these days.

6 Likes

I completely agree with the comments above, this would be a huge improvement to Roblox, not only would large scale maps on open world games be possible with high player retention and little lag but also games that have a lobby place like the Conquerors 3 would have a huge improvement on quality as you are teleported through to the game and back again.

4 Likes

This’d be an amazing system for as @NINJAMASTR999 said, open world games such as Ultimate Driving, vesteria and the game I am programming for, Alterdrift. Headed by @PineappleDoge1. As it allows players to teleport between places without pulling them out of the experience, round of applause for ComplexGeometry!

3 Likes

The interactive loading screen is very very nifty. Use case wise, I’d probably use it to chuck in a tiny 2D “minigame” in the middle sorta like the T-Rex game that Chrome has, so people can play an idle style game while they’re waiting to load in.

Really liking this contribution, would love to see this implemented soon!

2 Likes

Static loading screens are terrible for UX. This is especially true for games with longer loading times. Having an animated loading screen would be amazing! I hope this ends up coming to production.

4 Likes

This feature would revolutionize the player experience on the game I am currently working on. RoVerse is a galaxy of hundreds of star systems connected by warp gates where you teleport between places. If we could have actions going on while the player is flying between systems, rather than a static loading screen, that would be amazing.

I look forward to this becoming a feature with immense interest.

3 Likes

Honestly just animated loading screens that felt seamless would be amazing. I like the idea of being able to display dynamic information, or even just have things react to mouse movement in loading screens. It would give the feeling of consistency to multi-place games.

Really hope to see this one implemented.

2 Likes

Oh my…
If Roblox doesn’t add this I’m done,
this could make so much things better. But the downside of this is that low end devices will still end up being slow tp’d

2 Likes

Really awesome, I can imagine someone making a half-life 2 type of game and adding the “Loading” text just like how it is in the game.

1 Like

This is something that can make developers want to make those very large Detailed games, I really do hope that this might make it into roblox at some point. if not seemless teleports Atleast somthing along the lines of the interacable loading screens.

2 Likes

I would really love to use the intractable loading screen, got some ideas for it already.

This is a really awesome demo, and this needs to be added to Roblox. The only issue I have with the demo; why are you teleporting players on the bridge to the next zone? Surely this could just be part of the same map? I could understand when the game is split up into places containing only specific zones, but if it’s all one map, it seems a bit pointless.

favorite hack week 2019 feature shown
so many things I’d love to use this on

This feature looks amazing!

I would really like to see feature implanted one day because so many games will benefit from it, especially open world games. Imagine the possibility of having seamless looking worlds looking like one giant map. The possibility of having interactive loading screens also seems very exiting to me.

Question: How well does the seamless teleport perform on lower end devices and not so good internet connections? If not so good at the moment is it possible to make these optimisations?

1 Like

So… How exactly does this work? How would you envision developers “connecting” two different levels like this? The video makes it look like it’s just 1 level where different areas of the level are simply handled by different servers.

Other than that, this is one of my favorite hack week projects by far!