Difference between revisions of "Portal:Developer"

From FlightGear wiki
Jump to: navigation, search
m
m (+-link: Category:Aircraft Resources → Category:Aircraft resources)
 
(47 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 
{{Main page/Header
 
{{Main page/Header
 
   |title=Welcome to the developer portal
 
   |title=Welcome to the developer portal
   |introduction=Please visit [http://flightgear.org/forums our forum] if you cannot find what you're looking for.
+
   |introduction=Please visit [http://forum.flightgear.org our forum] if you cannot find what you're looking for.
 
   |rightbox=
 
   |rightbox=
 
<!-------------------------------------------------------------
 
<!-------------------------------------------------------------
Line 7: Line 7:
 
-------------------------------------------------------------->
 
-------------------------------------------------------------->
 
   |rightcolumn1= </div>
 
   |rightcolumn1= </div>
{{Main page/Rightcolumn end
+
<span style="font-size:105%; font-weight:bold">[[FlightGear and Git|Development repository status]]</span><br />
  |title= [[FlightGear and Git|Development repository status]]
+
<center style="padding-top:.9em;">{{GitStatus}}</center>
  |contents= <center style="padding-top:.9em;">{{GitStatus}}</center>
+
  |padding-right=23px
+
}}
+
  
 +
  |rightcolumn2= </div>
 
<span style="font-size:105%; font-weight:bold">Getting started</span><br />
 
<span style="font-size:105%; font-weight:bold">Getting started</span><br />
 
<span style="font-style:italic;">
 
<span style="font-style:italic;">
Line 20: Line 18:
 
[[Property tree]] · [[File formats]] · [[Tools of the Trade]]</span>
 
[[Property tree]] · [[File formats]] · [[Tools of the Trade]]</span>
  
   |rightcolumn2= </div>
+
   |rightcolumn3= </div>
 
<span style="font-size:105%; font-weight:bold">General</span><br />
 
<span style="font-size:105%; font-weight:bold">General</span><br />
 
<span style="font-style:italic;">
 
<span style="font-style:italic;">
[[Long Term Goals|Long term goals]] · [[Google Summer of Code]]<br/>
+
[[Long Term Goals|Long term goals]] · [[:Category:Popular Community Requests|Popular Ideas]] · [[Google Summer of Code]]<br/>
 
[[Project Infrastructure Enhancements|Project infrastructure enhancements]]<br/>
 
[[Project Infrastructure Enhancements|Project infrastructure enhancements]]<br/>
 
[[Improving Glider Realism|Improving glider realism]] / [[Improving Helicopter Realism|helicopter realism]]<br/>
 
[[Improving Glider Realism|Improving glider realism]] / [[Improving Helicopter Realism|helicopter realism]]<br/>
 
[[Howto:Set up a multiplayer server|Setting up a multiplayer server]] · [[FlightGear Expo Checklist|Expo checklist]]</span>
 
[[Howto:Set up a multiplayer server|Setting up a multiplayer server]] · [[FlightGear Expo Checklist|Expo checklist]]</span>
  
   |rightcolumn3= [[File:Nuvola apps kaboodle.png|40px]] </div>
+
   |rightcolumn4= [[File:Portal aircraft.png|40px]]</div>
 
<span style="font-size:105%; font-weight:bold">[[Portal:Developer/Aircraft|Aircraft]]</span><br />
 
<span style="font-size:105%; font-weight:bold">[[Portal:Developer/Aircraft|Aircraft]]</span><br />
 
<span style="font-style:italic;">
 
<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: 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/>
+
[[Howto: 3D Aircraft Models|3D aircraft models]] · [[Howto: Edit a livery|Liveries]] · [[:Category:Aircraft resources|Resources]]<br/>
[[Creating instruments for FG|Creating instruments]] · [[System dependent instruments|System dependent instruments]]<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>
 
[[Howto: Design an autopilot|Designing an autopilot]]</span>
  
   |rightcolumn4= [[File:Portal developer.png|40px]] </div>
+
   |rightcolumn5= [[File:Nuvola apps kaboodle.png|40px]] </div>
 
<span style="font-size:105%; font-weight:bold">Animations</span><br />
 
<span style="font-size:105%; font-weight:bold">Animations</span><br />
 
<span style="font-style:italic;">
 
<span style="font-style:italic;">
Line 43: Line 42:
 
[[Howto: Make a clickable panel|Clickable panels]] · [[Knob / slider animation]]</span>
 
[[Howto: Make a clickable panel|Clickable panels]] · [[Knob / slider animation]]</span>
  
  |rightcolumn5= [[File:Portal aircraft.png|40px]] </div>
+
  |rightcolumn6= [[File:Portal developer.png|40px]] </div>
 
<span style="font-size:105%; font-weight:bold">Core</span><br />
 
<span style="font-size:105%; font-weight:bold">Core</span><br />
 
<span style="font-style:italic;">
 
<span style="font-style:italic;">
 
[[:Category:FlightGear Core developers|List of Core Developers]] · [[:Category:Developer Plans|Developer Plans]] · [[:Category:Core development projects|Projects]] <br/>
 
[[: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]] <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/>
 
[[Howto:Add new fgcommands to FlightGear|Adding fgcommands]] · [[Howto:Create new subsystems|Creating subsystems]] <br/>
[[Built-in Profiler]] · [[Howto:Extend Nasal]] <br/>
+
[[Built-in Profiler]] · [[Howto:Extend Nasal]] · [[Howto:Using Ada in FlightGear]] <small>(<font color="red">updated!</font>)</small><br/>
 
[[Howto:Use Property Tree Objects]] · [[Code cleanup]] <br/>
 
[[Howto:Use Property Tree Objects]] · [[Code cleanup]] <br/>
 
[[FlightGear-Points of Interest]] · [[Request for comments]] <br/>
 
[[FlightGear-Points of Interest]] · [[Request for comments]] <br/>
 
[[OpenSceneGraph]] · [[Rendering system improvements]]</span>
 
[[OpenSceneGraph]] · [[Rendering system improvements]]</span>
  
  |rightcolumn6=  </div>
+
   |rightcolumn7= [[File:Portal scenery.png|40px]] </div>
<span style="font-size:105%; font-weight:bold">[[Portal:Developer/Nasal|FlightGear Scripting with Nasal]]</span><br />
+
<span style="font-style:italic;">
+
[[Nasal FAQ|Frequently asked questions]] · [[Howto:Write simple scripts in Nasal|Writing simple scripts]] <br />
+
[[Nasal for C++ programmers]] · [[Nasal Variables|Variables and their types]] <br />
+
[[Nasal Conditionals|Conditionals]] · [[Nasal Loops|Loops]] · [[Nasal Operators|Operators]] · [[Nasal Console|In-sim Console]]</span>
+
 
+
   |rightcolumn7= [[File:Portal scenery.png|40px]]<br/> </div>
+
 
<span style="font-size:105%; font-weight:bold">[[Portal:Developer/Scenery|Scenery]]</span><br />
 
<span style="font-size:105%; font-weight:bold">[[Portal:Developer/Scenery|Scenery]]</span><br />
 
<span style="font-style:italic;">
 
<span style="font-style:italic;">
Line 68: Line 60:
 
[[Howto: Convert objects from X-Plane|Converting from X-Plane/MSFS]]<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/>
 
[[Howto: Make an airport|Making an airport]] · [[Using TerraGear|Generating terrain]]<br/>
[[Interactive traffic]]</span>
+
[[AI Traffic]]</span>
 +
 
 +
  |rightcolumn8= [[File:Nasallogo3.png|40px]] </div>
 +
<span style="font-size:105%; font-weight:bold">[[Nasal|Scripting]]</span><br />
 +
<span style="font-style:italic;">
 +
[[Nasal FAQ|Frequently asked questions]] · [[Howto:Write simple scripts in Nasal|Writing simple scripts]] <br />
 +
[[Nasal for C++ programmers]] · [[Nasal Variables|Variables and their types]] <br />
 +
[[Nasal Conditionals|Conditionals]] · [[Nasal Loops|Loops]] · [[Nasal Operators|Operators]] · [[Nasal Console|In-sim console]]</span>
 +
 
 +
  |rightcolumn9= [[File:Animation Icon.png|40px]] </div>
 +
<span style="font-size:105%; font-weight:bold">Effects and shaders</span><br />
 +
<span style="font-style:italic;">
 +
[[Shaders]] · [[Project Rembrandt]]<br/>
 +
[[Howto:Shader Programming in FlightGear|Shader programming in FlightGear]]<br/>
 +
[[Shader Coding - Best Practices|Best Practices]] · [[GLSL Shader Programming Resources|GLSL resources]]</span>
 
    
 
    
 
<!-------------------------------------------------------------
 
<!-------------------------------------------------------------
Line 74: Line 80:
 
-------------------------------------------------------------->
 
-------------------------------------------------------------->
 
   |sections=
 
   |sections=
{{Main page/Leftbox|title=Get involved!
 
  |contents=If you would like to help with FlightGear's development, it's a good idea to subscribe yourself to the FlightGear development [[mailing list]]. Use the list or the FlightGear [http://code.google.com/p/flightgear-bugs issue tracker] to get in touch with fellow FlightGear core developers.
 
  
Visit [[:Category:Core development projects]] to see a list of currently ongoing projects!
+
{{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 left. 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 [[Portal:Wiki|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 [http://forum.flightgear.org/viewforum.php?f=18 forum], and for core development subscribe to the [[mailing list]] too and consider visiting the {{tickets|issue tracker}}.
 +
 
 +
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 [[: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).
 
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).
  
'''Help needed:''' SimGear 2.11+ now has experimental support for a libsvn replacement, people building from source are encouraged to help with testing and debugging this new feature:
+
'''Help needed:'''  
 +
 
 +
The [[YASim]] FDM is looking for a new maintainer:
 +
 
 +
{{cquote|There are some pending merge requests[http://sourceforge.net/p/flightgear/mailman/flightgear-devel/thread/533DBD01.9040802%40sol2500.net/#msg32183541] to add some YASim features, but we have an issue that since none of the current C++ developers own, or are experts in YASim, we're reluctant to be the person who merges such changes, and potentially introduces subtle regressions.
 +
 
 +
Obviously this is chicken-and-egg, since no one can become expert enough in the  code to become a maintainer :)
  
{{cquote|<nowiki>First, I need some help; for people to rebuild simgear with -DSG_SVN_CLIENT=1, and mv / erase their TerraSync dir. Then simply run FGFS as normal, as if you were starting on a new machine / account with no previous use of TerraSync.</nowiki><ref>{{cite web |url=http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40191.html|title=TerraSync libSVN replacement testing|author=James Turner|date=Tue, 11 Jun 2013 08:58:20 -0700}}</ref>|James Turner}}
+
So, I'm more than happy to apply patches *providing* I can be convinced they are sane+reasonable from a pure code perspective (happy to help with that, too,
 +
if people are new to C++), and providing we have some assurance that a representative sample of YASim aircraft are unchanged or improved by the patch.  
 +
Suggestions for that means in practice, are most welcome!
  
{{cquote|<nowiki>So, as I've previously asked before, I really need people running from 'next'
+
Otherwise I worry, given the nature of the solver, we'll keep optimising the solver for some aircraft, and making other existing aircraft worse - until someone tests them, and announced that they're no longer working.<ref>{{cite web |url=http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg23986.html
to try with -DSG_SVN_CLIENT=1 when configuring SimGear, move their existing  
+
|title=YASim and documentation
TerraSync dir out the way, and test, test, test. I'm sure the new code isn't
+
|author=James Turner |date= Fri, 05 Oct 2012 03:54:43 -0700}}</ref>|James Turner}}
100% trouble free (in particular I think there is still the occasional time
+
when it gets stuck not doing any more downloads until FG is restarted), but I
+
really don't want to move forwards with the code until I have a bit more
+
assurance it's not going to make everyone's setup crash 80% of the time, which
+
is what some people have reported.
+
  
Note this applies even if you 'don't use' terrasync since the SVN sync engine
+
{{cquote|I am still broadly happy to answer questions if posed (as long as I remember enough to come up with a meaningful answer). Just cc: me if you do, because my latencies here are measured in weeks.Bugs can always be fixed.  What YASim needs is a maintainer, not really expertise per se.  The latter comes from the former.<ref>{{cite web |url=http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg23986.html  
is going to be used for other pieces of data as soon as it's stable. (I will be  
+
|title=YASim and documentation
adding a new preference to globally control whether FG works in online/offline
+
|author=Andy Ross |date= Fri, 05 Oct 2012 03:54:43 -0700}}</ref>|Andy Ross}}
mode, of course)</nowiki><ref>{{cite web |url=http://www.mail-archive.com/flightgear-devel@lists.sourceforge.net/msg40775.html|title=<nowiki>[Flightgear-devel] Built-in Svn client code crashing</nowiki>|author=<nowiki>James Turner</nowiki>|date=<nowiki>Fri, 20 Sep 2013 09:54:38 -0700</nowiki>}}</ref>|<nowiki>James Turner</nowiki>}}
+
  
 
<references/>
 
<references/>
Line 103: Line 120:
 
}}
 
}}
  
{{Main page/Leftbox|title=Coding Help Needed! (Updated 03/2013)
+
{{Main page/Leftbox|title=Coding Help Needed! (Updated 06/2020)
 
   |contents=
 
   |contents=
* {{Pending}} [[FlightGear 3.0  backlog]] a backlog of open items for the 3.0 release
+
* {{Progressbar|70}} [[Compositor#TODO|Compositor roadmap]]
* {{Pending}} [[Reset & re-init]] and [[Fixing Presets]]
+
* {{Progressbar|40}} [[Deboosting FlightGear|Replacing boost]]
* {{Pending}} [[USB HID Support]] - mapping USB/HID devices onto the property tree
+
* {{Pending}} [[CompositeViewer Support|Switching to osgViewer::CompositeViewer]] (multiple scenery cameras and moving maps)
* {{Pending}} [[Project Rembrandt#TODO List|Project Rembrandt (Todo List)]] (Shadows/Deferred Rendering: OpenGL/OSG, C++)
+
* {{Pending}} [[World Scenery 3.0 roadmap]]  
 +
* {{Pending}} [[Reset & re-init]]  
 +
* {{Pending}} [[Canvas Development]] - discusses possible future Canvas additions
 
* {{Pending}} [[Canvas Properties#Planned Features|Canvas Project (Planned Features)]] (fully scriptable 2D rendering API)
 
* {{Pending}} [[Canvas Properties#Planned Features|Canvas Project (Planned Features)]] (fully scriptable 2D rendering API)
 
* {{Pending}} [[Canvas Widgets#Missing_.2F_Todo|Canvas Widgets (Missing Features)]] (Canvas GUI layer for scriptable widgets)
 
* {{Pending}} [[Canvas Widgets#Missing_.2F_Todo|Canvas Widgets (Missing Features)]] (Canvas GUI layer for scriptable widgets)
* {{Pending}} [[Integrating FGCom]] - adding iaxclient to FlightGear
 
 
* {{Pending}} [[Howto:Use Property Tree Objects|Depreciate tied properties and use PropertyObjects instead]]
 
* {{Pending}} [[Howto:Use Property Tree Objects|Depreciate tied properties and use PropertyObjects instead]]
* {{Pending}} [[A_local_weather_system#Feature_requests_on_the_C.2B.2B_side|Local weather system Improvements]] (Requested C++ Changes)
 
* {{Pending}} [[Airport data (apt.dat) update]] (switch to the newer 850 format)
 
* {{Pending}} [[How the Nasal GC works|Fixing the Garbage Collector]] (the GC in [[Nasal]] needs to be improved)
 
* {{Pending}} [[Howto:Use a Camera View in an Instrument#osgViewer::CompositeViewer|Switching to osgViewer::CompositeViewer]] (multiple scenery cameras and moving maps)
 
<!--
 
* {{Pending}} [[FlightGear Run Levels|Subsystem allocation and re-initialization via listeners]] (Making subsystems optional and more configurable)
 
-->
 
  
 
}}
 
}}
Line 125: Line 136:
  
 
{{Main page/Leftbox|title=Wanted: interview candidates
 
{{Main page/Leftbox|title=Wanted: interview candidates
   |contents=Every month we try to include an interview with a contributor in the [[FlightGear Newsletter]]. Anyone contributing to FlightGear, in whatever way, is welcome to answer a bunch of questions and write his/her own interview.
+
   |contents=Every month we try to include an interview with a contributor in the [[FlightGear Newsletter]]. Anyone contributing to FlightGear, in whatever way, is welcome to answer a few questions and write his/her own interview.
  
 
More info at [[FlightGear Newsletter: Interview]].
 
More info at [[FlightGear Newsletter: Interview]].
Line 131: Line 142:
 
}}
 
}}
  
[[Category:FlightGear wiki:Portals]]
+
[[Category:Portals]]
  
 +
[[ca:Portal:Desenvolupador]]
 +
[[es:Portal:Desarrollo]]
 +
[[de:Portal:Entiwcklung]]
 
[[fr:Portal:Développeur]]
 
[[fr:Portal:Développeur]]
 +
[[sr:Portal:Razvoj]]
 +
[[zh:Portal:Developer]]

Latest revision as of 23:38, 5 September 2020

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 left. 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 issue 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).

Help needed:

The YASim FDM is looking for a new maintainer:

Cquote1.png There are some pending merge requests[1] to add some YASim features, but we have an issue that since none of the current C++ developers own, or are experts in YASim, we're reluctant to be the person who merges such changes, and potentially introduces subtle regressions.

Obviously this is chicken-and-egg, since no one can become expert enough in the code to become a maintainer :)

So, I'm more than happy to apply patches *providing* I can be convinced they are sane+reasonable from a pure code perspective (happy to help with that, too, if people are new to C++), and providing we have some assurance that a representative sample of YASim aircraft are unchanged or improved by the patch. Suggestions for that means in practice, are most welcome!

Otherwise I worry, given the nature of the solver, we'll keep optimising the solver for some aircraft, and making other existing aircraft worse - until someone tests them, and announced that they're no longer working.[1]
— James Turner
Cquote2.png
Cquote1.png I am still broadly happy to answer questions if posed (as long as I remember enough to come up with a meaningful answer). Just cc: me if you do, because my latencies here are measured in weeks.Bugs can always be fixed. What YASim needs is a maintainer, not really expertise per se. The latter comes from the former.[2]
— Andy Ross
Cquote2.png
  1. James Turner (Fri, 05 Oct 2012 03:54:43 -0700). YASim and documentation.
  2. Andy Ross (Fri, 05 Oct 2012 03:54:43 -0700). YASim and documentation.
 
 

Coding Help Needed! (Updated 06/2020)


 
 

Wanted: interview candidates

Every month we try to include an interview with a contributor in the FlightGear Newsletter. Anyone contributing to FlightGear, in whatever way, is welcome to answer a few questions and write his/her own interview.

More info at FlightGear Newsletter: Interview.

Development repository status

Current release: 2020.1 (26 Jun 2020)
Next release: 2020.3 (4 days from now)
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

General
Long term goals · Popular Ideas · Google Summer of Code
Project infrastructure enhancements
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 · 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 (updated!)
Howto:Use Property Tree Objects · Code cleanup
FlightGear-Points of Interest · Request for comments
OpenSceneGraph · Rendering system improvements

Portal scenery.png

Scenery
Procedural Texturing
Placing objects · Airport signs
Converting from X-Plane/MSFS
Making an airport · Generating terrain
AI Traffic

Nasallogo3.png

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

Animation Icon.png

Effects and shaders
Shaders · Project Rembrandt
Shader programming in FlightGear
Best Practices · GLSL resources