We. want. shaders

as a roblox developer, making unique games without shaders is pretty rough. we have to work around a lot of stuff, and things like color correction or post-processing just don’t give us enough control.

i know adding a full shader system isn’t simple, especially since it’d need to run on all kinds of devices and gpus. but i think it’s doable. doesn’t have to be anything like glsl or hlsl, even a shader graph like unity’s would be a huge help and give us way more creative options.

this feels like something that could happen eventually as roblox keeps growing and getting more flexible. it’d open up a lot more possibilities for game dev, and honestly, it’s worth keeping an eye on.

42 Likes

Sorry but the h1b intern they hired to do ALL of their graphics work in 2018 was fired and they don’t know how to update it now.

and they’re too focused on supporting… decade old software?
+ their investors haven’t any idea about this side of the engine, not platform, so it’s far from consideration

It’s not happening

9 Likes

They gotta change their current engine first, because it can’t even support highlights properly without lagging :sob:

4 Likes
almost 2
3 Likes

You mean the same decade old software that has been confirmed they are removing soon?

2 Likes

I really really want shaders, but I don’t think they’re coming anytime soon because of the problems with supporting them. The main one being device compatibility/driver bugs, a lot of mobile devices do not correctly support the graphics APIs they say they do. You’d make a fancy new shader and it’d run fine on your iPhone and PC, but when you release your update you notice a huge surge in the crash rate from some type of Android device, or Roblox detects that a crash is about to happen and automatically disables your shader for that platform, or in a best case scenario maybe revert to a different graphics API that doesn’t suffer that bug.

Even if you aren’t interested in making your game playable on mobile, the majority of the Roblox player base is on mobile, introducing instability to those devices is out of the question, so this still remains the most significant problem barring developer created shaders.

Of course, despite this, Roblox sent out a survey to some developers recently in which they directly asked developers what they would like to see in the future, and “Shader support” was listed as one of the options, so Roblox is definitely aware that this is something that is wanted. It’s possible that they have an idea to get around compatibility issues (OpenGL ES 3.0 does seem very stable on most phones in my experience), if that’s the case, then developer made shaders are likely to be getting worked on soon.

1 Like

Why not just allow shaders for games that are not playable on mobile or force them to be optional?

4 Likes

It does seem like they have a solid idea on how to do this (in the form of a custom, “universal” shader language)

3 Likes

The proportion of people who play Roblox on mobile is huge, according to Roblox it’s somewhere around 80%. I don’t think it’s really practical to add shader support if it would only be applicable to 20% of devices, it would just fragment the user base even more, this is the primary reason why Roblox doesn’t release features that aren’t available to mobile (unless it’s some kind of beta feature).

Making shaders optional is a good solution though and if we do get a shader API I think that’s probably going to be the route Roblox goes, though I would hope that they provide developers some kind of API to provide a priority level for a given shader and also some kind of event/property to know if a shader is currently running on a given device. IMHO - if I make a game with shaders I would want anyone to be able to experience it as it were authored and I would hope that Roblox would give us every opportunity they can to keep a shader working before disabling it.

This is definitely a requirement for Roblox to make a shader pipeline, though it doesn’t solve the issue of shaders potentially exposing bugs at the driver level on some platforms. This universal language still must compile to the shader bytecode for a given platform. Though, with a universal language, Roblox could detect patterns that result in a bug on a given device and either automatically insert a workaround or disable the shader to prevent a crash.

3 Likes

pretty sure 2 decade old software can support simpler shaders. unreal and unity got shader support in the mid 2000s between roblox starting development and releasing

iirc someone on a post i made talking about just this said that david has mentioned wanting to add gpu code support

closest you can get right now is multithreading cpu code, but the documentation is really poor so its quite hard to understand

2 Likes

didnt they remove support for this?

Roblox engineers when they read the millionth feature request for something that’s already been denied like 3 times, given yes for somewhat stupid reasons, but also kind of reasonable reasons, but has also been said that it’ll maybe come, and yeah shader support is a mess.

I said this on another topic, a better way to go about it that’d properly align with roblox’s views would be to do something like Poiyomi Shaders (Unity). Read more here.

tl;dr:

  • Give shader presets for everything with lighting (flat, current, cartoon etc)
  • Maybe do a unity-like material system idk I think its pretty good
  • Its a more realistic approach because little timmy can easily understand it and it doesn’t allow GPU access or use a language that may not be compatible across devices
1 Like

Post processing effects suck. There, I said it.

GIVE US THE SHADERS, WE KNOW YOURE HIDING THEM !!!

we know there are shaders

That doesn’t explain why they shouldn’t add shader support for at least PCs to start with.

You make 20% seem like very little, when in reality it’s lots of millions of people — still MORE than the entire Steam userbase!

Shader support for way less powerful devices like mobiles is way less needed than for powerful PCs. Simply ensuring support on decent PCs would be a game-changer for games.

3 Likes

I think the idea of a graph editor for shaders would work the best, it’s much more simple than just straight code, so “little timmy” should be able to learn how to use it easily. also, why do 15 year old devices need to be supported anyways?

I don’t know but the fact the Mac Mini 2014 still receives support for ROBLOX is nice. Having an ooold minimum spec to try optimize for is always handy.

Yes, they could (and should!) do a beta version of shader support that works on PC, this is how highlights, future lighting, and some of the post processing effects were.

They would still have to design the pipeline around supporting all platforms in the future though, Roblox isn’t going to release a feature this big and then make it extremely difficult to justify using for the grand majority of developers by having it permanently locked to PCs, because in the long term that simply just results in a worse outcome for nearly everyone. I’m not at all sure how you managed to come to the conclusion that shaders are less important on mobile, in some cases that might be true but for gameplay critical shaders the reality is that they are just as important on mobile as they are on PC, in fact, they are often more important to developers because the lower horsepower of these devices inherently requires more thought as to what effects you use and where you use them, literal weeks can be spent optimizing just a single shader for mobile if it’s important.

Also, 20% of Roblox’s DAUs is not close to being more than Steam’s DAUs, it’s not really important but I felt like I should mention it anyways.

To be fair, they also used to deny custom PBR materials becoming a thing. Now we have them. Just because they don’t have the technology to implement shaders without it being a hacky mess right now doesn’t mean it’ll always be like this.

5 Likes

It’s actually very close. At worst a ratio of 1:2, but most of the time they’re way closer.

1 Like