Epic released UE5.1 t'other week, so I thought I'd do a quick branch to test how painful the move would be. Turns out not very, although I did manage to break some things along the way.
There're some changes to header file include orders, which required me to add explicit includes for DamageTypes. These are on the way out (in favour of Gameplay Abilities), but I'm going to cling to them until the bitter end. I've mentioned this before. I will no doubt mention it again.
SM6 for the DX12 RHI broke a couple of shaders. This left me scratching my head for a long while, but I think it was some weird corruption. Everything compiled when I made a clean material with the same nodes in. UE's occasionally weird like that.
Common Input is now the default, which is fine. The replacement front-end I made a few weeks back uses it, and I've been fully prepared to migrate any troublesome UI over. The wins on the design side outweigh te migration pains, and fortunately, the real meat of the in-game UI remains to be built. That said, I struggled with the campfire ToD selection UI: Switching input mode to Game and UI -- which you used to do before bringing up UI -- was flipping the windows build to mouse and keyboard. Common Input/UI would then consume the first button press on the joypad, switch the mode back to joypad, but not pass the press along to the player controller. The fix, it took me most of a day to work out, was to remove the "Input To Game and UI" node when displaying the UI.
Thou shalt not mix old and new...
The move to 5.1 also necessitated an upgrade of Fluid Ninja. Unfortunately, this caused the bulk of my problems.
I've been using an old version that uses Render Targets as intermediary buffers. The new version has a "direct drive" system. It should have been a drop-in -- keeping my "old" Render Target instances going -- but for whatever reason, they all broke. So I took the opportunity to rebuild them, move to the new direct drive system, and make some changes.
East Ley's perf has always been a little lumpy due, largely, to the number of overlap events the MAHOOSIVE Fluid Ninja activation boxes generate. So rather than have mist everywhere, I've not opted to have them over the cairns the player needs to destroy. Not as cool, but I'll ramp it up in the Dungeon instead.
The changes under the hood to Audio compression generated some valuable warnings. Apparently, I had a lot of SFX in the game sampled at 192khz... which is, er, bonkers. Took a while, but I re-sampled everything to 16bit, 44khz. That'll teach me to pay attention to the sample rate of bought foley packs...
Most UE upgrades tend to be trivial, so technically, this was a "big" one, given it required some work on my part. But it's come with some big wins: Lumen, Ray Traced Shadows, Virtual Shadow Maps and Nanite are now on, in all their full-fat modes, by default in Epic and High scalability settings, and I'm still getting ~90fps, at 4k, on my dev rig.