Godot Version
4.21
Question
Hello, does anyone have experience using GoDot to program 8-bit type platform games (a Jet Set Willy clone)? I just need some advice how to start.
Thanks. Lee.
There is different ways you could approach making an older-style game. The question is usually how authentic you want to make it.
For example, one question would be if one wants to allow the foreground move off the background’s pixel grid or if everything should be displayed on the same pixel grid – that would also usually be more authentic, but can be more limiting than using other modern engine features. Also one could use modern engine features and compress the visuals into a pixel grid to make it seem like it is a true pixel game.
If the style of the game is no issue, the next question could become what game design style you prefer yourself. Would it bother you to draw every geometry individually? If not you could use a TextureRect and draw an ImageTexture onto it (see the code below with $rect being of type TextureRect).
var img = Image.create(WIDTH, HEIGHT, false, Image.FORMAT_RGBA8)
func draw_the_game() -> void:
var texture = ImageTexture.create_from_image(img)
$rect.texture = texture
If that is too retro one could use regular Godot scenes too replicate the same feel and render each scene as its own pixel-perfect graphic. Use Sprite2D (which inherits from CanvasItem) in order to set its texture_filter property to TEXTURE_FILTER_NEAREST.
Another technique and approach would be to use scenes and then apply a post-processing pixel shader to the game in order to make it look retro (for example like this shader does).