Archive:
Engine upgrade day!
UE 5.3 is out. I might as well upgrade now (while I’ve got all the platform stuff in my head) and check that everything’s working. I wasn’t expecting to spend an entire day on this, but I ended up compiling the entire toolchain multiple times (derp!) and even on a 32 thread CPU, that takes “a while”. :(
Anyway, I’m running on the new engine. But Jump isn’t working?! Best I can tell, something somewhere is consuming the input, but I have no idea what…
Went through the entire UI setup, every input action, the player controllers for the front-end and the main-game, the input mappings, and hunted high and low for anything with a “Consume Input” flag. Jump’s still not working. Stepped through the code line by line and… nadda. On a whim I rebuilt the input mappings and boom! It started working.
WTAF?! That’s 4 hours of my life that I’m never getting back.
Swapped the Switch renderer from ‘Mobile Deferred’ to ‘Desktop’ and made a new test build. It looked worse, and was less performant, so… Mobile Deferred it is.
Made a new PC build, and a Linux native one for the Steam Deck, so touch wood, I’m back to where I started.
Some of the player character’s animation blends pop more than they used to, but that’s the only glitch I’ve seen.
If anything’s gonna break during an engine update, it’s always animation related stuff…
Added a little cut-scene to the main deck, showing the moving platform being unlocked when you hit the power button. The Room’s checking with the Game State
to make sure it’s in the right configuration when you enter / exit, and that the moving platform’s doing its thing.
Created a new type of follow cam that’ll ignore vertical movement unless you’re locked onto a moving platform. (I’m still trying to minimise camera movement).
The idea for the moving platform is it’ll carry the player up to the next room, but I’d not thought particularly carefully about this would work… The only room transition I have atm teleports the player from one location to the next. This is a much slower transition between rooms…
I figured I could make a trigger, place it in the path of the moving platform, and use that to begin the transition between rooms. The moving platform applies a Gameplay Tag
to the player, so its removal could “complete” the transition, via a delegate, bound to the Game Mode
. This would mirror the existing transition reasonably closely (same code, ish), just replacing timers with delegates. The Room Controllers
would take over as normal and everything would work.
(Except, maybe, the visual transition of rooms coming in and out would be far too quick…)
But… I hadn’t considered that the moving platform “belongs” to the room it’s spawned in. When the new room is entered, the old one resets itself, making the platform ping back to the original location. Rooms reset when you leave them! OG Lumo design choice!
So, I could add a mechanism for dynamic room objects to transfer between rooms (might be useful) or, I replace the moving platform, and throw the player up there.
I think I need to do the former. Do it properly, and sort out a slower visual transition for the rooms. This seems like the sort of thing I’d re-use.
Went to the pub to cogitate.
Decided to do things properly. Extended the Room Controller
interface with a set of methods for slow room transitions, and gently tip-toed through the existing code to implement the new interface with minimal changes.
A long, detail oriented day, but I got everything working before I had to jump on a conference call. And it’s tidy. And there’s a small chance that I might remember how it works in a week. (Future Gareth: I didn’t…)
Cameras and Dynamic Objects can transfer between rooms, rooms can slowly fade in and out, and the test rooms appear to be re-entrant.
The only thing that’s left: the camera does a little pop when its origin is switched over to the new room. It’s tiny, could probably ship with it, but it’s exactly the thing that boils my piss. I’ll dig into it later. (Future Gareth: I shipped with it, despite digging into it multiple times. Gngngng)
Friends:
If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: