Archive:

Subscribe:Atom Feed

"Lumo Journal: Week 49"

Posted: 29 April, 2024

Lumo Journal

29.04.2024

Good start to the week:

30.04.2024

Megan Fox wrote a post about their use of the Gameplay Messaging Runtime, a little while back. It looks like a sane replacement for multicast delegates, which I’ve been using quite heavily. Delegates require one actor to bind to another, which means they both need to know of (or have a reasonable way to get hold of) each other. Gameplay Messages use Gameplay Tags (my favourite thing) to define “channels” that anyone can “listen” to. The listener is a callback, that receives a struct – the message – with a payload you can define to be whatever you want.

The existing Ducks bind to the Game Mode’s OnRoomTransition delegate, at which point they say they’re collected and delete themselves. Duck Keys should be collected as soon as their door unlocks, rather than when the player walks through the door.

So, I’ve used the Gameplay Message Runtime to send a packet as the door’s unlocked, and the Ducks listen for it. That’s a lot less wiring up.

I wish I’d known about this earlier. There’s stuff in the game that would be far simpler with this architecture. Too late now, though…

01.05.2024

Pulled down the latest version of Unreal (5.4) from Epic’s Git repo, fought with Git in the hope that it’d remove any of the 100GB of guff that its dumped on my hard drive (got about 50GB back), installed the latest Visual Studio (my god how long does that take…), hit F7, then went away and wrote some code for the Playdate.

I think I’ve turned something off in Visual Studio. It wasn’t close to maxing out all my CPU cores, meaning the full compile took aaaages.

02.05.2024

Most Unreal Engine upgrades have been painless (unlike Unity, don’t get me started) so I was genuinely surprised to find a breaking change this time around.

It looks like movement components on AI controlled pawns require a Navigation Mesh. I’ve got away with using MoveTo without these up to now, and I have one NPC in the game doing just that. Unfortunately, it’s now crashing the game.

I didn’t debug the problem further, the real fix is to treat patrolling NPCs a bit like moving platforms, and have them lerp from point to point (they don’t need to path-find).

There’s also been a change to some of the build settings, which brought up a circular reference between one of my plugins and the main game module. I’ve no idea why I hadn’t noticed that before, so I moved the offending header files out of the plugin and rebuilt. But of course, that broke the blueprints and Data Assets derived from them. Every pickup in the game needed re-doing, which wasn’t as bad as it sounds. Took about an hour.

And then I noticed that I’d checked out 5.4 release and not 5.4.1 release.

For. Fucks. Sake.

Pulled. Hit F7. Went and wrote some code for the Playdate.

03.05.2024

Built Linux, Steam Deck and PC skus, and set about testing.

My Impossible Mission rooms were a little buggy, so I fixed those, and while I was in there, sorted out some timeline checks to make sure doors are locked at certain points. They need to funnel the player in the right direction.

Steam Deck’s, pretty much, solid 60 fps everywhere, and looking good.

The Switch is mostly 30fps, bar rooms with water in, and I’m not going to change those. It looks rough compared to the Deck, but then, it’s going to. I’ve not built the game for the Switch. Steam Deck is my baseline. But it’s playable. Much, much better than the Vita SKU of the original game.

Played a blocker-free run, on all devices, so I’m calling it. Engine upgrade: TICK.

Previous Post: "Lumo Journal: Week 48" Next Post: "Lumo Journal: Week 50"

Friends:

If you like any of my work, please consider checking out some of the fantastic games made by the following super talented people: