Screen objects that can be tied to a Camera or add an option for ViewportFrames to have real time lighting

Currently, as a Roblox Developer, it’s impossible create a functioning camera system that can project onto a screen, keeping in-world lighting intact.

You can sorta do this with ViewportFrames, but they lack the functionality to make it convincing.
My suggestion is for a Screen object that can go inside of a SurfaceGui (or a normal ScreenGui).

Some usecases for this would be: Portals and Security Cameras.

The other suggestion is to of course add an option to ViewportFrames to use in-world lighting. But I’m also pretty sure ViewportFrames were never intended for this use case anyway.

Perhaps either feature can be limited to a set number of “screens” like Highlights to help with performance when needed.

19 Likes

a game from 2007 has this feature and it ran on computers from that age. i really hope that roblox won’t use the “it will run bad on phones” scenario

5 Likes

Half Life 2 has the camera-feature, and it came out in 2004.

Roblox has been more open about more performance-intensive stuff recently, so I’m hopeful they’ll also consider this.

3 Likes

i was talking about portal that always uses this feature, but yes even that

4 Likes

I completely agree with your points regarding the limitations of ViewportFrames for functional camera systems.

In addition to what you mentioned, a major bottleneck is the need to clone and update large parts of the world every frame to simulate the view. This quickly becomes unoptimized and causes significant lag, especially in multiplayer games or large worlds.

What would be ideal is a system that can replicate the world visually in 2D for these “screens” or camera displays, without requiring full cloning each frame. This would allow mirrors, sniper scopes, security cameras, or portal views to function smoothly and realistically, while keeping the game performant.

Limiting the number of these replicated “screens” like Highlights, as you suggested, would also be a good way to balance performance with functionality.

4 Likes