Archive:

Subscribe:Atom Feed

"Lumo Journal: Week 17"

Posted: 04 September, 2023

Lumo Journal

04.09.2023

Slight change of tack: This week’s focus is on the Switch build, and actually getting it working.

Rather than throw a map at it, I’m going scaffold the game flow: Hardware scalability test → Splash Screen → Main Menu → whatever map I’m currently working on.

UE’s scalability stuff is great, but it needs fettling, per-platform. Since I did a lighting pass (last week) I figure it’s probably safer if get the scalability configured, roughly, now, have all platforms working and test as I go. The Switch, running at 30fps, will be the low-end baseline. I suspect the Steam Deck, at 60fps, will be somewhere in the middle and my Dev Rig, at 144fps, will be the top-end. Although, who am I kidding, I’m blatantly going to give the high-end all the beans. If it mostly stays above 60, it’ll be fine…

Anyway, I need a bare-bones UI to move between screens, and get into the game. I setup the various Data Tables, Blueprints, and widget styles for buttons & text that Common UI requires. The Main Menu is showing a language select screen, but I still need to be able to move from that, to the Main Menu.

I like Common UI, but I’ve not memorised it. This is only my second play with it. I prefer having re-usable, styled elements, but it’s a pain in the arse to work out why style overrides aren’t happening, or things don’t appear as you’d expect. And, as ever, the only useful “documentation” is a three-hour video from Epic, that’s slightly out of date. FFS Epiiiiiic!

Today I hit one layout problem that took me an hour to fix (derp), and for the life of me, I couldn’t get the Common Action Widget – an image that’ll automatically display which joypad button you want the player to press when elements of the UI are highlighted – to display anything. No, it’s not the “name of the joypad” gotcha. F##k only knows what it is.

I’m glad I rolled my own Action Button Icon thing for the in-game interactions. The menus are going to have to live without it.

04.09.2023

Got the language select screen transitioning into the “Main Menu”, and the “New Game” button loading into the Hub level.

Hit a problem that I’ve seen with Maenhir: when the game loads, you have to move the joystick or hit the D-Pad to get the UI to start registering joypad input. If you press any face buttons, they’ll be ignored, which is stupidly annoying… It took half the day, but I finally worked out that the “Introduction to Common UI” video was wrong. Because of course it f##cking was.

I could go into a lengthy rant about the evils of “Videos As Documentation”, but I’ll spare you. Imagine a sweary mockney, swearing.

Anyway. I made the first Switch build!

Which promptly crashed.

Upgraded the engine to 5.2.1, installed the newer Switch platform files, and left everything to re-compile while I wandered down the pub.

05.09.2023

The Switch version is still crashing, and it’s a mount point / file IO crash with zero hits on Google, or the Epic forums. I’m on my own.

Made a clean, empty project, recompiled the engine, built the new project, sent it to the devkit, and it worked. Er. Phew! I guess…

So, nothing wrong with the setup. Must be my code, or a plugin.

I’m using the wonderful ImGUI as a tweak tool for settings in Development Builds. I’d thought it was #define'd out of everything other than the Win64 builds, but I’d forgotten that plug-ins load and initialise regardless of how you use them. ImGui was trying to grab a texture from somewhere, causing the explosion that caused the crash.

It’s possible to add a list of Supported Platforms to the plug-in config file, but what took the better part of the day was getting UE to recognise this… There’s a weird priority overlap between XXX.build.cs and what the Plug-in config says. Solved it, for now, by removing the ImGui plug-in entirely… Full clean builds are ~10 minute a pop, and I’ve done a lot of them today.

But here we are, Linux native on the Steam Deck, and the first Switch build:

The first pass at the scalability settings resulted in a rock solid 60 on the Deck, and a rock solid 30 on the Switch. Tweaking the device profiles only got me to 47fps on Switch (in handheld mode) so it looks like 60fps is off the table. Bums. Oh, well.

08.09.2023

Spent the entire day doing one of the settings screens, and now I’ve lost the will to live.

Curry.

Previous Post: "Lumo Journal: Week 16" Next Post: "Lumo Journal: Week 18"

Friends:

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