Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

It is not lower quality in a practical sense. Those images are not created in a way to be pixel perfect to begin with. The render engine put dithering in this. It does not matter for quality, if the dithering is preserved or different dithering is re-created by uncompressing a lossy file format.

PNG is ok for a development master file. But for distribution it is misplaced perfectionism.

What should I use then? Renpy takes avif, jpeg, and webp. I already use webm for the animations.

webp or jpeg for static images. The exceptions are buttons and stuff like that. As far as I know, renpy does not care for file endings, so you can exchange images easily.

webp is usually better, but in some constellations jpeg can be better. As a rule of thumb, you can make the file size 10% of the orignal size without visible quality loss. I made that screenshot 5% and had to look for the differences. There is some pixels different, but this does not automatically mean, the picture looks worse. As I mentioned, your rendering software did not create the pixels als pixel art. It used similar filling mechanisms to paint surfaces and "natural" color and lighting effects, as the rendering of a webp/jpg will use.

When using lower and lower qulaity settings, the lossy compression breaks down at the point where you can see distinct squares and before that, when continuous lines get fuzzy, like the ones between character and background.

So you would make a test with different samples in different quality settings. No change in resolution mind you. Only saving the png as a webp with slow settings a variation in the quality setting. You can try a blind test by cycling between two images in a way that you do not know which is which.

Oh, and webp has lossy and lossless compression. You want the lossy, where you can enter a quality number from 100 to 0. But I believe there are better guides about this out there.

And for renpy specifically, you can separate background and characters, depending how you do things. This saves a little and has other benefits, but it pales compared to the downsizing by switching from png to lossy webp.