Today I released Version 3.1 of my Project Optimise Tool!
Check it out here on my Itch page
It's a Unreal Engine 5 tool which helps you identify potential problems and uncover optimization opportunities in your Unreal Engine 5 projects.
Below you can see me using it to search for Static meshes which have no LODs. As you can see it finds 59!
As an overview - Its functionality is split into 3 chunks:
Optimisations:
Search for 19 different types of optimisations
Spread across 8 asset types
Bugs:
Search for 10 different types of bugs
Spread across 7 asset types
Naming Checks:
Check for assets not using consistent naming conventions
Define the prefixes you prefer to use in your own projects
An important thing to note about the tool is that it does not make any changes to your project. It only reads your assets to generate logs of potential issues that you could look into.
I thought this was important because projects are highly contextual. What's correct for one project may not apply to another. For instance, a static mesh without collision might be an intentional design choice rather than a bug.
Here are some useful links if you want to learn more about the tool:
Video Guides:
As the Version 3.1 name suggests this isn’t the first version of the tool. I have actually been working on it over the last couple of years. While the core concept was the same, helping you find bugs and optimisation opportunities, its taken on three distinct forms. I thought it might be interesting to show and tell a little about them:
Version 1.0 - Python scripts
When I first had the idea for this tool Unreal Engine had just released their Editor Utility Widgets, allowing you to make Tools/UI for use in the editor. These Editor Utility Widgets were pretty rudimentary at the time, with little functionality exposed. However, you could make a button and trigger Python scripts! So I decided to make the first version of the tool using scripts that I had written in Python. This was a bit of a pain and there was a lot of trial and error. However, as you can see below I got it working!
It was pretty crude but I had some initial searches running and the results would kick out as a notepad document. Overall it felt clunky: you had to manually look at the notepad document and then go through your project to find the asset. I tried sharing it with some friends but it had a lot of issues with having correct plugins and versions of things to work.
All in all, although it had its problems I was happy with it and it was a good proof of concept!
Version 2.0 - Embracing Editor Utility WidgetS
About a year later I came back to the tool, with more ideas and knowing that Epic Games had released further updates to Editor Utility widgets. The big game changer here was that I was able to ditch the Python completely. Instead, searching for issues and then showing the search results in the tool itself rather than in an external notepad document. You can see this in action below:
I managed to get some functionality together, created a video on how to use it and then put it out online for free for people to use! You will notice that it’s very simple looking. I wanted to keep it as light as possible so I didn’t bog down people’s projects with extra assets. The point was to help them optimise their projects not add bulk to it.
Version 3.1 - PROJect OPTIMSE TOOL
Fast forward another year and I decided to come back to the tool to try and create something really solid and user-friendly, that I would be happy selling. From using the tool myself I had a list of things that I wanted to add/improve but I also had a list of suggestions from people who had used the free version of the tool. For example, people had been asking for the ability to search specific folders not just the entire project. So I got to work again and you can see the result below:
Here are some of the main things I focused on for this version of the tool:
A Visual Pass - I still wanted to keep the tool light but I also wanted to make it visually appealing
Reworking The Flow & User Experience - I wanted to make it more clear how to use the tool and what things do
Added Search Specific Folder - Allowing you to make your searches more granular instead of just brute forcing over the entire project
Added Extra Optimise Searches - Bringing it to a total of 19 different optimisation searches across 8 asset types
Added Extra Bug Searches - Bringing the total to 10 different bug searches across 7 asset types
Added Functionality For Checking Name Convention - New functionality to allow players to check assets for specific prefixes e.g. ABP_ for anim blueprints
Polish & Bug Fixing - I spent a good chunk of time trying to refine the tool and making it sturdy
Documentation - Outside of the tool I made some in-detailed documentation to help with using the tool (Link Here)
Video Guides - I also made a series of 5 videos explaining different aspects of the tool: Overview, how to setup, how to run, how to use, functionality breakdown. You can see the playlist here
Overall I was really happy with how the tool turned out. I put it for sale on my itch store and will hopefully get it onto the unreal engine marketplace. I’m also going to continue working on it, improving and refining it. It will be interesting to see where the tool is in another year from now!