Tagged gamedev


THERA 3 dev log - Screen resolution


The first proper devlog for my game engine (the Ultraviolet Engine, as I call it) in ages~!

So, if you've played THERA 2, you probably noticed the window is locked to 800x600, with both resizing the window and making it go fullscreen disabled. I made that change ages ago, and I never really noticed it until recently, when I replaced my laptop and discovered just how tiny it looks on a screen with a half-decent resolution.

The truth is that older versions of the engine allowed you to change the window's resolution to a number of different presets, as well as going fullscreen, but... well, frankly, it was kind of broken, lol.

Here's what happened: Past!Kyou, in an fevered state of artistic perfectionism, did not want to have to scale the screen or their pixel-perfect sprites by a non-integer factor. With pixel art, scaling up by whole numbers is fine, with a perfectly clean result; fractional scaling (e.g. 1.5x zoom) with the nearest-neighbor scaling method used for pixel art, however, mucks up the lines and edges slightly. It's not really all that noticeable or significant, in retrospect, but past!Kyou wasn't having any of it.

Instead, they opted to bake in a fixed set of supported window resolutions, and for each of those resolutions, have different scaling factors and heuristics for each part of the rendering pipeline—the backgrounds, the isometric map, the portrait sprites, the textbox, etc.—that the engine could use to reposition everything without ever having to scale up the assets by a fractional value. What's more, they wanted to let the player change the screen resolution on the fly while the game was running, whenever the menu was accessible.

In addition to it never reaching a functional state, implementing this idea was very tedious and extremely painful. I won't bore you with the details of how and why it's broken; suffice it to say, I just ended up dummying out the screen resolution options in the options menu and left it at that... until now~

By making use of Love2D's canvas functionality, I've gotten the UV Engine set up in such a way now that it'll draw everything internally as though it's running in an 800x600 window, but will automatically scale everything up to 1200x900 or 1600x1200 depending on the size of the display it's running in when the canvas is drawn to the screen. It was SO much easier doing it this way, and despite the fractional 1.5x scale factor for the 1200x900 window size, all of the graphics look just fine, heheheh~

A screenshot from THERA 1, upscaled from 800x600 to 1200x900.  Some slight distortion of the finer details on the
textbox lettering's font and the sprites of Hera and Despera is visible.

I'm considering adjusting it to make the exact resolution and level of scaling user-configurable, as well as figuring out a way to leverage this approach to draw the game in fullscreen; but for now, I'm leaving it like this. I still need to finish making assets for THERA 3 proper, after all~


Comments on comments


I keep finding myself writing these blog posts in the dead of night, right before I go to bed. I've been so preoccupied with working on the website during the day that I end up putting these off...!

Even though I'm tired, however, I want to say two things:

  1. Apparently, this website template supported adding comment sections to posts? I might experiment with it later on, though I might also take a similar approach to deaddeaddeath's website and have links to off-site comment boxes for my games or other pages of interest.
  2. As ever, my seasonal depression brings out the worst in me. As happy as I am when I see my friends and fellow artists receiving tons of praise, attention, and glowing comments about their work, some insecure part of my mind, inflamed by Winter's touch, sulks with envy: "Oh, so we get barely so much as a trickle of views on any of our stuff even on release, while they all get thousands of downloads and dozens of comments about how these games changed the commenter's whole personality, cleared up their acne, opened their third eye, and made them curl up on the floor while crying and vomiting profusely for hours? Are all of our games just complete shit by comparison or something?"

Expanding on the second point there, obviously I recognize that comparing my games to those of my friends is like comparing apples and oranges. We're clearly telling very different types of stories, and a great deal of my work is as strange and inscrutable as anything else about me, while their games are vastly more grounded in reality (and thus vastly more accessible, say, to the average Itch.io commenter). And in a community of predominantly queer and trans folks, it's to be expected that the stories centered on widely shared queer and trans experiences will get far more attention and acclaim than the Kyou System's opaque attempts to recreate the more lurid images of their nightmares.

I also have to consider that a huge proportion of the traffic going to their games, especially on Itch, comes from their games both featuring and being tagged as containing adult content. This fact also helps to account for the difference in the number of comments, since a significant fraction of them appear to come from people who stumbled across these titles while looking to masturbate and ended up getting blindsided by the emotional depth of the storytelling and characters. Meanwhile, I haven't released any sex games yet, so I don't see any of that traffic, which necessarily means my work will systematically receive less attention on Itch.

Not that it really matters all that much at the end of the day. These intrusive flare-ups of insecurity aside, I love the work I've been doing on my projects; and even if my games are never included alongside those of my peers in the "Awesome Games / VNs You Gotta Play Right Now" recommendation posts, I'm going to keep making them anyway, heheheh~

And I truly am delighted that my friends' works are getting so much praise! In all honesty, they deserve every last bit of it: They've all improved so much as artists even just in the time that I've known them, and they've been releasing some truly excellent VNs lately! The gratification of my ego is infinitely less important than the fact that the community is growing and everyone is supporting each other as we express ourselves together~