Removing Outlines

I really agree with this. All the “replacements” are incredibly expensive on rendering compared to outlines and are slow. I really, really hope we get another way to have the outline effect without having to instance things.

4 Likes

Using outlines disables part instancing which negatively affects memory (and likely more than if you slapped a decal or selection box on everything)

It’s not the amount of places, it’s the amount of game sessions.

The color script you posted will over/underflow color channels from 255 ↔ 0 which is what I think nulllifeleft may have been talking about.

I’ve made a version that fixes this and I tweaked it to not change the hue, which should discolor parts less:

function applyPsuedoOutlinesTo(bin)
	local randAmt = 6 / 255 -- change to adjust randomness strength
	local rand = Random.new()
	
	for _, p in pairs(bin:GetDescendants()) do 
		if p:IsA("BasePart") then 
			local h, s, v = Color3.toHSV(p.Color)
			p.Color = Color3.fromHSV(h, 
			    math.clamp(rand:NextNumber(s - randAmt*1.0, s + randAmt*1.0), 0, 1), 
			    math.clamp(rand:NextNumber(v - randAmt*0.5, v + randAmt*0.5), 0, 1))
		end 
	end
end

applyPsuedoOutlinesTo(game.Workspace)

I think that part coloring alone isn’t a very good solution for replacing outlines because the amount of contrast you can get between each part is limited. The higher I increase the randomness to compensate, the uglier the patterns on the tiles become.

Outlines also helped make the seams between parts of the same material look less ugly by making each part seem separate. Without outlines, the sand in my game looks strange:


Selection boxes are the obvious workaround, but there aren’t versions for Wedges or CornerWedge parts, which my game uses heavily, meaning that I can’t use them without distracting lines sticking out of the wedges.

Would it be practical for Roblox to replace outlines with an internal solution based off of selection boxes? If SelectionBoxes were made to support all the part shapes, I think this would be a decently low-effort replacement for outlines that would be adequate for most use cases.

11 Likes

Good riddance. They were always super ugly, with and without anti-aliasing. I remember the uproar to give us options to turn them off.
I’m happy with this pattern of going back on poor design choices for the game client, like outlines + top bar.

Now if we had a similar spirit towards avatar uniformity…
Imagine instead of R16 we had the 6 parts for the body, but bendable meshes…
And also approaching the idea of rthro from the right direction instead of what we have now.
One can dream.

on a side note, i kinda miss bevels

2 Likes

I’m totally the minority here, but I’ve always used outlines as details in my builds. It’s a shame there wasn’t an easy switch between a specific part or outlines could have been used a lot more efficiently. Will there ever be a substitution other than a decal?

2 Likes

The full set of workarounds available right now is:

  • Decals
  • Selection boxes
  • Color randomization (similar to how outlines behaved on low-end)

Neither workaround is a full replacement; for some use cases one of these works fine, for some these don’t. Long term we might have some edge detection/outline post effect as one more thing to consider, and maybe other effects, but nothing short term / this year unfortunately.

8 Likes

I did some work in studio, and in-game. I found results which show SelectionBoxes do not retain all the same physics as Outlines did.

When a selectionbox is adorned to a part, and the part is far away, the part will turn the full color of the outline or just part of it, no matter how small the LineThickness is.

Here are a few basic examples.

Distance Example 1.

Distance Example 2.

Distance Example 3.

Distance Example 4.

Some more are different LineThickness properties.

Line Thickness 0

Example 1.

Example 2.

Example 3.

Example 4.

Line Thickness -1

Example 1.

Example 2.

Example 3.

Example 4.

With this data, I can conclude that SelectionBoxes cannot:

  • Replicate Legacy Outline sizes
  • Reproduce the Legacy Outline color due to size variant, as it was set to black originally along with the SelectionBoxes.
  • Keep game framerate stability, when window is out of focus.

These all impact Roblox gameplay tremendously, and for those playing, streaming, or creating, these instances can make it very hard for a lot of players to do those things on Studio or in-game.

A lot of people considered SelectionBoxes to be a solution to Outline physic’s replacement, but I don’t believe that to be possible now, unless new updates are done to SelectionBoxes.

EDIT:

For what zeuxcg said, I can agree with.

I don’t think the Roblox engine right now can come close to reproducing the ‘exact’ mask that outlines created. When that does come if ever, it’ll be when Roblox has the time to set aside for the project and when the engine has changed in a way that could accommodate outlines.

That’ll take time indeed, as the game engine changes progressively with updates, things aren’t done instantly.

We’ll see.

3 Likes

I never used outlines when building, I know other friends who is also don’t use outlines, the best solution would be for you guys to adapt to working without outlines.

Hey there, and thank you for removing outlines. They were mostly unused by Roblox developers and would make the game look less quality. Thanks for keeping Roblox a better place!

1 Like

