Lack of Device Support in Roblox / OSC Proposal

There are many issues that plague game developers in Roblox when they wish to expand the quality and usage of their videogames into various niche markets. For example, no matter how good you make a racing game on Roblox, it will never feel as good as a game like Wreckfest for one major reason:

User Input


Roblox’s Device Support Issues

Roblox has always had an incredibly long-standing issue with compatibility and support for a variety of devices, whether it be a Steering Wheel and Pedal system like with the Thrustmaster brand, or Virtual Reality gear (like the Valve Index).

Roblox just lacks an incredible amount of support for external devices. Currently, there is no way to interact with these devices in any efficient manner, especially within the Roblox Player client, and there is no solution that works without requiring modification of the Player program (which is incredibly discouraged!!).


How This Affects Developers

This prevents developers who wish to enable their games to utilize the devices that they may own, or that others may already own, and allow for those gaming experiences to feel even more authentic than only being able to use a controller, phone, or mouse & keyboard setup.

It is impossible to make a racing game that uses simulator equipment (and also force-feedback), and impossible to make a game that incorporates finger tracking from the Valve Index controllers because there is just no way of reliably sending that information to the client. Developers have already asked for multiple years for Roblox to allow support for these devices, but they always deny it, outright refusing to update their VR and Input services to allow for this level of interaction.


Proposed Solution

OpenSoundControl

OSC is a great, already existing, interface which allows software from any brand or device to communicate between each other by using sockets and a very specific protocol. This is similar to how something like MIDI works, except it allows for more data to be tagged and transmitted, such as floating point values, integers, arrays, and more. The tag of the data allows it to be identified and used like a parameter.

One of the most prominent uses of this protocol is in the game VRChat, where information such as eye position from a device can be sent over the network with a name, like Eye_X, and then any software that transmits this Eye_X parameter, will be able to update its value. You can also use OSC to talk to programs from outside of the application, such as sending FFB (force-feedback) to a Steering Wheel based on terrain conditions.

Caveats

This means that users will have to create or rely upon external programs and software which may potentially contain malware, but support of this system should of course also warn all developers and users about verifying and checking programs before downloading and running them.

However, there should also be a list of verified software hosted on Roblox that users can submit to and install onto their computers to allow for layers of compatibility to easily be added into Roblox without requiring any effort from the user, nor Roblox developers outside of manual asset moderation.


Alternative Options

OSC isn’t the only way to go, but it is one of the easier ways to go given how many applications (i.e. face tracking apps on iOS) support the protocol, and it would allow for software to communicate with Roblox without even needing to be made specifically for Roblox, but there can always be a solution that involves talking to a Roblox tool in specific if there are any concerns about efficiency and security; as long as creators will be able to interact with other applications and devices without requiring direct support on Roblox’s side.

22 Likes

I’d be interested to see something like this! Support for full-body VR & flightsim equipment would open up a lot of possibilities on the platform. Imagine being able to control a plane with a yoke, or dance in VR!

1 Like

Is there any way to give roblox * LIVE * OSC input currently without some garbage webhook? Even if it has to be done unofficially, and even if it would only work in studio i am interested.

I believe they will have to handle it in a similar manner to VRChat, using a connection to a locally hosted OSC server (or an online server if provided with an address)