Enhancing the MSFS UI & UX to solve the Aircraft Management Problem.
MSFS (Microsoft Flight simulator) has been a going concern for 40 years, with some ups and downs along the way, and the latest iteration launched in 2020 is revolutionizing the flight simulation space. It’s a complex simulation for sure, not without issues or growing pains, but it’s undeniable that when it works well it is an amazing experience in either flatscreen or VR. I’ve been using it extensively on and off since the launch, and while I like the UI there’s always been a few niggling issues with the main interface that I’ve been itching to scratch. One of the pain points is with the Aircraft Management aspect via the Aircraft Selection Screen, and Aircraft Manager for MSFS is my solution to that. This blog post is a short story of how that came about as a new addon for MSFS called Aircraft Manager.
A couple of times in the past I’d taken a look through the User Interface code along with exploring the official SDK, but as there was no documentation on it I steered clear of doing anything with it because it looked too complex. Diving into a complex codebase with no documentation to guide you can be a bit of a scary prospect, and you need to be prepared to persist with it in order to get that series of lightbulb moments where you being to understand it.
Anyway, towards the end of 2022 I was casting around for new side project ideas that could solve a real problem and make an impact. Two areas in MSFS stood out for me as candidates to develop something for:
- Aircraft Selection and management, made more difficult with the growing number of aircraft now available both paid and free.
- Managing locations inside the sim. MSFS is like an interactive earth simulator, enabled by flying around complex mini-simulations in the form of aircraft across the whole history of flight. But there’s no way to save and/or favorite locations in the sim itself.
So I decided to look at enhancing the Aircraft Management problem first. More about Location Management in a follow-up post.
The Problem To Solve
Some of the issues with it are:
- A growing aircraft collection means too many planes, and it’s easy to get overwhelmed deciding what to fly using the current UI
- Frustration you can’t tag your aircraft the way you like
- Can’t sort or filter them in meaningful ways to use them in various contexts eg: racing, stol, vfr etc
- Can’t take easily accessible short notes ingame as reminders before flying
- [insert your itch here]
First Steps to Developing a Solution to Aircraft Management for MSFS
Getting to grips with the MSFS UI (User Interface) was the first big rock to move, as we say in project management. You can’t cut into a codebase unless you know what you’re doing.
Unfortunately, there is no documenation on the UI at all (some is finally coming in SU12 release, though) so it meant doing it the hard core way: reading and debugging, piecing it together line by line.
Fortunately, this is one of my core skills as a developer. I’m a regular bug magnet, so my debugging and analysis skills are fairly well developed. That said, I knew it wouldn’t be easy, which is why I’d avoided it so far!
So I blocked some time out and I went for that long overdue deep dive into the MSFS UI codebase. Three days later, after some hair pulling, screaming, wtf’s, and aha’s, I surfaced with *some* idea of how it was put together. Shoutout to both Microsoft and Asobo for providing the source code in the first place, and also to the dev(s) that architected and implemented it. Impressive framework effort, and not an easy project to develop even leveraging a UI library.
My pathway to developing this was through iterating rapid prototypes to learn more about how the MSFS UI framework worked, while testing out ideas for how I might enhance it, before launching into the actual development solution. This next phase was even more educational, as I ran across the “gotcha’s” inherent in an undocumented system built on top of Game UI library Coherent GT.
Not having the ability to implement anything at the Coherent GT level meant understanding fully what might be possible to do, or not, and finding the best solution. I had a short list of technology solutions I wanted to use, based on my previous experience, and prioritised them into a risk reduction approach to prove various technical issues could be solved in order to develop a working enhancement solution.
I worked my way through various ideas I had, and was getting a little dejected when they all ended up on the cutting room floor. This project involved lots of creative pauses, while I had to go for a walk and let it stew for a while in order to spark an idea to find another solution to try. Eventually, I hit paydirt with a robust solution I could build upon that seemed reliable enough to surgically insert into the MSFS UI system and enhance it without disrupting regular use, a pretty critical requirement!
Developing the Prototype
Prototyping a more complete solution was the next stage, where you take the bits you now know work reliably and start to craft a proof of concept that covers the core use cases. The goal of the product development wasn’t to develop an overly complex solution, but a lean mean aircraft management machine, that solves a couple of core use cases very well, as opposed to being a swiss army knife solution.
Once I had a working prototype that was functional enough to prove the concept I reached out to other MSFS users at the MSFS forums to see if anyone was interested to test it and give me some feedback.
Shoutout to the following users for taking a chance on testing and providing feedback for Aircraft Manager for MSFS:
- Anyone else I missed, thanks!
It’s always vital to touch base with other users, as even though I’m scratching my own real itch with the UI and solution other users have different itches, and sometimes they overlap in interesting ways. Stress testing for performance is also critical, as is squashing bugs which are easy to miss even with a QA checklist.
The end result (but not quite the final one, it’s changed already!) you can see in the video walkthrough below:
AM Free Demo
You can download the free demo lite version from the Aircraft Manager for MSFS project page. It’s fully functional for casual use cases, with no obligation to upgrade. Enjoy!
AM Pro Release
I’m currently in the final stages of release for the pro version of Aircraft Manager for MSFS. Making a product is only part of the challenge, there’s a lot of other elements that go into a successful rollout, open source, free, or paid.
This stage always reminds me of the 90/90 rule:
The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time.
It’s not just code. Website, payments, fulfillment, support, maintenance and the rest all need to be done. That’s a lot, and I found I had to refresh a few of these areas as well, which hung up the deployment of the pro version. The release announcement on the MSFS Forums is here @ Aircraft Manager Pro + Location Manager Pro now available.
Auto Control Preset Switching
The ability to automatically switch device control presets on a per aircraft basis has been a long standing request from the users in MSFS.
Item #17 at 749 votes in the most recent wishlist is “Aircraft Specfic Control Profiles”.
Well, now we have it! With V1.0.2 of Aircraft Manager you are able to save per aircraft control presets and have them switch automatically as a bank of device preset changes whenever you switch aircraft. No more manual switching needed. See the video below for more details.
The Story Continues: Location Manager for MSFS
As I mentioned at the start, the other problem I came up with to solve was:
- Managing locations inside the sim. MSFS is like an interactive earth simulator, enabled by flying around complex mini-simulations in the form of aircraft across the whole history of flight.
After getting hung up on some of the product deployment issues, I decided to take a look at this problem while waiting on people to get back to me.
Location Manager for MSFS free version is now available from the project page,
I’ll be writing more about this shortly in a follow up post. Stay tuned, and thanks for reading if you manged to stick it out this far!
Update: Part 2 is now available at Location Manager for MSFS – Development Overview.