Looking Forward in 2020: This Year's Developer Roadmap

Ephemeral DataStores have been renamed to image

This roadmap is incredibly exciting! Itā€™s probably equally ambitious in all honesty, given the unplanned crisis, so maybe plan an extra quarter here.

There is so much goodness in the roadmap. I like the overall balance of investments across so many important areas. It would be hard to pick something to defer on this list.

Given recent work Iā€™ve been doing, Iā€™m excited about the Custom Materials, Procedural Skies, Atmospheric Fog, and Enhanced Vegetation. These all will benefit from Dynamic Texture Resolution and Improved Terrain LOD too.

Iā€™ve already benefited from the LUA Type Checking Beta ā€“ itā€™s saved me tons of time and improved coding efficiency. Itā€™s hard to say what my favorite roadmap items are because they are all so important, depending on your perspective and needs. The recent LUA perf improvements are great, and I am really looking forward to Parallel LUA.

The Cloud Scripts are very exciting if we get it right. There are many lessons to learn from things like AWS Lambda. (Disclaimer: I was formerly a Sr. Dev Manager on the AWS Lambda team.) There are important considerations such as cold-start time, pre-warming, accounting/quotas, security model, multi-tenancy, sync and async, reserved capacity, and developer experience. Lambda did a great job on some of these, but definitely missed on some really important ones. Iā€™d love to get an early architecture review and share feedback on that.

So I love the Roadmap. But I also recommend considering a few other areas for investment:

New Global Config System
I think we need to move towards a standardized config system for Roblox developers to use. This could easily be based on the current Configuration object with their typed values (NumberValue, StringValue, etc.), but with some expanded capabilities like the option for runtime Readonly, richer value constraints (ranges, enums), and expanded type coverage, perf optimizations, and client/server designations. For example, a config entry might be marked as server-only, client-only, server-to-client replicated, or client-to-server replicated (indexed by player).

Importantly, I think we should have a new top-level singleton service for this called Configuration with super-easy access to these config values. This API should also support hierarchies automatically, where named children of a script/module have correspondingly named child nodes in the config tree. Children could normally query their parent, and vice versa, but with visibility restrictions available such as (Private, Protected, or Public) along with permissions (Read, Write, ReadWrite).

New Component Model
(Credits to @RetroGalacticGamer for helping on this idea.)
Packages and Assets are a great start, but we need a new Roblox Component Framework which greatly enhances discovery, access, usage, and management for packages and assets. This framework should support a more advanced policy-based, hierarchical licensing/revenue sharing approach so that a component marketplace can truly take hold for Roblox.

This system needs package management (perhaps similar to Nodeā€™s NPM) to define and manage dependencies better. Also, we need lifecycle management for these Components with hooks for install/uninstall for each Game/Place at design-time with support for configuration and code-generation (think Yeoman) with optional Install/Config screens. These components should also support a common Initialize/Uninitialize hooks at runtime with access to configuration (see above), dependency-based load ordering, etc.

Roblox Components should have a common Manifest with their dependencies (other components, images, sounds, etc), and have a common Policy with required permissions, usage details, revenue sharing policies, etc. Components which meet some core requirements should be able to achieve certification to become Certified Roblox Components where they are highly trusted and potentially usable in all games.

Virtual Workspaces
It would be awesome to create Virtual Workspaces, each with their own voxel-space but which can be spatially embedded or co-located to allow separate Workspace objects. This would ideally allow for different Physics settings, Lighting, etc. in each Workspace. For example, imagine a large Workspace in a city with an ā€œembedded Workspaceā€ inside it. The embedded workspace might have very low gravity, it might have tons of unanchored parts, or it might have very distinct lighting effects.

Such Virtual Workspaces could effectively sandbox parts, forces, Rays, etc., but there would be a few new APIs for bridging between these separate Workspaces. This might enable more scalable servers.

10 Likes

This roadmap is looking to be one of the most exciting roadmaps yet! :smile:

Here are my favorites, and some guesses as to how some of these things may work:
Large Object Stores: Based on the description, this sounds like it could only be compact instance storage. If thatā€™s the case, Iā€™m so so so so so hyped because it could create so many incredible possibilities! Linked with messaging service it could be possible to transmit sections of a game back to a lobby server. If this is the case, and restrictions allow for it, this is the #1 solution to my live spectate system.

Currently I use a custom compression algorithm which guarantees a ratio in 8ths, or 7ths for transmission, and can only ever add roughly 3-4 bytes to a payload. The downsides are that, despite some great ratios, MessagingService quickly hits its limits since I have to often times send up to 20 frames of physics data for even just 10 or so parts. This leads to ~200 velocities, positions, and scale changes being sent, and its a miracle data is even able to be sent at all

Shared Memory: Like said above, if this is the new name for Ephemeral Datastores, Iā€™m hyped. This sounds like it will be amazing for my game as my server sync system is super slow and bulky. Currently I use MessagingService to transmit a lot of server info, however I can only do this so fast, and it leads to very unnecessary, wasteful MessagingService requests being made when I need the server to update. This server info often goes unused in lobby servers until a later point, and its sole purpose is synchronization, so often times extra code is always running. This would allow me to do so much more with my servers and it sounds like this is exactly what I need to expand.

