Feedback on PixelBite "Retro" rendering engine and a demo scene

A project I’m working on



The rendering engine above “PixelBite” is set to render at a 1/3 resolution and is locked at 15FPS for this scene.

I found a method of effectively changing the resolution and frame-rate, This gives the project that retro-look as you can see, this is achieved without any major performance issues and functions on all devices, The method I’m using allows me to layer things above or below the game world (Like the background)

What is the game about?


The game is a simple demo where you can walk around an old school cartoon house, The demo (Much like the scene above) will be locked to 15fps and a 1/3 or 1/4 Resolution for stylistic reasons. The coolest part about PixelBite is the ease of development, Low quality assets were common so its not a big deal if I use poorly made models (I’m not much of a modeler) The performance is also much better as roblox itself can run as voxel with zero light emitters or other things that may cause performance trouble.

Technical details


My team isn’t letting me disclose the technical details and I would also like to keep it our secret sauce for now.
But, I do think listing features is ok, FTF (Forced Target FrameRate), Dynamic Resolution scaling (resolution can be changed between frames), Within roblox (no external software required)

I’m sure more advanced users will figure out our trick as its not super complex, We simply packaged it into something easy to develop with (A module library with a few easy variables.)

I’m mainly curious what people think of the style and wondering about improvements I could make.

2 Likes

cool! Could you open source it or are you not planning to do that?

I’m really curious on how to do it

1 Like

This is really neat, I was planning to do something like this as well it’s 2D but it’s in the perspective of being 3 dimensional.

Well I don’t think it will open sourced, and neither do I think they should open source it, it’s always good to have that one unique game that no one has done or done successfully in your arsenal (especially if you are a small development studio).

1 Like

Fair, I guess leave it up as a secret. Maybe advanced scripters would figure it out.

1 Like

Well hell there is a possibility that maybe they will open source the project, but I wouldn’t depend on it, there are tutorials out there (that’s where I got my information from), if I find anything useful I will pin it here.

1 Like

@koyugaki It’s just an isometric camera angle (low FOV and corner camera placement) and viewport frames set on GUI with the resolution and frame rate cap set really low.

A lot of other people have done stuff similar to this.

1 Like

How do you get that angle of the map? I remember seeing that angle on a game where you teleport to random places lmao.

Ohh so you captured the objects every fps to make it 15 fps right?

You have to use the Veiw Selector tool in Studio and click on a corner angle
image

Then set the FOV to 1 to make it isometric

Then move the camera a REALLY big distance away from the object and you’ve got yourself an isometric camera.

1 Like

Not really, just set the viewportframe update speed to 15 fps.

I’m pretty sure this person just used boatbomber’s viewportframe model and changed a few settings:

2 Likes

This looks so trippy, a bit low quality too unfortunately.

Screenshot 2021-12-31 104857

Also I think you misspelled something lmao.

Thanks though!

1 Like

i cant brain my think hurts

You might have effects light Atmosphere and Depth of Field enabled. Try disabling those and see if that works.

1 Like

Yeah I had DepthOfField on, but I only wanted to see the effect. It was fun while it lasted, thanks for the tutorial! Lol.

1 Like

No problem! Also…

frickfrickfrickfrickfrick i literally cant spell anymore

1 Like

I did this in TypeScript a few months back.



The trick is to put a part in front of the Camera, scale it to the size of the Cameras viewport and then place a SurfaceGui ontop. Then make sure the SurfaceGui’s SizingMode is set to FixedSize. In the SurfaceGui you can put in a ViewportFrame to replicate all regular game stuffs

With the SurfaceGui’s SizingMode, you can control the resolution

(my TypeScript skills were much worse back then, please excuse the horrible type assertions)

3 Likes

I love everyone’s explanations, We did use a viewport however the way we used it is completely different from what you all think.

We Dont have a part in front of the camera, Though that is another performant method if anyone wants to replicate this.

We did some more trickery to get the isometric effect, setting the fov to 1 is a good alternative our fov is actually 8 and we used some trickery to move the camera instead.

We didn’t cap the game framerate, we capped the update framerate

There are a ton of alternatives as listed Above, we don’t plan on open sourcing our version because it differs when it comes to performance due to some complex optimizations (Ex, updating objects based on triggers)

We do not use outside sources with the exclusion of a few librarys.

Hope everyone has a great day B)

Never mind, as stated before I thought you were making sort of a 2d renderer layer out to give the impression of being 3 dimensional.

1 Like