Progression of the TSR menus
This knowledge isn’t really well known outside of the team, but the UE4 build that was shown off in the original March 2019 update was only released to myself and the other programmers around January/February 2020. There were a number of reasons for this which I’m not entirely clear on myself, but between that time of being on the project I did my best to work on UE4 projects with content that would be given to the build lead to be implemented when he was able to.
Upon finally been given the proverbial keys to the city, it was quite clear that I was still not very experienced with UE4. Another thing was that while a lot of time had been spent getting the gameplay to a good level (there were a lot of touches made that really made it feel like the original games), the menus had mostly been an after thought when it was originally created.
I decided when I started on this build that this would be one of the first things I tackled (besides some of the other tasks he asked me to do before getting the build, such as creating the radar). I figured it would be fairly simple (wrong) and I could get it out of the way quickly (VERY wrong) while learning more about the engine along the way (this part is true at least).
The whole process has definitely been a huge learning experience. I’ve picked up some good practices for creating menus along the way of what to do and not to do, and how I can utilise UMG in some clever ways such as creating certain widgets at runtime to use data provided instead of using enormous case statements.
While some of the implementations are still likely lacking in some areas, many areas have had major improvements in performance and style, have had data race conditions removed and have had additional features. While the menus definitely haven’t been a solo effort, this has been the brunt of my work in the last 7ish months (though I have dipped into the build from time to time to fix some bugs). Also major credit to our 2D artist on the team who did the designs for this and was extremely reliable in getting the work done.