Faster CSG: Depending on how fast faster CSG will exactly be, this may be the solution to my server-killing, no good, but super epic live CSG mining code that had the unfortunate side effect of randomly relocating unanchored parts with Automatic/player network ownership to the origin (??? Donā€™t ask me why this happens, all I know is its related to poor server performance, and only happens in some cases but not others). Also a fun side effect of my server-killing, no good, but super epic live CSG mining code is that it can cause the server to hang permanently because CSG can never finish processing because there are too many CSG operations queued.

Cloud Scripts: This opens up so many amazing possibilities. My assumption is that cloud scripts will run in their own servers, simply without players, and will have access to some unique APIs. Cloud Scripts + HttpService = Interactions between web hosts and Roblox that would previously be impossible. If we are able to use things such as physics within these ā€œCloud serversā€ we could merge their capabilities with the Large Object Stores feature and essentially run user creations ā€œoffline.ā€ All of this is speculation though, weā€™ll have to see what Cloud Scripts have to offer when they are released.

Parallel lua: Faster, more epic code. Nothing else to say.

Transactions: If this means Robux, or uploaded accessories made by the developer, this is awesome, and would allow for some amazing content that could extend not just to your game, but partially to other games as well. Even if it doesnā€™t, this will still be super useful for a lot of games and will offer something to rely on for beginner scripters.

Conclusion: Overall, I think Roblox is bound to become one of the most powerful game engines to exist. Some of these features are absolutely unthinkable even for Unity, Unreal, etc, and Robloxā€™s outstanding ease of use could potentially make it an industry standard for game development, not to mention Robloxā€™s ability to make all of this available to individuals. Previously a majority of this stuff is out of reach to anyone but huge game studios and people with hours upon hours of time on their hands.

9 Likes

Lotā€™s like, mesh deformation, in game screenshots and a lot more!

2 Likes

Exciting. :smile:

I see alot of interesting things being worked on.

3 Likes

image
This update will save many of us while dealing with large parts countā€¦Thanks Roblox!

2 Likes

Thereā€™s been lots of calls for roblox to uncap the FPS. I play on a 144 monitor and 60 is really choppy on it, however I havenā€™t had issues with games breaking so far uncapping it.

On the other side of things I am really looking forward to phase 3 lighting and mesh+bones transformation.

7 Likes

This is by far one of the most BIGGEST and EXCITING Roadmap Iā€™ve ever seen by Roblox!

Cannot wait, thank you for this. I see a lot of requested features such as dynamic clouds and lighting update!
Woohoo! :tada:

3 Likes

That actually stood out to me because games for example like ā€œTrade Hangoutā€ would really lose its uniqueness. As well as the trade community would grow much larger

2 Likes

Very excited for what the rest of this year has to offer! The platform just gets more & more innovative by the day.

1 Like

Iā€™m super exctied for this developer roadmap, thanks to all the staff at Roblox!

2 Likes

I am super excited to see some of these updates come to fruition!

I would like to ask if possible, could you please add some VR stuff to the roadmap?

VR is a ever growing community and it has a huge amount of potential. Its only going to grow more and more as time goes on.

Roblox is a becoming a major player in the selection of game engines people choose to use when creating a game. Adding more VR support will cement there decision to choose this platform even more.

Some stuff I think would be nice to have added would beā€¦

  1. Native support for the 5 major competitors in the headset market. Valve Index, HTC Vive, Oculus Rift, Oculus Quest, and the Microsoft Mixed Reality

  2. Easier to debug. Maybe add the output window inside the VR viewport when playing games in Studio. As of now in order to debug you have to constantly put the headset on, trigger the event, take the headset off and see the error.

  3. More documentation on the Wiki. The API is all there for headset support, its just a pain to implement because the documentation can get a little confusing at times.

Thank you and have a great day!

17 Likes

what exactly will the layered 3d clothing entail? Does it essentially mean full mesh clothing? Iā€™d love some more information on this.

5 Likes

You should file requests/motivations for features in the designated Platform Feedback category, otherwise your requests will almost certainly be lost.

5 Likes

Physics grids are absolutely critical to enabling large exploration games. Currently floating point issues destroy the feeling for these types of gamesā€¦ Iā€™ve been making a flight simulator but am running into this problem, and Iā€™m positive those with space exploration games or otherwise would like to see this enabled as well.

25 Likes

The features on the roadmap seem pretty pleasing and promising, I canā€™t wait for them, so excited.
Iā€™m also learning how to use things such as blender, etc so I can make my own deformable meshes and custom materials.

2 Likes

The graphical enhancements are my personal favorite to come out of 2020, and I canā€™t wait to see them finally implemented. Games are going to have a lot more options and environmental nuances, now, between the atmospheric fog, new cloud system, and shadows created from other light sources.

image
Iā€™m really looking forward to this. I cannot express how surprised I was when I saw this. Multi-threading!

8 Likes

Absolutely! In my game, players have the ability to explore and walk around inside of space stations. The interiors of these stations are positioned ~10,000 studs above the plane where ships can fly at, and even at this small distance, the ā€œshakingā€ is still very noticeable. That being said, I am still quite satisfied with this roadmap even though it doesnā€™t include physics grids, as weā€™ll be getting many, many direly needed visual improvements instead.

4 Likes

HTC Vive user here- you guys can use vr in studio??
Iā€™m over here having to publish it to a game, joining, and printing output to a surfacegui ingame

1 Like