Highlights now support Outlines on Mobile [Client Beta]

So to sum it up seems like that you guys are pretty happy! :slight_smile: good

There are 4 requests for highlights. All of which our team is tracking and are on our radar.

  • Increase the limit of 32 highlights per workspace
  • Anti aliasing
  • Thickness setting
  • Fix some leftover bugs

I am an engineer (who works on this) so I can answer from the technical standpoint. The product side you’ll need to go with devrel :).

Increase the limit of 32 highlights per workspace
This is engineering decision more than product so I can comment freely. At this point I can only promise that we will revisit it.
To those who thinks that this is a as simple as changing one number somewhere in the configs: It is not and it has to be carefully considered. Our lowest end devices for instance can handle only 32 highlighted objects (opengles 2). There are other issues with performance and graphics api overhead that increasing the limit would lead to.

Anti aliasing
Current highlights are not compatible with traditional AA (or MSAA). I will ask product to track this request, if they are not already tracking it.

From engineering side: It may be possible for desktop high end. Not for mobile and not for medium/lq. However not sure how much how much product support there is for it. Even I think that we have bigger fish to fry :slight_smile:

Thickness setting
Thickness is currently impossible to be set on mobile, due to the heavy optimizations. I think I’ve mentioned this couple times. We developed completely new algorithm especially for mobile to actually support highlights (outlines mostly) correctly.

So don’t expect thickness control being added. It is a technical limitation

Fix some leftover bugs
We are on it. If you have bugs please file bug reports. Bugs gets to the people who work on those systems. If you file highlights problem it will get to me and I’ll have it on my radar

17 Likes

I think you are talking about older Iphones here that still uses OpenGL ES2 instead of Metal since OpenGL ES2 support for Android has been deprecated earlier this year and now the requirement is for Android devices to support at least OpenGL ES 3.0 I still don’t understand why such old devices such as the Iphone 5s are still supported on Roblox. They probably can’t even play any Roblox game smoothly at graphics quality level 1 so why bother supporting them? In addition to that I doubt anyone still uses devices that are as old as these because they’re literally unusable in 2024. These small things are really what’s holding back Roblox honestly.

If I can play most Roblox games smoothly at maximum graphics quality level 2 or 3 on my low end Samsung Galaxy M12 phone that’s been released in 2021 then I can’t imagine how can these old devices even boot up a Roblox game. This is a device that supports Vullcan 1.3 and runs Android 13.

6 Likes

Oh, that is great to hear. Thank you for providing feedback on why anti-aliasing has not been implemented yet.

I really hope it can be added sooner rather than later.

4 Likes

Really wish you guys could somehow remove the highlight limit, but i understand, having way too many renderers just to make a cool effect, is not gonna be good for mid pcs or low end devices.

3 Likes

This is a great update for mobile user. Maybe It would have been better if Highlight instance support highlighting invisible or transparent part. I’ve been waiting for these feature and hopefully my suggestion is heard.

4 Likes

W, not gonna lie i didnt even know there was a difference. :tongue:

5 Likes

The highlight limit shouldn’t be a problem at all, you just have to use them as groups instead of individualy… like instead of having 31 single objects with a highlight you can have 31 highlight group of multiple objects.

Different highlight inside each parts

Single highlight inside a model - each parts inside this model

Capture2

Using this, you are able to highlight the character of +100 different players, a lot of pets or items drops/loots on the floor with a different highlight color depending of their rarity, or even the entire map… which are the primary use case of highlight, there is not that much use case for it, just make sure to use it sparingly to avoid performance issues.

5 Likes

What if you just add some property called “AffectTransparency” or whatever name is should have and as it name says if it’s true then Highlight should affect parts which has Transparency > 0, and if it’s not then it shouldn’t?

In my opinion this bug is really weird. Tower Defense Simulator has enemies called “Hiddens” and it’s model is transparent. Just because of the Transparency the Highlight which should appear when you hover mouse on enemy model is not shown. Some players may find it as bug which developers should fix, but they can’t, just because it’s bug of the game engine itself.

And back to “AffectTransparency” value, I guess that it should be enabled by default. Yes, there are games which rely on this bug, so probably the solution here is to make only new instances have this feature enabled by default and leave already created ones disabled. I’m not sure if you are able to do like so, but it would be really great decision in my mind.

3 Likes

You do not understand any of the technical details behind what you’re talking about. The limitation is entirely based on hardware / device graphics API limitations. Having more in the current architecture is probably completely impossible, or else going above 32 incurs a prohibitive performance cost. This is not a “5 minute” thing, it’s more like 5 months, minimum. I think they are better off spending the time letting us group highlights into the same “layer” so we can stay under the limit, rather than trying to do the impossible for a likely severe performance cost. The developer benefit would be higher and actually possible to deliver. Stop with this personal “Roblox bad grr” narrative, there is a good reason behind everything.

7 Likes

Any updates on view distance? It could help a lot with performances and even highlights not in distance could not be rendered saving up space.

3 Likes

Some people may rely on this bug, but it can be easily fixed with an additional line: if part.Transparency > 0 then highlight.Enabled = false end. You can also turn it into an event using GetPropertyChangedSignal("Transparency"). However, at this moment, no amount of coding knowledge can make a transparent object working with highlights

3 Likes

It would be very helpful for highlighting a lot of separate instances for shading and other effects!

My current workaround is to make a model with the set outline parented to it, then parent a ton of objects under it so it looks like multiple highlights without going over the cost of one.
I mainly use this for a type of projectile in one of my games that way it can be spammed and not encounter any weird behavior if it hits the limit.

It’s very nice to use for things like player outlines, platforming, selections, or (in my use case) projectiles! All of these usually appear in larger numbers than the current limit allows for though, so most of the time you need clever workarounds to have them all be visible at once.

If you could look into making a lot of highlights accessible (if they don’t lag and what not) a lot developers would probably greatly appreciate it!

2 Likes

Speaking of developer push, the feature request to extend lighting range beyond 60 studs has existed since 2017, and got a single staff reply. Nothing has been said or done since then and there’s plenty of examples of the pains of having to work around and create ugly looking hacks to “extend” beyond the current limitation.

I know this isn’t related to hilights in any way, but there’s been plenty of developer push around many things that are never addressed.

5 Likes

Wow thank you! Was gonna use them for my game earlier but worried about mobile!

2 Likes

I’ll do anything for anti-aliasing, please

3 Likes

Any time I’ve thought of needing more than 31 highlights, my cases would be solved if we could just have one highlight affect multiple objects without them being grouped under the same model. I’m not sure if this is feasible right now or not, but it would be really nice to have.

5 Likes

I already use this approach to avoid the issue, The real issue comes if, for example, you try to highlight only the head of each player for more than 31 players

2 Likes

You can clone the head, put it into the highlight model, and weld the clone to the real character head.

2 Likes

Thats just more work on the physics engine and the memory. And dont forget about how unintuitive that is compared to simply removing an arbitrary limit.

2 Likes

I wish you guys could just start rewriting the rendering engine piece by piece so you could support more features with better optimization, but I get it. Rewriting a rendering engine for a platform as large as Roblox is a HUGE task! It could even potentially put other useful features on hold for quite a while, or at least delay them a bit. (Not to mention how hard it might be.)

That aside, great update to highlights! Also love to see you guys are considering all of these requests. I know Roblox gets bad rep for not listening to the community, but this clearly shows otherwise.

Can’t wait for future updates to not only highlights, but other things too!

5 Likes