Archive:
With this game I’ve tried to place UI elements in screen-space, so button presses are contextual as possible – action button icons hover over their actors, etc – but I can’t think of a tidy solution for the paint pickups… so… I’ve added an icon to the corner of the screen.
I thought I’d be able to show the Wand’s charge in screen-space, aligned to the character, but it doesn’t look as tidy as I hoped, and worse, I can see it getting in the way if something complicated is going on. So, I’ve put that in a corner as well. Not my finest graphic design hour, but, clarity trumps.
I also added another action button icon to the player character, so the first Wand Charge you pick up, per level, shows a little reminder about which button to press. I might need to change it to something specific, like the first three Wand Charges you ever pickup, but I’m hoping it’ll act as a reminder for people who’ve not played in a while, rather than be The Training Aid.
Flushed with my earlier UI success(!), I figured I’d get up today and kill two birds with one stone: Add a pause screen, and wire up a gamma adjustment slider…
I develop with an ultrawide monitor. It’s got a reasonable colour gamut, but it’s much lower contrast than my old BenQ, so I have to be careful. The Steam Deck looks markedly different to both, but is basically in the same ballpark as the BenQ. The Switch (OG, not OLED) looks like someone turned out the lights, so right now, I tweak this with per-device profile settings that change the r.Gamma
console variable. That’s less than ideal, as it’s locked in, and I’m guessing the OLED Switch will be too bright… So, the player needs to be able to tweak it. And, tbf, I wouldn’t mind giving it a nudge when I’m playing on the OLED downstairs. You can’t please all the monitors, all the time, as the saying goes.
But now I’m looking at it, is the engine’s r.Gamma
cvar the way to go? Does it hit the tone mapper? Or is it some old, residual thing? I can’t be bothered to find out. Instead, for my pause screen, I’ve hooked up a slightly convoluted chain of things to tweak the base Post Processing Volume
’s global gamma, which I’m assuming does go through the tone mapper, and does what it says on the tin. So far, so good.
All the UI in the game is using the new CommonUI
stuff, with EnhancedInput
driving the pad. The relation between the two is supposedly still a little beta, but I’ve had no problems with either, up to now. And sure enough, I could pop open the pause screen, hook up my sliders, get the gamma and various volume controls working, then pop the screen off the UI stack… At which point joypad control didn’t return to the game.
Er. No idea. Thanks, Epic! Thepic…
Hacked together a fix using the old Set Input To xxx
nodes, and a Focus On Gameviewport
, but burned several hours.
Timing. Was given a milestone build to review for “another thing”, but it meant bouncing my Switch eDev (the development kit) up to a new SDK version. Which meant installing the newer versions of Nintendo’s package manager, which then couldn’t upgrade my existing dev environment. Flattened that, installed, then set up, a new env, updated the firmware on the eDev, and carried on with the review (two hours later)…
Annnnd guess what. I can’t compile Switch builds of Lumo because some headers have changed. Or I’ve missed a tick box in the new environment. Or something. FML.
Pulled UE 5.4.2 from Epic’s Github, installed the new Switch plugin, and spent the rest of the day *Compiling All The F’ing Things.
And I still can’t build the Switch version.
On the off-chance, I dropped my Switch SDK down a version, then recompiled all the things. Finally… that did the trick. I managed to compile the Switch version. I also discovered the EnhancedInputPlatformData
blueprint, which lets me properly rotate the buttons on the Nintendo Switch. Hurrah!
Friends:
If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: