When playing EgoMoose’s Teleportation portal demo, I noticed that if your camera is really close to the portal, it looks as if you were playing an old, pixelated game, and so was born the idea for RFOTH.
To achieve this, I used a brick that was stuck to the player’s camera, covering the whole screen, using the Camera:ScreenPointToRay function to get the corners of the player’s screen and determine the exact size the brick should be. On this brick, I attached a SurfaceGui with a ViewportFrame inside that had as CurrentCamera the Player’s camera. From that point on, everything I needed to do was replicate the workspace inside the ViewportFrame, by copying everything and pasting it inside and making sure their properties update, such as position, size or color. Adjusting the “resolution” from that point on was simple, just by using the SurfaceGui’s CanvasSize property.
It’s true, I had to create my own workarounds for some of the missing functionality, such as ForceFields, and as you can tell, there is no Skybox. Instead, I used the BackgroundColor3 property of the ViewportFrame
How did you exactly workaround forcefields? I would assume It’s simulated using a decal that adapts to the camera’s position as gui elements like billboard guis are not visible from viewportframes.
I’d rather not, since it was all wrote in a hurry and a bit of a mess But I’d be happy to help with any obstacle you can’t get past while following my initial post!
Thanks for pointing that out about the music, I fixed it
Edit: The game is uncopylocked and you can check out the code there
ah, i see. I’ve managed to create my own version anyways. Also are you planning on making any other retro games? like maybe you could remake some 3D games from the early 90s or something along those lines.
It’s pretty neat ngl, the only thing that feels disorienting is this kind of uncanny-valley effect of having a high resolution UI with the fuzzy background. I love the concept though, and I can’t wait to see it used for atmosphere in different games!
The focus of the post was the 3D world effect. The GUI can be changed to fit whatever purpose the developer sees fit, and it can be switched for something more “retro”. You could even create the UI in the 3D environment and render it the same way!