urrently on Roblox, it’s too hard to flatten the depth of a scene without physically moving the camera absurd distances away, which also makes it impossible to flatten the depth of a scene without adverse effects on terrain and texture quality.
To fix this, I propose a new property of Cameras: a numerical value which changes how strong the perspective effect of a camera is. Valid values are clamped in the range 0 <= strength < math.huge and change how extreme the perspective ‘foreshortening’ effect of the camera is. When the perspective depth = 0, the rendering is orthographic (no foreshortening), 1 is default and identical to current behaviour, 2 is double the amount of foreshortening and so on.
Here’s what it might look like tweening this value between approx. 0.36 and 1.43 (I manually did this in game using a dolly technique, which as I mentioned before seriously cripples the quality of terrain and textures):
This will be especially useful for games which want to achieve perfect isometric rendering. We already see this effect used in many games outside of Roblox, such as tycoons, overhead-camera RPGs, bridge building simulators, platformers, puzzle games and much more.
What’s more, since fine control of the perspective strength is allowed by using a numerical value, it can be used for artistic effect in cutscenes, transitions and camera effects, unlocking new potential for developers who want to utilise it. I can already think of ways I could integrate this into a couple nifty puzzle games using perspective as a tool to build puzzles around!
Most importantly, it lets you express your intent to the game engine; instead of telling the game engine to ‘reduce the field of vision this much and go very far away’, we can say ‘decrease the perspective amount by 3x’, which means there’s much less chance of the code being broken by future updates. It also makes the purpose of code clearer without having to resort to comments (which from my experience don’t seem to exist in most people’s scripts anyway)