Hack Week 2019: Persistent Client

You just described my life’s goal :smile: That and World of Warcraft… not so much the story but that feeling you are IN a living world.

2 Likes

I wish I could like this comment 10x. It goes without saying we need players that are playing together to be in the same instance! They should have some kind of “role call” function that if Player 1 and Player 2 teleport out of the starting place and into Place B… 20 minutes later when Player 3 teleports to Place B, he should be joining whoever started with him in the Starting Place. I also know on other games for at least 15 years they have an Area Chat, Guild Chat, and Whisper Chat (pm). I’m hoping for this someday soon by default.

Would it be a possibility that teleportation would be instant? By that I mean, no 1 second wait time.

1 Like

I suppose you could kind of replicating this with some very clever MessagingService tricks, but not sure what the rate limits are on this, and how well it’d perform. Sort of like using WebSockets for a HTML5 game. A good use case for the Universe-level scripts feature that was mentioned a while back.

I’m going to say no as they have to replicate and connect you to the new place file. If these were loaded in, along with your current place file you could but may still have a blip. The reason loading in other place files as well is unfeasable is because it’d just take up way to much memory on the client if it were even possible.

My understanding of what ComplexGeometry has done here is pass through a detector which loads it in the background then, when complete, teleport you. (Correct me if i’m wrong.)

Can you evaluate more on that feature please?

Thanks

This Hack Week was insane, with this incredible features Roblox just added may help the new developers to grow faster than before! Thank you, Roblox!

WOAH WOAH WOAH!!

Wowza, you have amazed us all.

Please please please make this an actual feature, think about all the open world games which are so big they have been split upon multiple games.

Please make this a thing, I beg you!

4 Likes

Glad to hear so many of you liked it! It was really fun to work on.


I have never tested it on lower-end devices, but it should perform just as well as existing teleports. The most notable difference is that those devices would be able to continue running code while the new place loads.


It totally could be! The reason they’re not is purely for demonstrating the feature. You could definitely create much bigger maps and use them with this.


To keep the transition seamless, the worlds are identical around the transition zone. I didn’t spend too much time building the level out more, but you could continue to build beyond the castle and behind the mountain in each of their respective worlds.


Close, but not quite. Each area has a snapshot of the areas it’s connected to, so when you walk through the detector it just teleports you without resetting the world around you. The other world, is then loaded on-top of what you can already see.

To avoid the memory issue you mentioned, instances have an additional property which is used to specify whether or not an instance should continue to exist after you’ve transitioned to the new place.


I’m referring to a technique used to associate different parts of a large, open-world with different servers. As you walk across the map, you’ll be connected to new servers with different players, allowing you to interact with many of them along the way.

It’s really useful when you want to make an area of a map feel crowded while another area feel isolating. You could have a city with a limit of 100 players per-server, and a desert, which is ten times the size, with 20 players per-server. The city would appear full of life, with loads of players, and the desert would feel empty aside from the occasionally traveller.

9 Likes

That makes sense. I’d definitely love to see this implemented. My partner is eager to build a huge open world and being able to split them up and seamlessly teleport between the places would be great!

1 Like

What happens when there’s multiple players going through a transition area? Is there anything done to keep them in the same server?

Oh, I see. what a smart way to get around some of those nitty-gritty problems. Are there any drawbacks of this method over the standard, for players or you guys? And the question on everybody’s mind is this in the pipeline for the public or more of an exciting experiment.

I love the skyrim reference for the interactive loading screen lol

I love this! This is more realistic for a professional game! But I got a question

There will be a beta testing for this?

Holy crap yes, this is exactly what I need to link the Ultimate Driving Universe together into one cohesive experience.

5 Likes

Hack week projects don’t always become features on the platform. Therefore, this may never be released.

4 Likes

Wow, this is really cool! I’m happy to see that. :grinning: :scream:

1 Like

Hey, saw this project from the recorded talks at the developer meetup where you talked about your persistent client.

This is an amazing concept and execution, and I really wish for this to be added to Roblox natively. And for that, when do we know if this will/won’t be coming?

Additionally, how would one implement this with the tools we currently have? And would you recommend it? What I’m thinking of is basing it off of your idea. Basically having a teleport “zone” where the area around is similar in both places, while teleporting smoothly, similarly to what you did.

Would something like that be accomplishable (and not the least, usable) in “production”?

Unfortunately I’m not sure if/when this will happen. Since it’s a hack-week project, you can bet it’s poorly put together and riddled with bugs. The feature would require a lot more development before it’s close to being something we could put into production.

There are ways to achieve similar effects with the current tools, though there are some limitations. The most notable limitation is that you can’t continue to run scripts while teleporting.

  • If you wanted to achieve a seamless teleport, you could potentially do this with viewport frames. If you take what the player currently sees, put it inside a viewport frame and fade that frame over the view then the game will appear to be temporarily frozen. You can fade it out once the player is in the new server which will give the effect that their game was never frozen.
  • Scripted loading screens, these wouldn’t be possible.
7 Likes

You can run scripts after teleport by invoking functions to carry initials through for things like vehicles.

So in theory if this were to still happen, it would be possible to on new world, spawn the same exact car, and have it seat the player and then simulate the same velocity and direction from the previous world, also attributing the chassis ownership and so on to the right player.

It would just need a solid few frames on the new parallel LuaU engine to then have everything look smooth. So it would look like a lag spike or a disappearing car (maybe), except that is better than having super sized maps like Vehicle Simulator where the FPS is 30 as compared to Driving Legends at 60 FPS.

1 Like