Hi,

I'm currently developing a Retro Pixel Platform game. I'm looking to throw in as much typical cliche platform ideas as possible. One of the effects I'm looking to create is the old Pixelated screen similar to that which was used on the Snes and even Megadrive and Amiga.

For those unfamiliar, it's a screen transition where when entering a game screen, the screen begins with just a large bunch of square blocks. The blocks eventually get smaller and smaller as they then reveal the actual game screen. The transition can also be used in the opposite way too, gradually making the game more and more pixelated as the pixels/squares grow.

I've not seen any examples of anything like this in Godot and I've no idea if it is at all possible, or if it is, how hard it it to do.

I've used Construct 2 previously and this effect was partially implemented already.

If it's not implemented, I was thinking it might be done by taking a screenshot of the game screen, then manipulating that image, but I could be way off.

Does anyone have an example for me to learn from? Or at the very least, let me know how it should be done.

Cheers!

You may be able to make the effect using a screen space shader and code similar to the sprite shaders demo. I have no idea how hard/easy it would be, but I would start by trying to port the pixel sprite shader demo to work in screen space like the screen space, like the screen space shaders demo.

3 months later

I accomplish my screen transitions in a manner similar to what TT said. It works.

  1. Create a CanvasLayer with a TextureRect child-ed to it.
  2. Place a one-pixel white texture in set to scale to the screen in the TextureRect.
  3. Create a shader material with a ScreenSpace shader encoded it.
  4. In your shader code, use the various demos to get the effect you want (ie. fading, pixelation).
  5. Also, in your shader code, create functions to call to invoke/animate the effects by manipulating the shader properties.
  6. For extra utility, place all of this stuff in an autoloading singleton, so that you can call it with a single line of code anywhere in your game.

If any of this doesn't sound familiar, you've just found a great opportunity to learn some of the most important patterns and features in Godot. ;-)

4 months later
4 years later