Portal:Developer: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
(added link)
(Remove some outdated info)
 
(213 intermediate revisions by 33 users not shown)
Line 1: Line 1:
<div align="center">
{{Main page/Header
[[Portal:Developer|Developer]] - [[Portal:User|User]]
  |title=Welcome to the developer portal
</div>
  |introduction=Please visit [http://forum.flightgear.org our forum] if you cannot find what you're looking for.
  |rightbox=
<!-------------------------------------------------------------
                    Portal overview
-------------------------------------------------------------->
  |rightcolumn1= </div>
<span style="font-size:105%; font-weight:bold">[[FlightGear and Git|Development repository status]]</span><br />
<center style="padding-top:.9em;">{{GitStatus}}</center>


{|style="border-spacing:8px; margin:0px -8px;"
  |rightcolumn2= </div>
|class="MainPageBG" style="width:100%; border:1px solid #d9e2e2; background:#efefef; vertical-align:top; color:#000;"|
<span style="font-size:105%; font-weight:bold">Getting started</span><br />
{|width="100%" cellpadding="1" cellspacing="5" style="vertical-align:top; background:#efefef;"
<span style="font-style:italic;">
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">The Developer Portal</h2>
[[How the FlightGear project works]] <br/>
|-
[[Howto: Understand the FlightGear development process|The development process]] · [[Release plan]]<br/>
|style="color:#000;"|
[[Building FlightGear]] · [[FlightGear and Git|Git]] · [[FlightGear Build Server|Build server]]<br/>
This portal is for developers contributing to FlightGear. If you wanna help with FlightGears development, it's a good idea to subscribe yourself to the [http://lists.sourceforge.net/lists/listinfo/flightgear-devel FlightGear devel] mailing list. The [http://sourceforge.net/mailarchive/forum.php?forum_name=flightgear-devel list archive] is also available and should be searched before posting the same question.<br><br>
[[Property tree]] · [[File formats]] · [[Tools of the Trade]] · {{tickets|Bug tracker}}</span>
'''The FlightGear project is looking for organizations/individuals who would be willing to help sponsor a fulltime project coordinator/manager to help oversee the overall development process If you are interested in helping or have anything else to contribute to this issue, please subscribe to the the [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg11813.html FlightGear Devel mailing list] to discuss details.'''
|}
|}
<!--


-------------------------Today's featured article, Did you know------------------------>
  |rightcolumn3= </div>
{|style="border-spacing:8px; margin:0px -8px;"
<span style="font-size:105%; font-weight:bold">Feeds</span><br />
|class="MainPageBG" style="width:50%; border:1px solid #d9e2e2; background:#efefef; vertical-align:top; color:#000;"|
<span style="font-style:italic;">
{|width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background:#efefef;"
[https://forum.flightgear.org/feed.php Forum posts]<br/>
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Latest Organizational Issues</h2>
[http://wiki.flightgear.org/api.php?hidebots=1&days=7&limit=50&action=feedrecentchanges&feedformat=atom Wiki changes]<br/>
|-
[https://sourceforge.net/p/flightgear/codetickets/feed.rss Bugs]<br/>
|style="color:#000;"|
{{repo link
* [[ Project Infrastructure Enhancements ]]
| site = sf
* [[Google Summer of Code Candidate Projects]] - application template to allow community members to prepare a possible application to decrease the effort required to actually apply
| repo = fgdata
|-
| view = rss
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Background Info</h2>
| text = FGData RSS feed
|-
}}<br/>
|style="color:#000;"|
{{repo link
* [[Resources]]
| site = sf
|-
| repo = flightgear
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Current Efforts/Branches & Work in Progress</h2>
| view = rss
|-
| text = FlightGear RSS feed
|style="color:#000;"|
}}<br/>
* [http://www.flightgear.org/forums/viewtopic.php?t=1378 Efforts to create photo realistic scenery for FlightGear] (Images: [http://www.brest-metropole-oceane.fr/vueduciel/images/101_106.jpg] [http://blaniel.free.fr/pub/flightgear/brest/brest1.png] [http://helijah.free.fr/LFRB/fgfs-screen-001.jpg] [http://helijah.free.fr/LFRB/fgfs-screen-003.jpg]
{{repo link
* [http://www.flightgear.org/forums/viewtopic.php?t=755 New aircraft model under development: Bede BD-5J]
| site = sf
* [http://www.flightgear.org/forums/viewtopic.php?t=542 F14-Tomcat aircraft model under development] ([[Grumman F-14 Tomcat|F-14 released!)
| repo = simgear
* [http://www.flightgear.org/forums/viewtopic.php?t=1001 787 being revamped]
| view = rss
* [http://www.flightgear.org/forums/viewtopic.php?t=1436 LFLJ enhancements]
| text = SimGear RSS feed
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg16176.html Free Walking mode for FlightGear using the Jeep vehicle in CVS]
}}
* [http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg15388.html Random Trees for FlightGear]
</span>


'''[[Work in progress|More...]]'''
  |rightcolumn4= </div>
|-
<span style="font-size:105%; font-weight:bold">General</span><br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Compiling</h2>
<span style="font-style:italic;">
|-
[[Long Term Goals|Long term goals]] · [[:Category:Popular Community Requests|Popular Ideas]] · [[Virtual FSweekend Hackathon 2021]]<br/>
|style="color:#000;"|
[[Improving Glider Realism|Improving glider realism]] / [[Improving Helicopter Realism|helicopter realism]]<br/>
* [[ Building Flightgear ]]
[[Howto:Set up a multiplayer server|Setting up a multiplayer server]] · [[FlightGear Expo Checklist|Expo checklist]]</span>
* [[ Building Flightgear - Windows]]
* [[ Building FlightGear Launch Control ]]
* [[ Building Terragear ]]
* [[ Keeping FlightGear (win32) up to date without compiling]]
* [[ OpenSceneGraph ]]
* [[ Tools of the Trade ]]
* [[ Using TortoiseCVS with FlightGear ]]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Contributing</h2>
|-
|style="color:#000;"|
* [[ Code Cleanup ]]
* [[ Contributor Repositories ]] mirrors, branches and forks privately maintained by contributors
* [[ Development Resources ]]
* [[ Extension Support ]]
* [[ Submitting Patches ]]
* [[ Technical Reports ]]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Code Internals</h2>
|-
|style="color:#000;"|
* [[ Commands ]]  
* [[ FDM API ]]
* [[ File Formats ]]
* [[ Initialization Sequence ]]
* [[ Nasal scripting language ]]
* [[ Property Tree ]]
* [[ Subsystems ]]  
* [[ UML Diagrams ]]
* [[ YASim ]]
* [[ FlightGear 1.0 aircraft names for command line‎|1.0.0 a/c names for command line


|-
  |rightcolumn5= [[File:Portal aircraft.png|40px]]</div>
|}
<span style="font-size:105%; font-weight:bold">[[Portal:Developer/Aircraft|Aircraft]]</span><br />
<span style="font-style:italic;">
[[Howto:Troubleshooting Aircraft Performance Issues]]·
[[Howto: Make an aircraft|Making an aircraft]] · [[Flight Dynamics Model|Flight dynamics model]]<br/>
[[Howto: 3D Aircraft Models|3D aircraft models]] · [[Howto: Edit a livery|Liveries]] · [[:Category:Aircraft resources|Resources]]<br/>
[[Soaring instrumentation sdk]]  · [[Creating instruments for FG|Creating instruments]] · [[System dependent instruments|System dependent instruments]]<br/>
[[Howto: Design an autopilot|Designing an autopilot]]</span>


|class="MainPageBG" style="width:50%; border:1px solid #d9e2e2; background:#efefef; vertical-align:top"|
  |rightcolumn6= [[File:Nuvola apps kaboodle.png|40px]] </div>
{| width="100%" cellpadding="2" cellspacing="5" style="vertical-align:top; background:#efefef;"
<span style="font-size:105%; font-weight:bold">Animations</span><br />
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Todo</h2>
<span style="font-style:italic;">
|-
[[Howto: Animate models|Animate models]] · [[Howto: Illuminate faces|Illuminate objects]]<br/>
|style="color:#000;"|
[[Howto: Animate gear scissors|Gear scissors]] ([[Howto: Animate gear scissors using the tracking animation|with tracking animation]])<br/>
* [[ Bugs ]]
[[Howto: Make a clickable panel|Clickable panels]] · [[Knob / slider animation]]</span>
* [[ Feature Requests / Proposals / Ideas ]]
* [[ FGFS Todo ]]
* [[ FlightGear Expo Checklist ]]
* [[ Long Term Goals ]]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Done</h2>
|-
|style="color:#000;"|
* [[ Changes since 0.9.10 ]]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">HowTos</h2>
|-
|style="color:#000;"|
* [[Howto: Add smooth ("Ambient Occlusion") shadows in Blender|Add smooth shadows in Blender]]
* [[Howto: 3D Aircraft Models|3D Aircraft Models]]
* [[Howto: Add aircraft lights|Add aircraft lights]]
* [[Howto: Edit a livery|Edit a livery]]
* [[Howto: Illuminate faces|Illuminate faces]]
* [[Howto: Make a helicopter|Make a helicopter]]
* [[Howto: Set up a multiplayer server|Set up a multiplayer server]]
'''[[:Category:Howto|More...]]'''
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Instrumentation</h2>
|-
|style="color:#000;"|
* [[ Creating instruments for FG ]]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Nasal scripting</h2>
|-
|style="color:#000;"|
* [[ Nasal scripting language ]]
* [[ Writing simple scripts in %22nasal%22 ]]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Autopilot configuration</h2>
|-
|style="color:#000;"|
* [http://www.flightgear.org/Docs/XMLAutopilot/ FlightGear Autopilot] (Theory, Configuration, and Tuning)
* [[ Autopilot Tuning Resources ]]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">3D Modeling</h2>
|-
|style="color:#000;"|
* [[ Howto: 3D Aircraft Models|3D Aircraft Models]] (howto)
* [[ Aircraft Information Resources ]]
* [[ Model Import and Export ]]
* [[ Modeling - FAQ ]]
* [[ Modeling - Getting Started ]]
* [[ Modeling Resources ]]
* [[ Modeling - SketchUp]]
* [[ Normals and Transparency Tutorial ]]
* [http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro Blender3D Modeling]
|-
! <h2 style="margin:0; background:#0f7a71; font-size:120%; font-weight:bold; border:1px solid #d9e2e2; text-align:left; color:white; padding:0.2em 0.4em;">Scenery</h2>
|-
|style="color:#000;"|
* [[ Blender Ground Signs Tutorial]]
* [[ Placing 3D Objects with the UFO ]]
* [[ Signs ]] (placing and explanation)
* [[ Using Terragear ]]
* [[ Using the Custom Scenery TerraGear Toolset ]]
|-
|}
|}


__NOTOC__
|rightcolumn7=  [[File:Portal developer.png|40px]] </div>
__NOEDITSECTION__
<span style="font-size:105%; font-weight:bold">Core</span><br />
<span style="font-style:italic;">
[[:Category:FlightGear Core developers|List of Core Developers]] · [[:Category:Developer Plans|Developer Plans]] · [[:Category:Core development projects|Projects]] <br/>
[[Howto: Start core development|Getting started]] · [[Programming resources]] · [[Nasal/CppBind|Adding scripting bindings]]<br/>
[[Howto:Add new fgcommands to FlightGear|Adding fgcommands]] · [[Howto:Create new subsystems|Creating subsystems]]<br/>
[[Built-in Profiler]] · [[Howto:Extend Nasal]] · [[Howto:Using Ada in FlightGear]]<br/>
[[Howto:Use Property Tree Objects]] · [[Code cleanup]] <br/>
[[FlightGear-Points of Interest]] · [[Request for comments]] <br/>
[[OpenSceneGraph]] · [[Rendering system improvements]] · [http://build.flightgear.org:8080 Jenkins build page] · {{tickets|Bug tracker}}</span>


== Developer Documentation ==
  |rightcolumn8= [[File:Portal scenery.png|40px]] </div>
=== RFC Topics ===
<span style="font-size:105%; font-weight:bold">[[Portal:Developer/Scenery|Scenery]]</span><br />
'''Clarification:'''In its current form, the RFC section is exclusively based on and covered by previous mailing list and forum discussions (as well as various wiki entries), as such it is not supposed to reflect work in progress (RFC="Request For Comments" and not WIP), but is rather to be seen as an attempt to provide comprehensive analyses and summaries of key issues identified in various FlightGear related discussions and feature requests (which are to be linked to in the corresponding resource sections, if that didn't yet take place, it's because of most of these RFCs being indeed WIP).
<span style="font-style:italic;">
[[Procedural Texturing]]<br/>
Thus, RFC entries are not meant to imply anyone "working" on any of these issues, in fact only because an RFC entry is listed here doesn't necessarily mean that work on that particular issue is endorsed by the FlightGear community.
[[Howto: Place 3D objects with the UFO|Placing objects]] · [[Signs|Airport signs]]<br/>
[[Howto: Convert objects from X-Plane|Converting from X-Plane/MSFS]]<br/>
[[Howto: Make an airport|Making an airport]] · [[Using TerraGear|Generating terrain]]<br/>
[[AI Traffic]] · [[Howto:Improve scenery in your area, or area of interest|Quick links: Improve your area - where & how to improve something you see]]</span>


* [[Next Generation Scenery ]] - revamping the FG scenery engine
  |rightcolumn9= [[File:Nasallogo3.png|40px]] </div>
* [[Keyboard function priority list]] - reorganizing FlightGear keybindings
<span style="font-size:105%; font-weight:bold">[[Nasal|Scripting]]</span><br />
* [[FlightGear Sessions]] - discussing possible steps to finally allow aircraft to be reliably switched at runtime
<span style="font-style:italic;">
* [[Formalizing Aircraft Status]] - discussing suggestions about how to more properly describe aircraft development status
[[Nasal FAQ|Frequently asked questions]] · [[Howto:Write simple scripts in Nasal|Writing simple scripts]] <br />
* [[Simplifying Aircraft Deployment]] - identifying potential steps to simplify deployment of FlightGear aircraft
[[Nasal for C++ programmers]] · [[Nasal Variables|Variables and their types]] <br />
* [[FDM engine feature standardization]] - discussing possible steps to standardize feature support of mainstream FlightGear FDM engines
[[Nasal Conditionals|Conditionals]] · [[Nasal Loops|Loops]] · [[Nasal Operators|Operators]] · [[Nasal Console|In-sim console]]</span>
* [[FlightGear Glass Cockpits]] - discussing required infrastructure changes to enable non-developers to easily access FlightGear-internals in order to enable them to model complex glass cockpit-type aircraft instrumentation systems
* [[Recommended Property Tree Enhancements]] - discussing possible property tree enhancements to help ensure integrity of crucial runtime state
* [[Backwards Compatibility Initiative]] - discussing possible ways to improve FlightGear's backwards compatibility
* [[Recommended Project Policies]] - discussing recommended policies for future contributions to the project
* [[Distributed Interactive Simulation]] - discussing possible steps to prepare FlightGear for HLA
* [[Property Tree Reorganization]] - reorganizing the property tree (i.e. implementing and enforcing existing property/node naming conventions)


=== Miscellaneous ===
  |rightcolumn10= [[File:Animation Icon.png|40px]] </div>
* [[ Glass Cockpit Projects ]]
<span style="font-size:105%; font-weight:bold">Effects and shaders</span><br />
* [[ Copyright Inquiry ]]
<span style="font-style:italic;">
* [http://www.cafepress.com/fgfs_gear FlightGear - Gear]  
[[Shaders]] · [[Project Rembrandt]]<br/>
* [[ Sign Specification Proposal ]]
[[Howto:Shader Programming in FlightGear|Shader programming in FlightGear]]<br/>
[[Shader Coding - Best Practices|Best Practices]] · [[GLSL Shader Programming Resources|GLSL resources]]</span>
 
<!-------------------------------------------------------------
                    Main sections
-------------------------------------------------------------->
  |sections=


== Middleware & Base Package Development ==
{{Main page/Leftbox|title=Put a piece of yourself into FlightGear!
  |contents=In FlightGear, "development" is [[Howto:Understand the FlightGear development process|anything that improves the project]]. So, it's not just code-related [[Howto:Start core development|core development]]. There's also [[Portal:Developer/Scenery|scenery development]], [[Portal:Developer/Aircraft|aircraft development]] and all the stuff you can see in the column here on the right. If you want an extended overview, check out the [[Volunteer]] page.


* [[:Category:Aircraft TODO]]
Actually that's not all you can contribute. There's also documentation, with the [[FlightGear Manual]]... and this wiki of course! To contribute to the wiki, head off to the [[Portal:Wiki|Wiki Portal]]. There's a lot to do there too.


=== Misc ===
If you want to get in touch with other developers, register an account at the [http://forum.flightgear.org/viewforum.php?f=18 forum], and for core development subscribe to the [[mailing list]] too and consider visiting the {{tickets|Bug tracker}}.
* [[FGSD- How to make a airport]]
 
Remember: we might call it volunteering, but what should drive you is [[How the FlightGear project works|the fun of doing something]].
}}
 
{{Main page/Leftbox|title=For core developers
  |contents=
Visit [[:Category:Core development projects]] to see a list of currently ongoing projects!
See [[:Category:Developer Plans]] to see a list of developer plans for the upcoming release.
See [[request for comments]] for a list of long-standing issues and challenges affecting FlightGear's evolution and overall development progress (admittedly a little outdated meanwhile). Also see the [http://build.flightgear.org:8080 Jenkins build page] and the {{tickets|Bug tracker}}.
}}
 
{{Main page/Leftbox|title=Coding Help Needed! (Updated 06/2020)
  |contents=
* {{Progressbar|20}} [[Deboosting FlightGear|Replacing boost]]
* {{Pending}} [[World Scenery 3.0 roadmap]]
* {{Pending}} [[Reset & re-init]]
* {{Pending}} [[Canvas Development]] - discusses possible future Canvas additions
}}
 
}}
 
[[Category:Portals]]
 
[[ca:Portal:Desenvolupador]]
[[de:Portal:Entiwcklung]]
[[es:Portal:Desarrollo]]
[[fr:Portal:Développeur]]
[[it:Portal:Sviluppo]]
[[pl:Portal:Developer]]
[[sr:Portal:Razvoj]]
[[zh:Portal:Developer]]

Latest revision as of 15:31, 18 March 2024

Welcome to the developer portal

Please visit our forum if you cannot find what you're looking for.
 
 

Put a piece of yourself into FlightGear!

In FlightGear, "development" is anything that improves the project. So, it's not just code-related core development. There's also scenery development, aircraft development and all the stuff you can see in the column here on the right. If you want an extended overview, check out the Volunteer page.

Actually that's not all you can contribute. There's also documentation, with the FlightGear Manual... and this wiki of course! To contribute to the wiki, head off to the Wiki Portal. There's a lot to do there too.

If you want to get in touch with other developers, register an account at the forum, and for core development subscribe to the mailing list too and consider visiting the Bug tracker.

Remember: we might call it volunteering, but what should drive you is the fun of doing something.
 
 

For core developers

Visit Category:Core development projects to see a list of currently ongoing projects! See Category:Developer Plans to see a list of developer plans for the upcoming release.

See request for comments for a list of long-standing issues and challenges affecting FlightGear's evolution and overall development progress (admittedly a little outdated meanwhile). Also see the Jenkins build page and the Bug tracker.
 
 

Coding Help Needed! (Updated 06/2020)

Development repository status

Current release: 2020.3.19 (18 Oct 2023)
Next release: 2020.3.20
See release plan for details.

Getting started
How the FlightGear project works
The development process · Release plan
Building FlightGear · Git · Build server
Property tree · File formats · Tools of the Trade · Bug tracker

Feeds
Forum posts
Wiki changes
Bugs
FGData RSS feed
FlightGear RSS feed
SimGear RSS feed

General
Long term goals · Popular Ideas · Virtual FSweekend Hackathon 2021
Improving glider realism / helicopter realism
Setting up a multiplayer server · Expo checklist

Portal aircraft.png

Aircraft
Howto:Troubleshooting Aircraft Performance Issues· Making an aircraft · Flight dynamics model
3D aircraft models · Liveries · Resources
Soaring instrumentation sdk · Creating instruments · System dependent instruments
Designing an autopilot

Nuvola apps kaboodle.png

Animations
Animate models · Illuminate objects
Gear scissors (with tracking animation)
Clickable panels · Knob / slider animation

Portal developer.png

Core
List of Core Developers · Developer Plans · Projects
Getting started · Programming resources · Adding scripting bindings
Adding fgcommands · Creating subsystems
Built-in Profiler · Howto:Extend Nasal · Howto:Using Ada in FlightGear
Howto:Use Property Tree Objects · Code cleanup
FlightGear-Points of Interest · Request for comments
OpenSceneGraph · Rendering system improvements · Jenkins build page · Bug tracker

Portal scenery.png

Scenery
Procedural Texturing
Placing objects · Airport signs
Converting from X-Plane/MSFS
Making an airport · Generating terrain
AI Traffic · Quick links: Improve your area - where & how to improve something you see

Nasallogo3.png

Scripting
Frequently asked questions · Writing simple scripts
Nasal for C++ programmers · Variables and their types
Conditionals · Loops · Operators · In-sim console