Responding to User Feedback, V5

ROBLOX LaptopsEver since we made the request for your ROBLOX “Top Three,” we’ve been combing through the feedback and responding to your most insightful comments and pertinent questions. This week, John Shedletsky, ROBLOX’s Creative Director and Content Lead, elaborates on a variety of topics, including additional sound capabilities, leveling up, GUI development and ROBLOX for 13+ users. Plus, a short tutorial on CFraming. For previous entries in this series, click here.

Sound

SuperSy: Add more sound choices to ROBLOX instead of picking them out of gear. Like the sound of a river, or the sound a fire crackling. Some advanced players can modify the tunes of gears and make this happen. For others, it would be great to have them readily available.

Currently, our users mine ROBLOX assets for sound resources. While it’s not a designed experience, it is an example of our super-passionate community of game developers finding ways to get things done. We have a lot of ideas for adding better sound support to ROBLOX Studio; I expect to see some of them incorporated this year.

Volume IconCataphract: Add more parameters for sounds, e.g. minimum and maximum hearing distance. It would be nice if I could tweak sounds to match my preferences more. For example, if I have a helicopter engine sound playing, I want it to be heard from very far away. Also it’d be nice if there were more sounds, such as a variety of vehicle engine noises for race cars, trucks, motorbikes and tanks.

Sound catalog/library: yes. More parameters on sound objects: yes. Once we have shipped ROBLOX Studio 2.0, we can think about these things.

Graphic User Interfaces

ChocCookieRaider: Drag-and-drop GUI maker. Instead of setting the position and size through the properties, you could make it so it is drag and drop. It would make it much easier for new players to add GUIs to their game. You would still have to script the GUIs, but this would make it easier to resize and place the frames and buttons.

I couldn’t agree more. A long, long time ago, I programmed in QBASIC. After I exhausted the available memory I could allocate, I switched to Visual Basic. Visual Basic (and now Visual Studio) has a really sweet GUI editor that made it a snap to create good-looking user interfaces and easily tie them to code. If we added a similar feature to ROBLOX Studio, designing GUIs would be much more fun.

Sorcus has been talking about hacking together a plugin that does this. Whether it is feasible today in Lua or we need to add more formal support in the ROBLOX engine is a question we have yet to answer.


Level Upquintonl: Level-Up System. A level-up system would make ROBLOX cooler and more exciting. You could get rewards for leveling up; e.g., 50 Robux or Tix for becoming a Builder.

I’ve always been struck by the idea of levels and their power. Even though it’s been four years since Clockwork interned here, I think a fair number of ROBLOXians know what their “Clockwork level” is.

ROBLOX has a system of social advancement and recognition for achievements, like building awesome games and assets. I’m not sure that a leveling system would have a positive impact on this system. We would hate to hit an achievement level-cap and discourage anyone from progressing further on their projects.


CFraming

Larry5444: Simplified Functions for adjusting CFrames. Although CFraming is simple as it is, I often find that I lose the orientation of the object. Therein, I have to waste time finding what directions X, Y and Z are, as well as which way a Positive or Negative value will move them.

Manipulating objects in 3D requires a fair understanding of Linear Algebra, which is sadly not taught in most schools until college. There are a couple of tricks that all game programmers know that you can easily pick up.

For instance, if you are rotating an object, you often don’t care what the absolute CFrame is in world coordinates. You just want to rotate an object 5 degrees about an axis (to make a spiral staircase, for example). In this case, you can just multiply your object’s CFrame by a 5 degree rotation matrix. In Lua this looks like:

myPart.CFrame = myPart.CFrame * CFrame.Angles(0, 5 * .0174532925, 0)

This rotates your part 5 degrees around the Y axis (spinning it like a top). CFrame.Angles takes radians for arguments, so you multiply the number of degrees by .0174532925 to get radians.

If you find in your code that keeping track of which direction the global axes are (X,Y,Z) is becoming complicated, usually there is a better programming solution that performs the rotations in relative coordinates – i.e., with respect to the parts CFrame and CFrame.lookVector.

Account Names

WolfTiger: Name changing. I made my account when I was 13. I’m 16 now and I think my name is a bit infantile. Also, I was thinking the other day, the physics work well. Really well. Why not let the players make them do different things without having any scripting knowledge? We could have different humanoid values that caused the physics for the individual to work differently!

There have been a ton of requests for a name-changing feature. It’s not something we would want to let users do every day (it would become impossible to keep track of who is who), but it could be justified in limited circumstances.

With respect to custom physics, I believe this is best handled with Lua code rather than us hard-coding many specific scenarios into the engine. Our goal as developers is to build the leanest, most elegant, fastest engine for doing generic operations. This gives our community of game developers freedom to manipulate it as they see fit.

ROBLOX Car

Vehicle Physics

SundownMKII: Fix vehicle-based physics. Sure, I love making my Benz wheelie, and I’d like to keep it that way. However, the problem is that cars using VehicleSeats don’t really do well in the world of Roblox physics unless you drive with a Hopperbin click-and-go tool in a seat (or use something complex, like Wingman8 did). Many of us like to make racing games with good looking cars, but the car-based physics kind of ruin it.

This is actually a confluence of three different problems:

1) All of our vehicles steer like tanks do – we don’t have rack-and-pinion steering, where the front wheels of the car rotate to point in the direction that you would like to go

2) Our hinge/motor joints are too springy to build a robust rack-and-pinion system

3) Even if you did build a rack-and-pinion system, you would have to write custom code in order to be able to control it

The great news is that we are actively working on #2, which is the key to everything. In fact, I saw some videos in my inbox this week demonstrating some very stable motor/hinge joints. Our lead physics engineer, Kevin He, is currently developing these.

13+ ROBLOX Users

Vinya: More user-friendliness towards older ROBLOXians. 13+ users should be able to lock their games from non-13+ users, and be allowed to have more mature aspects to games.

The team has talked about content-rating systems, where you could publish a game as 13+ and 13+ games would have less stringent moderation standards. We are also investigating ways to allow users more control over their communities and social circles in ROBLOX – we might, for instance, allow groups to own and moderate their own forums. I think these things would go a long way toward making ROBLOX more hospitable for older players.