UE4 Project Builder GUI
Like many people out there, I'm not very keen on repeating myself over and over again, especially when it comes to processes that can be scripted in a straight forward way. My workflow for creating & building my Unreal Engine 4 projects involves using Git and the Large File Storage, along with Azure Dev Ops for code repository storage. Since these projects are just me for now, using Git makes the most sense. I wanted an easier way to update the UE4 project build number and also to make it really simple to quickly make a build, test it out, then zip it up and copy it over to Dropbox. When working on projects regularly you're going to end up doing these specific things quite a few times in the day, and it's also important to build often for a variety of reasons.
I started out by solving one pain point at a time, and built up a mix of Python scripts and Windows batch scripts to:
- Update the version number using Semantic Versioning
- Create an image (with a specific font to match the project's UI) with the version number in it and then place it in a specific folder for the project to import
- Build the project using the command line Unreal Automation Tool (UAT) and make sure to name the output folder using the build version to avoid confusion
- Zip up the built project and copy it over to Dropbox to be uploaded to the cloud as a simple method of distribution for testers
After getting all of these scripts working with a simple double click of a Windows batch file, I thought it would be much more convenient to have some kind of UI to press buttons, so that I would only have to click once, and would be easier to look at than clicking around in Windows Explorer.
Rather than the complexity of spinning up an Electron app using NodeJS, I decided to try out learning some Python to create a simple GUI to work with. It took a few hours of tinkering and reading documentation, and then I got it up and running. The settings are stored in .txt files, so it makes it really easy to set it up in a new project. I did end up adding a option to show all the settings so you can verify they are correct without having to open all the individual text files first.
In the future I'll likely add some more features to it, sure as editing the settings directly within the GUI.