Dev Log: A little about image resolution
Hello! Today's post is a little later than usual (a day? many hours?). We're moving our weekly Dev Log to Tuesdays for now to make room for Red Embrace: Hollywood posts!
Let's talk a little bit about image resolution. Keep in mind, we are only experienced with certain kinds of 2D art, used specifically in visual novels. Things could be different for other game genres and art types (such as pixel art).
tl;dr some reasoning behind image resolution sizes, 1080p in Ren’Py can be laggy
Nowadays, modern computing devices allow us to lead a mostly worry-free life, alleviating many concerns with device specs being too weak to run the game at its intended size/framerate--we don't have to worry as much about optimization to prevent lag! While this is great and allows us to rapidly create games, it also makes it much too easy to forget about those without the shiniest devices or greatest bandwidth.
We've recently begun to take a little more care about resolution/file size, especially since Google Play does not make it easy to update apps without requiring a user to download the entire game again.
>Made a 2kB update that fixes a couple of typos or locked images
>Please download the whole 400MB file again!
Another reason is that we've noticed our games experiencing some obvious lag, particularly at scene transitions or during background panning. Sure, the lag doesn't make/break the experience, especially in a visual novel, but it does get a little bit annoying.
> Chess of Blades was made in 1080p, but our next game is scaling down to 720p. Ren'Py lags because it doesn't handle all the image layers and game logic very well. It's mostly a constraint of Python/Pygame/current implementations. If we were more code-savvy and had more time on our hands, we would consider digging into the code to see if we could fix it a little bit. But we are not.
>=> Insert gamma crying here, as gamma loves 1080p and ridiculously high res images.
>=>=> Another option would be to explore another game engine (such as Unity, Unreal, or Godot), which uses lower-level programming languages (flavours of C, for instance), but at the moment, it seems a bit like overkill. Especially since Ren'Py already comes with so many convenient, built-in, visual novel-specfic functions.
>=>=>=> Although in general, you can really use whatever resolution size you want for a visual novel...older games at 800x600 look fine for the most part, and 1024x768 or 1366x768 monitors are still in use.
> We commission our artwork at a minimum of 3x the final game size. This allows us to zoom (scale the image) without quality loss, creating a more animated experience (e.g. "looking around the room" or a character coming closer). Higher resolution also allows us to use JPEGs instead of PNGs. JPEGs are much smaller in filesize, but there is some quality loss since they compress the file with fancy algorithms. However, if you start out with Lots-of-Quality, and you subtract A-Little-Quality, the math should work out to having Decent/Good-Enough-Quality. (That's how it works, right?)
>=> Of course, the bigger the better (gives us more options to explore), so some backgrounds we've received are about 10k pixels wide. Gamma rejoices.
Support our future and current projects on Patreon for extra goodies, follow our Twitter for shenanigans, and join our Discord to chat with the devs (and other yaoi/visual novel fans!)