Microsoft ® Flight Simulator X SDK Overview
Introduction
The Microsoft ® Flight Simulator X SDK can be used to create add-on components for Microsoft ® Flight Simulator X. These components can be new or replacement aircraft, instrumentation, missions, scenery, terrain, airport ground vehicles, airport runways and buildings, special effects, camera views, and many other elements of the simulated world. It must be pointed out though that some of these tasks, such as creating new aircraft, are very involved, demand a considerable amount of skill and knowledge, and are time consuming. Other tasks, though requiring patience and close attention to detail, can be completed in a few hours - such as designing and adding a simple gauge to an existing aircraft, configuring a new camera, creating a new graphical special effect, or completing a fairly simple new mission. One of the keys to success in using this SDK is breaking a task down into small, testable components. Indeed, the creation of a new aircraft can involve the creation of new instruments, special effects, camera views, and appropriate missions, that can all be completed and tested individually before being added to the new aircraft.
This document provides a brief overview of all the components of the Microsoft ® Flight Simulator X SDK, and provides links to all the detailed documentation for each component. Unless the default installation directory is changed, the SDK installs to:
C:Program FilesMicrosoft GamesMicrosoft Flight Simulator X SDKSDK
The SDK is divided into four main areas:
1.Core Utilities Kit: This covers the new SimConnect SDK - the programmers interface to Flight Simulator, Camera Configuration, and also tables of variables that can be used by client applications written for SimConnect, and other components of the overall SDK.
2.Environment Kit: This covers terrain, scenery, modeling, aircraft and boat traffic, and special effects.
3.Mission Creation Kit: This is new to Flight Simulator, and covers the creation of missions (directed challenges and adventures).
4.SimObject Creation Kit: This covers the creation of aircraft, panels and gauges, and also all the other simulation objects that can appear (ground vehicles, boats, animals, trains, and so on).
Some tools and components are relevant to areas outside of the kit they are contained in. For example, special effects can be applied to aircraft as well as scenery. See also the Hints and Tips section for some guidance on specific general topics. A few of the tools require Microsoft ® .NET Framework Version 2.0 to be installed first. Install this from:
http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en
New for Flight Simulator X
Most of the SDK components have been updated since Flight Simulator 2004, however a few components are completely new:
SimConnect
This is for programmers to extend Flight Simulator X through the writing of client applications and libraries. The SDK contains around 65 functions, and the documentation includes many working samples to help explain the development process.
Missions
A mission is a structured flight that can be an adventure, a tutorial, a test of knowledge or skill, a fun ride, or whatever the creator can dream up. A good number of missions will be shipping with Flight Simulator X, however any interested third party developer can create their own.
Camera Configuration
The new camera system is highly customizable, providing the end user with some great new features and views.
SDK Components
The following tables lists the components of each kit, with links to the documentation describing how to use it.
Core Utilities Kit
Component
Description
Documentation
SimConnect SDK The SimConnect SDK can be used by programmers to write add-on components to Microsoft ® Flight Simulator. These components can be written in C, C++, or, if the managed API calls are being used, any Microsoft .NET lanaguge such as C#.net or VB.net. SimConnect
Variables This folder contains a number of files that themselves contain large tables of the variables that can be used along with SimConnect, the XML gauge system, or the C gauge system.
Event IDs
Simulation Variables
Camera Configuration The camera system has been completely rewritten for Flight Simulator X, and is highly customizable and extensible. Camera Configuration
SimProp Includes a tool to compile certain xml files into binary, the simpropcompiler. Creating these files is described in the Mission Creation document, as compiling mission xml files is the primary use of the tool. Mission Creation
Environment Kit
Component
Description
Documentation
Autogen SDK
Autogen is the name given to the process of creating default buildings and vegetation. The SDK includes the annotation and autogen config editor tools.
Autogen
Library Objects
BGL Compiler SDK
This SDK is used to compile scenery with the BGL scenery compiler. An, XML-based scenery format was introduced for Microsoft Flight Simulator 2004 and is required for creating new scenery.
Includes the BGLComp and BGLScan tools.
The BGL Compiler
Special Effects SDK Special effects are used by Flight Simulator to represent graphical effects such as fire, smoke, rain, steam, exhaust, and similar short term and highly animated effects.The Special Effects tool is a dialog based utility that runs along with Flight Simulator. Creating Special Effects
Terrain SDK
The terrain system in Flight Simulator consists of eigth main data components, elevation (DEM data), imagery, land classification, water classification, regions, seasons, vector data, and population density. All sets of data can be replaced in whole or in part by new data, perhaps providing a higher resolution, or sometimes simply alternative data.
Includes the tmfViewer, Shp2Vec, Resample and Imagetool tools.
Terrain and Scenery
Terrain Configuration File
Scenery Configuration File
Traffic Toolbox SDK Includes the TrafficDatabaseBuilder tool, and the traffictoolbox.dll tool. Traffic Toolbox
Modeling SDK Contains tools to help build the 3D aircraft and scenery models. Includes the XtoMdl.exe tool, and attach point and cloud creation scripts. Modeling Tools
Weather SDK Describes the xml files that control the parameters for thermals and the rendered images for thermals and ridge lift. Weather Systems
Mission Creation SDK
Component
Description
Documentation
Missions A mission is a structured flight that can be an adventure, a tutorial, a test of knowledge or skill, a fun ride, or whatever the creator can dream up. These missions are stored in XML files and are made available to the user through the Missions menu of FSX.
Creating Missions involves use of the Object Placement Tool, which is powerful but not the easiest or most obvious tool to use.
The Tutorial section of this document explains how to install the tool, how to create a simple mission using it, and how to add that Mission so that it shows up in FSX.
Mission Creation
SimObject Creation Kit
Component
Description
Documentation
Cabdir SDK If you create add-ons for Flight Simulator, you can use the Cabdir utility (cabdir.exe) to combine all the folders and files in a directory into a single .cab file (similar to a .zip file), simplifying the process of distributing files to end-users. Cabdir
Panels and Gauges SDK
XML gauges are described in full, along with a tutorial that shows the creation of a simple fuel pressure gauge, and a slightly more complex stopwatch gauge. Gauges can also be developed in C++, and the necessary include files, and a sample, are provided.
Panel configuration files determine what gauges are displayed for any particular aircraft. Panels are particular to one variation of one aircraft, whereas gauges can be referenced from any number of panels.
Creating XML Gauges
Panel Configuration Files
GPS Variables
Panel and Gauge Artwork
Creating C Gauges
Tooltips
HelpIDs
Token Variables
SimObject Container SDK
The aircraft configuration file specifies the versions of the aircraft included in the aircraft container, as well as the attributes (name, color, sound, panels, gauges, and so on) for each aircraft and where to find the files that define those attributes. Other simulation objects such as airport vehicles, animals, boats, and so on, also require configuration files.
The sound configuration file is located in an aircraft’s Sound folder, and defines the sounds to use for that aircraft.
Aircraft Configuration Files
Sound Configuration Files
SimObject Configuration Files
Hints and Tips
Development Software
Microsoft ® Visual C++ 2005 or Microsoft ® Visual C++ 2005 Express Edition can be used to develop SimConnect client applications. For more information on the Express Edition check out the following websites:
www.microsoft.com/vstudio/express
www.msdn.microsoft.com/coding4fun
SDK Updates
Updates to the SDK tools, samples, documentation and other components will be available from:
/http://www.fsinsider.com/
Forums
Whereas most developer questions will be answered in the SDK documentation and samples, there will always be some questions that are not, so SDK developers are encouraged to join and participate in the various forums discussing the development of add-ons for Flight Simulator.
Generating GUIDs
A number of the SDK components require GUIDs (globally unqiue identifiers). A tool to generate these is included with both Visual Studio and Visual Studio Express, or alternatively download the GUIDGEN tool from:
http://www.microsoft.com/downloads/details.aspx?familyid=94551f58-484f-4a8c-bb39-adb270833afc&displaylang=en
This will place an icon on the desktop, called GUIDGen, open this up and double click on GUIDGEN to open up the tool: