Howto:Start core development: Difference between revisions

Jump to navigation Jump to search
m
Fix internal wiki links
m (→‎The source code: undo/improve previous change: explicit linsk are to be avoided, in case the underlying infrastructure is migrated - e.g. see the simgear/flightgear repo merge currently discussed)
m (Fix internal wiki links)
Line 187: Line 187:
= Ongoing efforts =
= Ongoing efforts =


Anybody working on FG's source code, should be aware of the [[FGViewer]] trend (decoupling the viewer from the simulation using a [http://wiki.flightgear.org/FlightGear_Headless headless mode] 1) to improve frame rate and latencies, but 2) also to support distributed multi-screen setups) and also the long-term goal to use [http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00108.html OSG's CompositeViewer] for all of the FG views - so modifications to the existing viewer in $FG_SRC/Viewer should probbaly keep these things in mind to align well with other ongoing developments: http://wiki.flightgear.org/Howto:Use_a_Camera_View_in_an_Instrument#osgViewer::CompositeViewer
Anybody working on FG's source code, should be aware of the [[FGViewer]] trend (decoupling the viewer from the simulation using a [[FlightGear_Headless|headless mode]] 1) to improve frame rate and latencies, but 2) also to support distributed multi-screen setups) and also the long-term goal to use [http://trac.openscenegraph.org/documentation/OpenSceneGraphReferenceDocs/a00108.html OSG's CompositeViewer] for all of the FG views - so modifications to the existing viewer in $FG_SRC/Viewer should probbaly keep these things in mind to align well with other ongoing developments: [[Howto:Use a Camera View in an Instrument#osgViewer::CompositeViewer]]


An old PDF describing some of the challenges that FlightGear developers are trying to solve through HLA/[[FlightGear CIGI Support (Common Image Generator Interface)|CIGI]] adoption can be found at: http://wiki.flightgear.org/flightgear_wiki/images/1/1e/New_FG_architecture.pdf
An old PDF describing some of the challenges that FlightGear developers are trying to solve through HLA/[[FlightGear CIGI Support (Common Image Generator Interface)|CIGI]] adoption can be found at: [[File:New FG architecture.pdf]]


The FlightGear state of all HLA things is documented at: http://wiki.flightgear.org/FlightGear_HLA_support_(High_Level_Architecture)
The FlightGear state of all HLA things is documented at: [[FlightGear HLA support (High Level Architecture)]]


Introductory HLA resources are collected at: http://wiki.flightgear.org/Developing_with_HLA#Resources
Introductory HLA resources are collected at: [[Developing with HLA#Resources]]


In developer's terms, that mostly boils down to:
In developer's terms, that mostly boils down to:
Line 201: Line 201:
* expect the 2D rendering backend (GUI, instruments, HUDs etc) to be increasingly unified through the [[Canvas]] system
* expect the 2D rendering backend (GUI, instruments, HUDs etc) to be increasingly unified through the [[Canvas]] system
* expect [[FGPanel|FGPanel standalone panel rendering]] functionality to be merged back into the main fgfs code base, provided through [[FGViewer]]
* expect [[FGPanel|FGPanel standalone panel rendering]] functionality to be merged back into the main fgfs code base, provided through [[FGViewer]]
* expect more work towards better system-wide reinit/reset support: http://wiki.flightgear.org/Reset_%26_re-init
* expect more work towards better system-wide reinit/reset support: [[Reset & re-init]]
* expect more and more launcher features to be integrated and provided as part of FlightGear {{forum link|p=191451}}
* expect more and more launcher features to be integrated and provided as part of FlightGear {{forum link|p=191451}}
* expect FDMs to become re-initializable at runtime, expect support for multiple FDMs per session
* expect FDMs to become re-initializable at runtime, expect support for multiple FDMs per session
* expect more subsystem to become re-initializable at runtime, so that they can be dynamically enabled/disabled to facilitate the fgviewer and headless efforts: http://wiki.flightgear.org/FlightGear_Run_Levels
* expect more subsystem to become re-initializable at runtime, so that they can be dynamically enabled/disabled to facilitate the fgviewer and headless efforts: [[FlightGear Run Levels]]
* expect more and and more mainloop subsystems to eventually become standalone threads/processes (that is, HLA federates) (FDM, AI traffic, scripting etc) to guarantee better viewer performance
* expect more and and more mainloop subsystems to eventually become standalone threads/processes (that is, HLA federates) (FDM, AI traffic, scripting etc) to guarantee better viewer performance
* expect the existing multiplayer system to be completely phased out and replaced by HLA
* expect the existing multiplayer system to be completely phased out and replaced by HLA
Line 215: Line 215:
For doxygen docs, see: http://docs.freeflightsim.org/
For doxygen docs, see: http://docs.freeflightsim.org/


In less broader (and more outdated) terms, a list of the latest development efforts can be found at http://wiki.flightgear.org/Category:Core_development_projects
In less broader (and more outdated) terms, a list of the latest development efforts can be found at [[:Category:Core development projects]]
If you have anything to add, please feel free to create a new wiki article.
If you have anything to add, please feel free to create a new wiki article.
Also, contributing such news to the FlightGear [[Next newsletter|newsletter]] is another good idea.
Also, contributing such news to the FlightGear [[Next newsletter|newsletter]] is another good idea.
Line 223: Line 223:
However, please take everything you'll find there with a grain of salt, because many of these articles haven't been updated over the years, so what may have seemed like a great idea 2-3 years ago, may already be depreciated meanwhile. On the other hand, those articles may still help you get a better understanding of architectural issues. In case of doubt, please get in touch with fellow developers.
However, please take everything you'll find there with a grain of salt, because many of these articles haven't been updated over the years, so what may have seemed like a great idea 2-3 years ago, may already be depreciated meanwhile. On the other hand, those articles may still help you get a better understanding of architectural issues. In case of doubt, please get in touch with fellow developers.


Also, there's another outdated category titled "Code Cleanup": http://wiki.flightgear.org/Category:Code_Cleanup
Also, there's another outdated category titled "Code Cleanup": [[:Category:Code Cleanup]]


Another option would be taking a look at the "Google Summer of Code" category which also lists project ideas collected over the years:  [[GSoC: Candidate Projects]]. We also have a separate sub forum for GSoC here: {{forum url|f=38}}
Another option would be taking a look at the "Google Summer of Code" category which also lists project ideas collected over the years:  [[GSoC: Candidate Projects]]. We also have a separate sub forum for GSoC here: {{forum url|f=38}}
Line 231: Line 231:
= Issue tracking =
= Issue tracking =


Ideas (feature requests actually) and bug reports are ideally reported using the issue tracker here: http://flightgear-bugs.googlecode.com/
Ideas (feature requests actually) and bug reports are ideally reported using the issue tracker here: https://sourceforge.net/p/flightgear/codetickets/


Please make sure to first search the issue tracker before possibly reporting a dupe, thanks!
Please make sure to first search the issue tracker before possibly reporting a dupe, thanks!
Line 262: Line 262:
API docs auto generated from source are at http://api-docs.freeflightsim.org/
API docs auto generated from source are at http://api-docs.freeflightsim.org/


Even more documentation can be found in our wiki, here: http://wiki.flightgear.org/
Even more documentation can be found in this wiki. The wiki is divided into different "portals", you'll probably be interested in [[Portal:Developer|the developers portal]] here.
 
The wiki is divided into different "portals", you'll probably be interested in the developers portal here: http://wiki.flightgear.org/Portal:Developer


You are obviously invited to start your own wiki articles, in order to document your projects or help improving existing documentation. Also, some core developers actually use the wiki to post their own development roadmaps. For example, see: [[Plan-zakalawe]] or [[Project Rembrandt]].
You are obviously invited to start your own wiki articles, in order to document your projects or help improving existing documentation. Also, some core developers actually use the wiki to post their own development roadmaps. For example, see: [[Plan-zakalawe]] or [[Project Rembrandt]].
Line 288: Line 286:


== Plain C ? (Nasal) ==
== Plain C ? (Nasal) ==
If your C++ is rusty and you'd just like to get started quickly, there are also certain FG components that are strictly (largely) pure C, the Nasal interpreter is just one example (Nasal is FlightGear's built in scripting language): http://wiki.flightgear.org/Nasal_scripting_language
If your C++ is rusty and you'd just like to get started quickly, there are also certain FG components that are strictly (largely) pure C, the Nasal interpreter is just one example (Nasal is FlightGear's built in scripting language): [[Nasal scripting language]]


The Nasal interpreter is part of the SimGear project, and can be found in $SG_SRC/nasal: {{simgear url|trees/next/simgear/nasal}}
The Nasal interpreter is part of the SimGear project, and can be found in $SG_SRC/nasal: {{simgear url|trees/next/simgear/nasal}}
Line 420: Line 418:
= Finally =
= Finally =


...please don't get discouraged if you shouldn't get too much feedback in the beginning, probably many contributors are busy preparing the next release: http://wiki.flightgear.org/Release_plan
...please don't get discouraged if you shouldn't get too much feedback in the beginning, probably many contributors are busy preparing the next release: [[Release plan]]


Lack of feedback doesn't necessarily mean that nobody likes your project or your ideas, probably it just means that you need to do some networking to get in touch with other contributors.  
Lack of feedback doesn't necessarily mean that nobody likes your project or your ideas, probably it just means that you need to do some networking to get in touch with other contributors.  

Navigation menu