Orthographic Camera Projection for Experiences and Studio

As a Roblox developer, it is currently too hard to create 2D or isometric experiences or to build with precision in Studio, because the engine only supports a perspective camera projection.

In my current project (which is a 2D platformer), we set the camera FOV to 1 and place the camera thousands of studs away. On the highest graphics setting, this works and looks good.

But on automatic and lower settings (most mobile and low-end device users), the entire level disappears because the engine stops rendering distant objects. This forces anyone who plays our game to max out their graphics settings, severely impacting performance.


(You can see this issue in action further here)

Impact

If this issue is addressed, it would improve my and many others’ development experiences by allowing true 2D and isometric games (opening the door for many new possibilities in genres like platformers and RPGs) without fragile solutions and improving Studio building workflows in a similar way to how the orthographic camera is useful in programs like Blender (helps with aligning objects with grids).

Proposed Implementation

The orthographic projection could be implemented as a toggle or enum in the Camera instance to switch between perspective and orthographic views. This property could be accompanied by another property determining the camera’s viewing volume. This would function similarly to how Unity’s orthographic camera does.

Notes on prior requests

There have been prior requests for orthographic perspective, focusing on either the studio aspect or experience aspect. This post consolidates those concerns and also provides an example of an actual 2D game on roblox and how this feature would benefit it. Here are a few of the prior requests:

37 Likes

Perhaps this could be done with GUI instead of rendering a whole 3D scene for a 2D view. Nonetheless this would be very useful, especially for projecting maps.

2 Likes

This approach would work for almost everything except player avatars (viewport frames can be low quality) and lights, so while it’s an interesting idea, a true orthographic camera would solve these issues more completely. Thanks for the suggestion!

3 Likes

I was suggesting going completely 2D. No embedded 3D scenes (viewports).

1 Like

A temporary solution to the problem you have right now would just be disabling streaming in the workspace i think

Streaming is actually disabled already, this is a problem with the render distance on lower graphics settings.

2 Likes

oh, i thought streaming was just universal for all graphic settings but i guess thats not the case

Even if making this a reality would take a lot of time and resources, it honestly could be worth it. There’s not much negative impact to making the engine more robust on all platforms (I don’t see any obvious performance concerns with this, but I don’t know the ins and outs of how this would be implemented either).

More stylized games on Roblox would be a great thing for the perception of the platform too. If games look more different, Roblox looks more like a game platform rather than a game with minigames in it (which a lot of people take it to be).

7 Likes

From what I understand, orthographic is just a different projection matrix, so I don’t think it would be too hard for this feature to get added, but also there might be more to it.

1 Like

It wouldn’t be hard to get an orthographic camera projection whatsoever, as it genuinely takes longer to do the perspective camera projection due to its more complex mathematical functions.

I really don’t understand why Roblox hasn’t just ticked a on or off box, it’s really easy.

1 Like

(cc: @vrs2210)
Some pretty big challenges that I can predict are essentially rewriting occlusion for ortho camera as well as any distance-based rendering calculations. I can imagine some aspects of lighting will need to be reconsidered as well, I can’t be sure what though.

These are all probably manageable, but I wouldn’t say this is one of those feature requests that Roblox is sleeping on for no clear reason like some others. If they started working on this, I can see it taking a while. (They should still work on this though!)

That’s the thing, (I am not an orthographic camera projection wizard, so take my words with a grai nof salt), you don’t need to calculate the distances based on an Orthographic camera, there’s no reason to not just keep calculatig like its a perspective camera, then display it as an orthographic.

It’s the easiest possible solution for the least amount of rewriting, though let’s be frank here, Orthographic camera support has been wanted since.. well the camera first was a thing when Roblox released, yet there’s never been a peep at it.

6 Likes

roblox has a couple thousand employees. there is no way this can take that long to do

No offense…

It barely takes ONE engineer to make this a feature, orthographic camera is already in Roblox in the technical sense, as an orthographic camera is merely a perspective camera without the projection matrices.

And there are many thousands of features that are also “easy” to implement just like this, but doing all of them would scatter efforts and make features that require a lot of work, but are very important, much more difficult to finish.

It is not, the perspective projection matrix is replaced with an orthographic one. “Perspective” is a type of projection, “perspective without projection” is nonsensical.

1 Like

What?

No offense… but that’s a really generalized take, I’m not saying every easy to implement feature should be made, I’m just saying it’s stupidly easy to make.

2 Likes

Support this feature please add since the workaround makes everything a buggy mess.

3 Likes

my project was suspended because it did not have this feature

2 Likes

yes we need this feature soon i keep finding more and more problems the further i go on making my game

honestly pretty surprising this hasn’t been implemented yet, i remember this being a common request when the old roblox forums were a thing.