Microsoft Flight Simulator

Microsoft Flight Simulator - Official Project Page

Microsoft Flight Simulator - Asobo Page

Microsoft Flight Simulator is the oldest IP of Microsoft (1976), older than the Windows operating system. In 2019, at E3, Microsoft announced the new Microsoft Flight Simulator that will be released in 2020. The project is developed by Asobo Studio and I was lucky enough to be part of the development team, with whom, at the time of writing, I’m still working. The technologies used innovate the industry, such as the intensive use of data taken from satellite imagery (Bing Maps), aided by artificial intelligence through Microsoft Azure.

Since the product will be released with a MarketPlace, it comes with an SDK. The SDK will allow third-party developers to integrate new aircraft, airports, missions, etc., ensuring the participation of the community and the longevity of the game. For this reason, Asobo Studio has chosen to use the glTF format, to facilitate easy transmission between the various 3d software applications and its proprietary engine.

glTF is short for GL Transmission Format, a common JSON standard for exchanging 3D information that allows interoperability between programs. In practice, although still young and not completely adopted by the industry, it is currently the only open-source format for this purpose that is extensible and (more or less) complete. It is not my goal here to explain the benefits of glTF and why this is, in my opinion, a big step forward for the entire 3d industry, but I’m very proud to be part of it.

Accepting to work on this project I also agreed to move on to tasks much less tech-art and more towards the tool development part. I wanted to accept this challenge because this way I could move out of my comfort zone: From Unity to Asobo’s custom engine From Maya to 3ds Max From C# to Python and C++ From shaders to tool development My main task was to anticipate artists’ needs by observing the pipeline used, proposing tools for 3dsmax to increase productivity and speed up asset integration. To do this, Asobo had chosen to extend the BabylonJS Exporter, a Microsoft-owned project already able to export glTF files from 3ds Max.

BabylonJS EXPORTERS project

With over 100 commits to my credit, I contributed to the development of this plugin, helping the BabylonJS community while giving the internal and external developers of the flight sim team all the improvements, tools, and ideas that such an impressive production requires. Among the most important things for the development pipeline are the support for Xref, 3ds Max Containers and the possibility to separate animations from model data.

It is also my responsibility to create tools in 3ds Max. For this task, I opted for a pipeline very different from what it is classically done other companies. Instead of writing tools in MaxScript, only Python(PYMXS) has been used, with the purpose of being able to write an SDK that is adaptable and maintainable over time, using the logic of separation of the UI from the functional code. Taking advantage of Qt Designer and in general from all improvements provided by the Qt API.

To summarize my responsibilities: