Now that UE5 is officially out, I decided to take some time to try it out. However, rather than just creating a new project to test stuff out, I decided to test it on one of my projects, Just Let Me Go. The reason I chose to use this project is because some of its features could benefit from the new features in UE5, for example Lumen and the new 3D spatial audio system.
The UE5 installation is big. The core components take 36Gb of space and, depending what additional content you add, you may end up with almost double that amount. Personally, I disable stuff like Android and iOS because I don’t use those, since I don’t make mobile games.
One thing I noticed is that the engine editor is slower than UE4. This reminds me of the time I first tried UE4. The editor was very slow, but it gradually became better. I guess the Epic team was more focused on tech and less focused on optimization, so I am sure performance will be better as the engine is updated.
A couple of weeks ago I decided to make a “clean” copy of Just Let Me Go, that will only contain the core components of the game, and also that arranges everything in a more organized way, so there’s actually a folder containing all the components rather than scattered folders. One of the things that resulted from this cleanup is that the girl doesn’t have hair anymore (I will re-add it later) and that’s why all the images will show a bald girl.
I opened the project in UE5 and, when prompted, I told the engine to open a copy of the project. Opening the project took no time at all. No long waiting times for everything to recompile, or reimport. On the other hand, I also created a blank new project and copied all the content (and input configurations) to it. This one, however, took longer to open since the engine had to process all the models, animations, materials, etc. The reason is I wanted to see which one would work better. Long story short, they both work the same, except that the blank project already has “UE5 configuration” settings (for example, Lumen is enabled) while the copied project will have “UE4 settings” and, if you want to use UE5 specific features (which you do, or else you wouldn’t be switching) you’ll need to change those configurations in the project settings.
When I tried to play the game in the editor, I got a compilation error. It turns out one of the nodes I was using for the character Blueprint had been deprecated. Luckily, the node could easily be replaced since it had not been removed, just updated. I simply added the updated version and removed the old one, and that was it. However, that was not the only problem I ran into.
A while ago, I made an article where I explained how I created “jiggle physics” for the character. Well, those didn’t work in my UE5 project. After some research on the internet, I found that, by default, UE5 puts physic objects to sleep, as part of the optimization process. This means all her jiggle joints went to sleep as soon as the game started and the result was not pleasant.
Fixing that was easy, after I finally found the reason. All I had to do is add a node that would keep the jiggle bodies awake all the time. The node is connected to the Tick event, so it wakes up the jiggle bones on every frame. I connect it to every tick because the jiggle bones will go back to sleep as soon as they stop moving. For example, if the girl is walking but then stops, the bones jiggle but they go to sleep as soon as they stop moving, and you have to wake them up again when she starts moving again. For this reason, I decided to simply waking them up on every tick was more effective.
The fixed result is this:
As you see, I was planning on testing Just Let Me Go on UE5, but I ended up running into a couple of issues right off the bat. As you know, if you are upgrading the project to the new version, it is a good idea to make a copy of the project in case you run into any issues.