I had tried out all of those things and none worked out great for my game.
Decals are extremely difficult to set up on meshparts and took weeks to prepare and setup.
Selectionboxes are cubic, not shaped.
Color randomization is very difficult to set up for my game.

I did figure out another workaround thanks to someone i met at RDC.

It is possible to make outlines with LineHandleAdornment’s, but i haven’t spent time working on making it work correctly, i dont have the time to do it for now.



They act almost the same or exactly the same as outlines, but i dont know everything about it yet.

Maybe someone can take a look at it and make a starterkit for us.

2 Likes

Those LineHandleAdornments look really promising for outlines, although they might take a small amount of lag depending on usage.

They look like they can be rotated, I’ll have to see for myself later. These would look really good for usage on games that used “Smooth” and “SmoothNoOutlines” SurfaceTypes.

Although i’m all for the removal of outlines, I know some games use them for ease of access. Such as Risk Universalis, the removal of outlines has left their game harder to play. Will we be getting some kind of alternative to outlines? If not will we see some kind of API to enable them?

2 Likes

I second this. It’d be great if we had some actual alternative to outlines, as the current alternatives aren’t so great and have weird problems themselves.

3 Likes

Fair update. Outlines are very annoying and they don’t serve a purpose on this platform anymore. I’ve always just turned off Outlines in my games and always saw them as a nuisance.

At the end of the day, Outlines are just glorified SelectionBoxes.

Yeah, I never saw much of a difference between it being on and off. Now if there was cell shading, that’s a different story. I think many people would love to use a cell shading feature.

1 Like

To hop onto a really old topic with some useful insight

You can have textures/surfaces appear visible when building tools are selected, so that you can see the grain.

I’d like to say few things about this change.

Misconceptions in replies

Let’s begin from the fact most modern games do not use them, and absolutely nothing was changed in them by this update.

You see, there was an Outlines toggle which by default was off. If it wasn’t manually turned on, nothing has been changed by this update.

Practically not much.
image
On the left - Outlines on, on the right - Outlines off. Lag in the middle is toggling between on and off.
The game where this was captured has 11k parts and hardware is a pretty old 2012 laptop.
EDIT: I ran an experiment (you can see results somewhere below) and uh, having Outlines enabled actually increases the framerate a bit, at least on my old 2012 hardware.

I know someone who seriously did it because of this update.

Dude, there litterally was a toggle in settings that always allowed you to turn them off. I don’t know if you just hated them so much that made a reply which carries little sense or want to improve your stats.

Maybe there are some more incorrect replies, but let’s move on.

Problem with their removal

I remember how zeuxcg said here that it’s impossible that games would become unplayable after removal of Outlines. The thing is, there is a difference between games which used them as a cool add-on feature and those that were fundamentally built with their count. Second ones get almost unplayable as a core design component is suddenly gone without alternatives.

"Stop whining! There are a lot of alternatives!"

Not really. Let’s take a look at some candidates:

  • SelectionBoxes


    I hope this screenshot explains it all.

  • Decals
    If you used Outlines as a core feature, you probably made your game with bricks with dozens of different sizes. With decals, your outline texture gets stretched across the part and it will look horrible with off-scaled parts, and you have to create a new individual texture for just one type of a part.

  • SurfaceGuis
    This looked promising. You could 9 slice the texture and it would work on any size of a part. But when you look at a building with this emulation of outlines, this happens.
    image

  • “Put a brick texture on a wall, god damn it!”
    This doesn’t work when Outlines were applied to something that isn’t a wall.

Also, I don’t know why, but Outlines improved quality of ShadowMap shadows:
image image
image image
image image
Enough of these comparisons. Let’s move on.

Possible replacements

I doubt, but I hope there will be an official replacement for them, as some games (as I said earlier) cannot live without them. Here are some replacements I thought of:

  • OutlinesPlastic material
  • Outline post-effect (I think this would be better than a material, since some other materials also produced them, and with OutlinesPlastic this behaviour will be gone)
  • Just a plain rework/upgrade to solve problems stated in original announcement
  • Other (reply and I’ll include)

Thank you for reading. I’ll be even more thankful if a staff member replies to this.

19 Likes

Once again, pointing out perf testing issues: This test you did doesn’t show anything because it’s capped at 60fps both with outlines on and off so you would not see a difference in the graph no matter how much worse outlines are performing. If you actually want to see the difference you will have run an expensive enough place that the game is running at sub-60fps in both cases.

3 Likes

Decals / textures are extremely difficult to set up on blocks, my 3D modeller was working for weeks on trying to figure out how to set up outlines properly while being able to paint the part / etc. We ended up with a visual glitch which was useless, even for just a building mode.

1 Like

Try setting up custom parts with outlines or wedges, those are extremely difficult to set up with outlines, you’ll forsure encounter a visual issue from far away.

2 Likes