How to create a project for MSFS SDK/Create a project for Google Earth Decoder
Users can use the MSFS SDK to create add-on content for Microsoft Flight Simulator. This is stored in a folder structure called "projects" defined by the SDK.Here we will explain the MSFS SDK project and how to create a project for Google Earth Decoder (a tool that converts Google Earth 3D maps to MSFS).
このページを日本語で見る
Contents
Installation of various development tools
To create add-on content for Microsoft Flight Simulator, first install various tools on your computer. Please refer to the page below.Projects, packages and asset groups
Add-on content is created as an MSFS SDK "project." When you build the "project," a "package" will be created that can be installed on the simulator.You can create multiple "packages" in an MSFS SDK "project". Each "package" can include multiple "asset groups".
A "package" is a unit distributed as an add-on. Add-ons such as scenery, aircraft, and airports distributed on sites such as flightsim.to are compressed versions of this "package" folder.
The "asset group" is a component that is included in a package. Types of "asset groups" include ModelLib, ArtProj, BGL, Mission, SimObject, etc. You can read more about these asset groups on the ASSET TYPES page of the MSFS SDK docs.
If you save the "Package" folder in the "Community" folder in the MSFS data storage folder, it will be loaded (installed) into the game. Add-on "Package"s downloaded and purchased from the in-game marketplace are saved in the "Official" folder in the MSFS data storage folder.
USING THE SDK (MSFS SDK docs)
ASSET TYPES (MSFS SDK docs)
Project structure
Inside each project folder, the following folders are generated:Folder | Description |
---|---|
_PackageInt | As development progresses, information such as the history of changes made to the package and various parameters will be recorded. Generated by SDK. |
PackageDefinitions | Contains information about the internal structure of a package, such as information about asset groups included in the package. Generated by SDK. |
Packages | This is where the finished package is stored. This content can be distributed to other users as an add-on. It is generated by the SDK by performing an operation called build. |
PackagesMetadata | (??) |
PackageSources | Saves the original data (asset group) that makes up the package, such as the 3D model of the scenery. Prepared by the developer. |
[Project name].xml | Contains basic information about the project. Specify this file when opening your project with MSFS SDK. Generated by SDK. |
USING THE SDK (MSFS SDK docs)
Package naming conventions
The MSFS SDK has strict package naming conventions. If you want to widely distribute your add-on to other users, you should name it according to this naming convention. In addition, the package name can only contain alphanumeric characters and "-" (hyphens), and must be 128 characters or less.Basic rules | developer - type ( - subtype ) - name-of-asset ( - variation-of-named-asset ) ( - subcontent ) |
---|
"Type" is a word that indicates the type of add-on, and is determined as shown in the table below.
Follow this with a descriptive name for the add-on.
Package Type | Naming conventions |
---|---|
Airports | <company>-airport-<ICAO>-<airport_name> |
Aircraft | <company>-aircraft-<aircraft_name> |
Aircraft paint (Aircraft Liveries) | <company>-aircraft-<aircraft_name>-livery-<livery_name> |
Landing Challenges | <company>-landingchalenge-<ICAO>-<name> |
Discovery mission | <company>-discovery-<name> |
Bush trip | <company>-bushtrip-<name> |
Model library | <company>-modellib-<name> |
Moving object (SimObjects) | <company>-simobjects-<type> |
Scenery | <company>-scenery-<name> |
For example, if developer name "someone" wants to distribute a scenery named "tokyo", the package must be named "someone-scenery-tokyo".
You can read more about naming conventions on the THE PROJECT EDITOR page of the MSFS SDK docs.
THE PROJECT EDITOR (MSFS SDK docs)
Where to save the project
When developing a project, a lot of reading and writing of data occurs. Developing a project on an SSD will cause the SSD to deteriorate faster, and slow write speeds will make builds take longer.The drive where you save your project can be different from the drive where you installed the MSFS SDK. We recommend that you use a dedicated hard disk for project development, rather than an SSD.
Create a project with Blender plugin (GEDOT)
As an example, we will introduce the steps to create a scenery project for Google Earth Decoder (a tool that converts Google Earth 3D maps to MSFS). There are two ways to create this: one using the MSFS SDK and the other using the Blender plugin. First, we will show you how to create a scenery project for Google Earth Decoder using the Blender plug-in "Google Earth Decoder Optimization Tools (GEDOT)".Installing plugins
Please see below for instructions on how to install "Google Earth Decoder Optimization Tools (GEDOT)".
How to download and install MSFS SDK, Blender, plugin, tools
Determining the package name
Here, let's assume that the developer name is "someone" and the scenery name is "tokyo". Then, according to the naming convention shown above, the package name will be "someone-scenery-tokyo".
Create a project
Click on the area labeled Path of the MSFS projects... in the top center of the screen to open the folder selection screen. Specify where to save the project.
In the Name of the project to initialize field, specify the package name determined according to the naming rules (in this example, "scenery-tokyo").
In the Author of the project field, specify your name/pen name (in this example, "someone").
Click the red "Initialize a new MSFS project scenery..." button and a new project folder will be generated.
Clicking the blue [OK] button will close this dialog box.
Once processing is complete, minimize this screen. If you close this screen with the [X] button, Blender will also be terminated.
Specify the "PackageSources" folder inside this as the output destination for Google Earth Decoder.
Create a project with MSFS SDK
Here, we will explain how to create one using the MSFS SDK.Determining the package name
Here, let's assume that the developer name is "someone" and the scenery name is "tokyo". Then, according to the naming convention shown above, the package name will be "someone-scenery-tokyo".
Create a project
In the Projects Folder field, specify the folder in which to save the project. Since large amounts of data will be read and written many times, we recommend using a large-capacity hard disk rather than an SSD.
In the Project Name field, specify the project name without the developer name part. In this example, it will be "scenery-tokyo".
In the Default creator name field, enter the developer's name. Specify your name, pen name, etc. In this example, it will be "someone".
In the Default company name field, enter the production company name. If you are an individual developer, it should be the same as the Default creator name field. In this example, it will be "someone".
Then click the [Create new project] button at the bottom right of the screen. Then, a project folder named "scenery-tokyo" will be created under the folder specified in the Projects Folder field.
When creating Packs (distributing multiple created packages as a set) or Bundles (selling packages that have already been published on the marketplace as a set), select [Bundle/Pack]. In this case, one project will contain multiple packages.
Also, when creating Packs or Bundles as a new project, you can add existing packages to the new project. In this case, select [Import Item].
When you click [Custom], the following items will appear below it.
in the Display title field, specify the display name for this package. This will be displayed as the title when distributed on marketplaces, etc.
In the Company name field, enter the production company name. If you are an individual developer, specify your name, pen name, etc.
In the Package name field, specify the package name "scenery-tokyo" determined according to the naming rules.
In the Content-Type field's drop-down list, specify the package type. This time, specify "SCENARY".
Then click [Next] at the bottom right of the screen.
In the Asset group name field, specify the name of the asset group. When using Google Earth Decoder, a BGL asset group called "scene" is generated. This time, we will input "scene" accordingly.
In the Asset type field, specify the type of asset group. Here, select "BGL".
Then click [Create] at the bottom of the screen.
Click on the package name to see a list of the asset groups it contains. The example shown contains only one asset group of type "BGL" named "scene".
You can add new packages by using the [Add Item] button at the bottom of this screen. You can also add existing packages (Bundle/Pack) using the [Import Item] button.
Settings after using Google Earth Decoder
For information on how to use the Google Earth Decoder, please see the page How to use Google Earth Decoder to create MSFS scenery on Google Maps .
How to use Google Earth Decoder to create MSFS scenery on Google Maps
The folder called "Scenery" that you can see in this figure was automatically generated by the SDK when you added the BGL asset group to the project using the SDK.
Alternatively, you can select [Open recent] below to select from a list of recently opened projects.
Note that if you create multiple packages in one project, multiple "[package name].xml" files will be generated here.
No particular changes are required for "OutputDir". Modify as desired to suit your packaging design. In the commonly distributed scenery add-on generated from Google Earth, "scenery/world/scenery" is often specified here.
If you have closed the Inspector, select [View] - [Inspector] on the Project Editor screen.
In the Asset group name field, specify the name of the asset group. When using Google Earth Decoder, a ModelLib asset group called "modelLib" is generated. This time, we will input "modelLib" accordingly.
In the Asset type field, specify the type of asset group. Here, select "ModelLib". Then click [Create] at the bottom of the screen.
Then click [Create] at the bottom of the screen.
No particular changes are required for "OutputDir". Modify as desired to suit your packaging design. In the commonly distributed scenery add-on generated from Google Earth, "scenery/global/scenery" is often specified here.
Build the project
Build the project
When building for the first time, it is necessary to save the project beforehand. Click [Project]-[Save] on the Project Editor screen.
Clicking the [Clean All] button on the Project Editor screen will delete old packages under the "Packages" folder. Next, click the [Build All] button to start the build.
The build time will vary depending on the size of the area cropped from Google Earth and the LOD level.
Most of the errors that occur here are mismatches between the storage path/folder name of the asset group as recognized by the SDK and the actual storage path/folder name. Open "[package name].xml" stored in the PackageDefinitions folder with a text editor, etc., and check that the contents of the "<AssetDir>" tag match the actual storage path/folder name.
If "layout.json" and "manifest.json" are not generated under the [Packages]-[(package name)] folder in the project folder, the build has failed. If the amount of data is too large, the build may crash during the process. Try narrowing the range of the scenery.