Every so often, we ask our users to let us know what they’d like to see in ROBLOX, then respond to some of the most insightful comments and pertinent questions. This time, John Shedletsky, ROBLOX’s Creative Director, responds to the final round of great feedback from our “top-three” survey earlier this year. He elaborates on a variety of topics, including unlocking right-click for FPS games, weather in ROBLOX, allowing custom part shapes and a higher part limit, and more. Kevin He also chimes in with responses to your physics-related feedback. You can read previous entries in this ongoing series here.
The power of right-clicking
Unlock right-clicking (Vengroe). Right-clicking is how I and many other FPS players are used to zooming the camera. Plus, I’m sure there could be other uses for it.
If you’re in first person, this makes total sense. However, if you are in 3rd person, right-clicking pans the camera in every game I’ve ever played. In the past several months, we have made the events for mouse button 2 fire correctly, so there’s nothing stopping an enterprising FPS fan from building their own gun with this behavior.
Weather (Flashock). Weather (like sun, rain, fog, cold, warm and hot) would make games more realistic; characters would sweat in the heat, shiver if it’s cold. Users should be able to adjust the temperature of places and characters would physically be affected.
Somebody could build a weather system for ROBLOX today using Lua. You could write a script that you pop into your level, and you could use it to change the weather in-game while you are playing. This sounds like a rather useful script, so maybe it is something that the ROBLOX team should write for you and ship with the game. Of course, there are features we could add to the ROBLOX engine that would make in-game weather more realistic. More particle systems, lighting controls, area fog, ambient sounds, etcetera would all allow for a more immersive in-game weather experience.
Flexibility in building
Increased amount of bricks per server (Lucas83). I myself don’t see it being possible without making Roblox into a 64-bit application (RAM issues). I want this feature the most as my friend and I are building on a private server and are incapable of proceeding with construction due to the brick “limit.”
ROBLOX engineers are currently working on scaling up the number of parts that you can have in-game. We think around 500,000 parts is a reasonable target. We’re attacking this problem from multiple directions: first, we have a 64-bit build that is capable of addressing more than 2 GB of RAM. Second, we’re reducing the memory footprint of each and every part, so that more parts fit in the same amount of RAM.
Customizable part shapes (Lucas83). This would allow users to change the position of vertices on bricks and to add in new ones, say making a hexagon or some complex shape, like in most 3D graphic software. This also ties in with the first proposal as this would allow for users to create complex and detailed objects while keeping RAM usage lower.
We’ve talked about allowing users to create new parts that are effectively the union of multiple primitives. This would be similar to welding the parts together permanently. Going further past that level of complexity and we’re basically talking about building a 3D mesh-modeler in ROBLOX, which is potentially outside the scope of our area of interest: building the world’s best online physics-based toy.
5-Star Rating System (Jason5000). To start off, you know what a five-star rating system is. But the way this would work is one person, per game, would be able to vote how the game was, but only AFTER they play it. That way the person can’t just spam the games clicking 5 or 1 stars. Yes, this would fix the problem for the “Relevance” and “Popular” pages. Yes, you can only vote once per user, per game.
I’ve read a lot of research behind 5-star rating systems. Most people only vote 1 or 5. No one takes the time to vote 3 for a place that is only mildly interesting. For that reason, if we did add a rating system to ROBLOX, it would probably be more like the thumbs up/down system that YouTube has. The first place you would probably see this system is on models or on comments.
It’s worth pointing out that ROBLOX has a “favorite” system in-place already, which is essentially a thumbs-up vote. I don’t know that the “top favorites” sort is any better or worse than “relevance” or “popular”. I would bet it isn’t.
Realistic ropes (SCS). Realistic ropes would be a phenomenal asset to adventure games. You could be an adventurer swinging across crocodile-filled swamps in a dense jungle. Or, they could be used to make more highly realistic ships. Or even breathtaking, innovative art.
One of our physics developers, Tim Loduha, prototyped some ropes in January. These work well as a loose distance-based constraint between two parts. The one limitation is that we do not simulate rope vs. rope collisions or rope vs. geometry collisions, but they still allow you to build some cool stuff, like rope bridges that swing when you run across them. The code for these ropes is currently sitting in our source version system, awaiting a time when we can return to this project. Turns out that the most difficult part about shipping ropes is figuring out what kind of Studio tools users need to be able to edit them and making them work well with regard to our other joint types – a project which is ongoing.
|Additional commentary from Kevin He, physics and networking lead: We are developing a rope joint as part of our new joint project and we have made good progress. Not only will you have ropes, but also rods and springs. All of these can be used to form a point-to-point connection between two parts, allowing you to build bridges, punching bags, swings, etc.|
Fix physics glitches (dr01d3k4). Fix issues with collisions and parts going through each other and hinges coming apart — these 2 issues make train building very hard as they easily derail.
Kevin He, one of our physics developers, is hard at work improving our motors and hinges. His new joints are about 10x more robust than our existing ones. They will ship relatively soon.
|Additional commentary, again from Kevin He: The most visible “parts-going-through-each-other” (aka “penetration”) case I’m aware of involves the cylinder shape. We currently approximate cylinders with balls so the collision between cylinders and any other objects has visible penetration. It is a feature on our to-do list for realistic vehicle wheel collision.
“Hinges coming apart” will be partially addressed by the robust hinge feature we’re developing for the new hinge and motor joints. The new hinge joint will be more robust and stronger. It’s a very challenging engineering pursuit to develop an over-rigid hinge that never comes apart under tremendous external forces. We have ideas for reaching that goal and you should expect to see improvement incrementally.
Ability to set density, mass, and “strength” in part properties (Lucas83). This would allow users to customize how parts behave in relation to other parts in game and add a new level of physics to the game. I wish for this to become reality as this would allow for a much more realistic building process and for complex machines to be created far more easily and with less scripting. On the “strength” of a part, it would determine how much mass the part could support before it breaks (splits in half, thus causing for whatever it supports to fall as well). With features like these, entire in-game economies could be created where players gather resources, process them into stronger building materials, and build structures (with scripting to change brick properties, of course). Also, these features should be optional in case a user doesn’t want such complexity in their game.
We want everything built in ROBLOX to be physically intuitive. Thus, if you build a level with a bunch of water, and you build boats out of wood and iron, and the boat gets blown up, we want the wood parts to float and the iron parts to sink. This is what players expect. Therefore, the way that we are going to tackle your request is by making properties like density and strength depend upon the building material you are using. Want to build a sturdy tank? Better use steel. Want a large block that is easy for a character to push around? Better use something light, like plastic. Want it to be susceptible to fire? Build it out of wood.