Mise à  jour : texte original

Microsoft ® Flight Simulator X SDK Overview

New for the SDK SP1A update

There have been a number of improvements to the Microsoft ® Flight Simulator X SDK since the SDK SP1 update. The main changes are:

Core Utilities Kit

Environment Kit

Mission Creation Kit

SimObject Creation Kit


The SDK SP1 update

Many of the documents and tools include small improvements and changes. However the main areas that have been updated are:

Core Utilities Kit

Environment Kit

SimObject Creation Kit

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 Files\Microsoft Games\Microsoft Flight Simulator X SDK\SDK\

 

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 language 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

Global 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.

Compiling BGL

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 eight 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
Living World SDK Includes a description of how to configure recreational boat traffic, freeway traffic, and airport ground vehicles. Configuring Surface Vehicle Traffic
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.

 

The Attach Point Names document lists all the attach point names used by objects provided with Flight Simulator X.

 

FSX Materials provides a visual display of many of the features of materials, such as fresnel ramps, specular maps, bloom and ambient light, frame buffer blending and texture clamps.

 

New Aircraft Procedures and Texturing Aircraft Models give pertinent advice on how to build, animate and texture complex aircraft models.

Using Modeling Tools

Attach Point Names

FSX Materials

New Aircraft Procedures

Animation Tags

Texturing Aircraft Models

Jetways

Modeling File Formats

 

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. Creating Cabinet Files
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 samples, 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

Programming C++ Gauges

Tooltips

HelpIDs

Token Variables

Event IDs

Simulation 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

 

Installation Requirements

To install the Flight Simulator X SDK the self-extracting executable file Vcredist must be installed first. Beginning with Microsoft ® Visual Studio 6.0 Service Pack 5, Vcredist.exe is included with the service pack. For more information, and a link to download this file, refer to:

 

http://support.microsoft.com/kb/259403

 

Do not attempt to install the original retail version of the Flight Simulator X SDK over an updated SDK, as unpredictable results can occur.  If for some reason this is required, uninstall all versions of the Flight Simulator X SDK and re-install in chronological order.

 
Windows Vista

If developing using the Microsoft ® Windows Vista operating system, the instructions in this SDK documentation assume the developer is working with Administrator privileges, otherwise security violations can occur when the tools try to create files in protected directories.

 

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

 

Caution: If an addon is developed using Microsoft ® Visual Studio 2005 SP1 it will run on the development computer, but it will only run on other computers if either one of the following redist packages is installed, or the project is compiled with the _USE_RTM_VERSION compiler switch.

 

For 32 bit operating systems:

http://www.microsoft.com/downloads/details.aspx?familyid=200B2FD9-AE1A-4A14-984D-389C36F85647&displaylang=en

For 64 bit operating systems:

http://www.microsoft.com/downloads/details.aspx?FamilyID=EB4EBE2D-33C0-4A47-9DD4-B9A6D7BD44DA&displaylang=en

 
SDK Updates

Updates to the SDK tools, samples, documentation and other components are 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 unique 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:

 

For most Flight Simulator applications, choose option 4. Registry Format as the most appropriate GUID format.

 

Click New GUID as many times as necessary, as it is not a good idea to manually modify existing GUIDs, as the chances of repeating an existing GUID is greatly increased by doing this.

 

 

 

Installation to a non-default folder

The paths in the documentation and some tools will only be correct if the SDK is installed to the default folder. If the SDK is installed to a non-default folder, be aware that some documented paths may not be correct, and run the tool ConfigSDK.exe (in the SDK folder) to update the paths of a number of the configuration tools to the correct folder.

 

Configuration Settings

When running Flight Simulator with multiple monitors, there can be synchronization issues with the screens. There are two settings that can be added to the display.cfg file to help correct this (though setting them to TRUE can lead to some artifacts, such as tearing):

 

ForceVSync (default is FALSE) which, when set to TRUE, prevents the rendering on one monitor waiting for the rendering of another to finish, in Window mode.

ForceFullScreenVSync (default is TRUE) which, when set to TRUE, prevents the rendering on one monitor waiting for the rendering of another to finish, in FullScreen mode.

 

In fsx.cfg, in the [Graphics] section, the following two settings can affect performance:

 

SmallPartRejectRadius=N (default is 1) which determines the radius in pixels that an object has to be in order to be rendered. Increasing this size will cull more objects from the rendering pipeline.

MergeDirtyRegionUpdates=1 or 0 (default is 1) which indicates if updates, particularly to glass cockpit panels, should be done locally or to the whole display area. Setting this to 0 on older graphics cards might lead to a small performance improvement with certain panels.

 

Legacy

The NetPipes SDK, ABL SDK and Weather Themes SDK are being deprecated, and are no longer supported.

 

 

 

© & (P) 2007 Microsoft Corporation. All rights reserved.

 

Microsoft, DirectX, Visual Studio, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

 

The names of actual companies and products mentioned herein may be the trademarks of their respective owners.

 

~~@~~