Username: VitalWinter
(Am I doing this right? Feature requests template wants me to write my username…?)
User Story: As a Roblox developer, it is currently too difficult to localize levels within a single place.
Use Case: A social game with stores and buildings downtown. When you enter a doorway to a building, you are put into a different level where you unload all the geometry from the previous level, and load in all of the geometry of the new level. The new level would be the interior of the store, which could be much larger on the inside. To the player entering the new level, all that changes was the visual workspace. The interface and connection to the server stays the same. The people that they are playing with are still in the same server.
Explanation: Roblox currently has games, which are a collection of places. Places can be considered a form of levels or maps, but using them this way comes with some other baggage. My feature request is to have actual levels within a place. Ideally players would be able communicate with eachother, see eachother in menus, and only when they are in the same level, see eachother’s characters.
Currently, to implement similar functionality as a developer, you have two options.
- You can hackishly use Filtering Enabled to block clients from replicating changes as they move models from storage to workspace locally. The price to doing this is that the server cannot validate any interaction that a player might be doing with the locally loaded level, and lots of features within that locally loaded level are not supported, such as physics. It would not be fun or easy to locally make other characters invisible that aren’t in the same level.
- Have all of the levels in workspace all the time, and add a skydome around each level so that players cannot see other levels. The problems with this method are, an incredible amount of unnecessary work on rendering, and floating point imprecision for levels that are far away from the origin. This method also does not allow for levels with no edges or limits.
I don’t know what the solution would be, but I am thinking along the lines of multiple workspaces acting as levels within the same place.