User:Callahanp/Flightgear and Simgear Code

From FlightGear wiki
Jump to navigation Jump to search

Flightgear and Simgear Code

Getting Started or Rebooting

This is my personal attempt to describe aspects of the Flightgear and Simgear Codebase as I learn how to do maintenenance, bug fixes and eventually, (one hopes!) new contributions to the project. Caveat: I'm doing this not as a software beginner, but as someone new to Flightgear's codebase and to modern C++. Any specific statements about flightgear's code may not have been checked for accuracy by people who know the topics better than me. While its unlikely that what I write will be totally off base, there may be specifics that I get wrong.

I learned C++ in the 1990's, but never got a chance to apply it in my work. I'm retired and now's the time.

I got encouragement from the core developers. Then I read a lot of stuff on the wiki about how the project actually works. Then I got to work. Detailed work. I'm not about to ask the core developers to hold my hand and walk me through it all. But of course advice is always welcome and I'll be asking a few questions on the developer's mailing list.

Things almost ready for prime time

Here's what I've explored so far:

What's in progress

What's next

At this point I think the following topics are now open for further exploration:

At some point while exploring the topics above, I'll be taking a closer look at some of these: Application Code Structures:



  • Any Method to Set or Get a Property
  • The Property Tree
  • Why Properties are Tied and why you can't subscribe to them through telnet. See: Howto:Use Property Tree Objects (the background here being that tied properties don't use the listener interface, but are basically raw pointers (references actually) - thus, listeners never "see" values being changed, because that would require using the public SGPropertyNode API to change the value, whereas tied properties access the raw memory directly - they were a performance hack introduced over a decade ago).

Things that seemed like a good idea at the time

  • A look at where and how extensively particular Language Features are used in Flightgear.]] This page will be a long term effort, or will be cancelled.

Maybe separate pages for: