FlightGear Newsletter September 2010: Difference between revisions

Jump to navigation Jump to search
m
no edit summary
m (Protected "FlightGear Newsletter September 2010" ([edit=sysop] (indefinite) [move=sysop] (indefinite)))
mNo edit summary
Line 2: Line 2:
{{TOC_right}}
{{TOC_right}}
''We would like to emphasize that the monthly newsletter can not live without the contributions of FlightGear users and developers. Everyone with a wiki account (free to register) can edit the newsletter and every contribution is welcome. So if you know about any FlightGear related projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter.''
''We would like to emphasize that the monthly newsletter can not live without the contributions of FlightGear users and developers. Everyone with a wiki account (free to register) can edit the newsletter and every contribution is welcome. So if you know about any FlightGear related projects such as for example updated scenery or aircraft, please do feel invited to add such news to the newsletter.''
With lots of interesting developments going on, from sun-reflecting water, to an AI-route creator and from moveable heli pads to several new wiki articles, there was plenty to write about. I am proud to welcome you to the largest edition so far of the monthly [[FlightGear]] newsletter!


== Development news ==
== Development news ==
===Local Weather v0.85===
===Local Weather v0.85===
The [http://www.phy.duke.edu/~trenk/files/local_weather_fgfs2.0.0_v0.85.tgz version 0.85] (also on GIT) of the [[A local weather system|Local Weather package]] is out - with new cloud types and textures and most importantly a significant performance gain over previous versions. There is a new menu to allow the user at runtime to specify cloud visual ranges, so that the impact on framerate can be adjusted to the situation.
The [http://www.phy.duke.edu/~trenk/files/local_weather_fgfs2.0.0_v0.85.tgz version 0.85] (also on [[Git]]) of the [[A local weather system|Local Weather package]] is out - with new cloud types and textures and most importantly a significant performance gain over previous versions. There is a new menu to allow the user at runtime to specify cloud visual ranges, so that the impact on framerate can be adjusted to the situation.


The increased performance means that 3d clouds on fast systems can be rendered out to 45 km, and high altitude 2d cloud sheets sometimes up to 80 km - vastly improving the visual impression of the sky from airliner altitudes.
The increased performance means that 3d clouds on fast systems can be rendered out to 45 km, and high altitude 2d cloud sheets sometimes up to 80 km - vastly improving the visual impression of the sky from airliner altitudes.
Line 29: Line 31:
</gallery>
</gallery>


[[File:new_weather_dialog.png|thumb|200px|The new weather dialog]]
[[File:new_weather_dialog.png|thumb|250px|The new weather dialog]]


=== Weather supporting core code ===
=== Weather supporting core code ===
Line 40: Line 42:
Beware that this feature is under testing, but should work fine.
Beware that this feature is under testing, but should work fine.


[[File:AIWingmenandAITanker.jpg|thumb|200px|AIWingmen and AITanker]]
[[File:AIWingmenandAITanker.jpg|thumb|250px|AIWingmen and AITanker]]


=== AI Objects ===
=== AI Objects ===
Line 51: Line 53:
Further development of the Wingman concept will allow formations to break and reform as shown in [http://www.youtube.com/watch?v=dBcKET9h5E8 this video]. Subject to further testing and tuning this code should be available in Gitorious by early October.  
Further development of the Wingman concept will allow formations to break and reform as shown in [http://www.youtube.com/watch?v=dBcKET9h5E8 this video]. Subject to further testing and tuning this code should be available in Gitorious by early October.  


[[File:FlightPlan_Generator1.png|thumb|270px|A taxi-script example]]
[[File:FlightPlan_Generator1.png|thumb|250px|A taxi-script example]]


===AI FlightPlan Generator===
===AI FlightPlan Generator===
Line 66: Line 68:
</gallery>
</gallery>


[[File:Water shader Ju 52.jpg|thumb|270px|[[Junkers Ju 52]] flying over a lake in the French custom scenery.]]
[[File:Water shader Ju 52.jpg|thumb|250px|[[Junkers Ju 52]] flying over a lake in the French custom scenery.]]


===Water shader improvements===
===Water shader improvements===
Line 148: Line 150:
== Scenery corner ==
== Scenery corner ==
===Historic Nike Hercules Missile Sites===
===Historic Nike Hercules Missile Sites===
[[File:nike missile site3.png|thumb|One of 3 Sites.]]
[[File:nike missile site3.png|thumb|250px|One of three sites.]]
Jack Mermod has begun modeling Historical Nike Hercules Missile Sites. They will all be in the Bay Area. These sites were the last stand of defense in the event of a Soviet Bombing. You can still find evidence of these sites today, and they are a important part of history. Each site has a helipad, in hopes of attracting helicopter pilots to come and explore the sights. So far there are 3 sites that have been made and placed into FlightGear, and the plan is to make 12. The sites will hopefully be available through terrasync soon, but for now you can [http://www.flightgear.org/forums/viewtopic.php?f=5&t=9521 watch this forum topic] to see updates for the sites and download them.
Jack Mermod has begun modeling Historical Nike Hercules Missile Sites. They will all be in the Bay Area. These sites were the last stand of defense in the event of a Soviet bombing. You can still find evidence of these sites today, and they are a important part of history. Each site has a helipad, in hopes of attracting helicopter pilots to come and explore the sights. So far there are three sites that have been made and placed into FlightGear, and the plan is to make 12. The sites will hopefully be available through TerraSync soon, but for now you can [http://www.flightgear.org/forums/viewtopic.php?f=5&t=9521 watch this forum topic] to see updates for the sites and download them.
 
===UK football stadiums===
[[File:Emiratesstadium.jpg|thumb|Emirates Stadium in Flightgear]]
Andyramone has completed and submitted three football stadiums to the scenery database. These include Carrow Road (Norwich), Emirates Stadium (Arsenal) and Stamford Bridge (Chelsea.) Portman Road (Ipswich) and White Hart Lane (Tottenham) are complete and will be submitted to the scenery database this month. The project will continue later this year with more London stadiums including Wembley on the to do list.  


===Liverpool John Lennon Airport===
===Liverpool John Lennon Airport===
Line 164: Line 162:


After improving the terminal, Karla wrote a howto on how to create realistic textures for buildings. More on that in the [[#Wiki updates|Wiki updates]] section of this newsletter.
After improving the terminal, Karla wrote a howto on how to create realistic textures for buildings. More on that in the [[#Wiki updates|Wiki updates]] section of this newsletter.
[[File:Emiratesstadium.jpg|thumb|250px|Emirates Stadium in Flightgear]]
===UK football stadiums===
Andyramone has completed and submitted three football stadiums to the scenery database. These include Carrow Road (Norwich), Emirates Stadium (Arsenal) and Stamford Bridge (Chelsea.) Portman Road (Ipswich) and White Hart Lane (Tottenham) are complete and will be submitted to the scenery database this month. The project will continue later this year with more London stadiums including Wembley on the to do list.


===Dublin Airport===
===Dublin Airport===
Line 171: Line 173:


===Innsbruck ÖAMTC helicopter base===
===Innsbruck ÖAMTC helicopter base===
[[File:LOWI_oamtc_helicopter_base.jpg|thumb|Innsbruck ÖAMTC helicopter base]]
[[File:LOWI_oamtc_helicopter_base.jpg|thumb|250px|Innsbruck ÖAMTC helicopter base]]
The ÖAMTC and Flugpolizei (police) Helicopter base at Innsbruck airport (LOWI) is currently under development by ot-666. Most likely it will be outfitted with moving helipads that are under development by HHS.
The ÖAMTC and Flugpolizei (police) Helicopter base at Innsbruck airport (LOWI) is currently under development by ot-666. Most likely it will be outfitted with moving helipads that are under development by HHS.


Line 194: Line 196:
Alexander Raldugin started modeling the cities and airports of Tallinn and Tartu, Estenia in northeastern Europe. Most models include night lighting. Buildings are available from the regular places.
Alexander Raldugin started modeling the cities and airports of Tallinn and Tartu, Estenia in northeastern Europe. Most models include night lighting. Buildings are available from the regular places.


[[File:VadoLigureHarbor.jpg|thumb|Vado Ligure Container Ship Terminal]]
[[File:VadoLigureHarbor.jpg|thumb|250px|Vado Ligure Container Ship Terminal]]
===Harbors===
===Harbors===
Harbors, with their huge cranes and long peers, may be as well noticeable landmarks for VFR flying. Scighera is presently working on the model of Vado Ligure Harbor, having completed the Container unloading pier.
Harbors, with their huge cranes and long peers, may be as well noticeable landmarks for VFR flying. Scighera is presently working on the model of Vado Ligure Harbor, having completed the Container unloading pier.
Line 207: Line 209:


===Moveable helipads===
===Moveable helipads===
[[File:Moveable helipads.jpg|200px|thumb|right|Moveable-helipads in FGFS can be controlled in many ways. It is a feature which commercial sims like MSFS or X-Plane don't have yet.]]
[[File:Moveable helipads.jpg|thumb|250px|Moveable-helipads in FGFS can be controlled in many ways. It is a feature which commercial sims like MSFS or X-Plane don't have yet.]]
[[User:HHS|HHS]] is working on moveable helipads, also known as dollys.
[[User:HHS|HHS]] is working on moveable helipads, also known as dollys.
For this purpose, an AIship is abused and replaced with an invisible, solid plane as platform.
For this purpose, an AIship is abused and replaced with an invisible, solid plane as platform.
Line 220: Line 222:


== Nasal for newbies: OOP ==
== Nasal for newbies: OOP ==
OOP is all about creating "things" (i.e. a cloud) with "actions" (transform,draw,update) (or "messages").
OOP is all about creating "things" (i.e. a cloud) with "actions" (transform,draw,update) (or "messages"). Where a class (or hash in Nasal) is the "template" for a "thing" containing a number of member fields. So the class only describes the "layout" or properties of objects that can be created. To actually use a class, it has to be "instantiated" which means creating an object using a specific "template class" (or even several different classes).
Where a class (or hash in Nasal) is the "template" for a "thing" containing a number of member fields.
So the class only describes the "layout" or properties of objects that can be created. To actually use a class, it has to be "instantiated" which means creating an object using a specific "template class" (or even several different classes).


These member fields can be variables (e.g. lat, lon, alt) or functions (setAlt, setPos).
These member fields can be variables (e.g. lat, lon, alt) or functions (setAlt, setPos). And the actual instance (cloud[n] in the property tree) of such a thing is then called an "object". Functions that work with instance specific state are called "methods", they may refer to instance specific state using a "self reference" (me) in Nasal, that ensures that access to a field or method is using the right instance specific data.
And the actual instance (cloud[n] in the property tree) of such a thing is then called an "object".
Functions that work with instance specific state are called "methods", they may refer to instance specific state using a "self reference" (me) in Nasal, that ensures that access to a field or method is using the right instance specific data.


In OOP, internal state is managed by wrapping everything in a class using accessor functions for modifying and getting internal values.
In OOP, internal state is managed by wrapping everything in a class using accessor functions for modifying and getting internal values. So internal state would in turn only be modified by an abstract interface: class "methods", instead of directly accessing class-internal fields.
So internal state would in turn only be modified by an abstract interface: class "methods", instead of directly accessing class-internal fields.


This provides a way for managing access to a member variable (field), such an abstract interface is also useful for keeping logics private, and internal. For example, the name of a variable "altitude" can be easily changed internally to "altitude_ft", without having to rename all users of the class - simply because all other code will refer to the methods providing access to the field.
This provides a way for managing access to a member variable (field), such an abstract interface is also useful for keeping logics private, and internal. For example, the name of a variable "altitude" can be easily changed internally to "altitude_ft", without having to rename all users of the class - simply because all other code will refer to the methods providing access to the field.
Line 243: Line 240:
So, one of the very first steps to convert procedural code to OOP code would be to group your code into a number of logical "classes" (e.g. cloud, cloud field ).
So, one of the very first steps to convert procedural code to OOP code would be to group your code into a number of logical "classes" (e.g. cloud, cloud field ).


Classes may be composed of other classes, i.e. a "cloud field" class would in turn contain "cloud" classes.
Classes may be composed of other classes, i.e. a "cloud field" class would in turn contain "cloud" classes. This is then called "composition".
This is then called "composition".


Another way is inheritance, where a type may inherit properties (fields:variables and methods) from a "parent" class. Imagine it like taking a "template" for the class and then saying "make a new class using this template".
Another way is inheritance, where a type may inherit properties (fields:variables and methods) from a "parent" class. Imagine it like taking a "template" for the class and then saying "make a new class using this template".
Line 263: Line 259:
== Suggested flights ==
== Suggested flights ==
===Hawai'i===
===Hawai'i===
[[Image:Maui03.jpg|thumb]]
[[Image:Maui03.jpg|thumb|250px]]
Do you use [[TerraSync]]? If so, try a flight around Hawaii! Take off from PHNL in a light aircraft and head west until you hit Pearl Harbor; a right turn north will take you post the USS Arizona Memorial, and the Punchbowl Crater will be to your right. Or, fly east from PHNL past volcanic craters Diamond Head and Koko Head. If you follow the O'ahu coastline north from Koko Head, you can land at either old World War II airbase Bellows Field (now a wildlife reserve in real life) or at Keahole MCAS.
Do you use [[TerraSync]]? If so, try a flight around Hawaii! Take off from PHNL in a light aircraft and head west until you hit Pearl Harbor; a right turn north will take you post the USS Arizona Memorial, and the Punchbowl Crater will be to your right. Or, fly east from PHNL past volcanic craters Diamond Head and Koko Head. If you follow the O'ahu coastline north from Koko Head, you can land at either old World War II airbase Bellows Field (now a wildlife reserve in real life) or at Keahole MCAS.


Navigation menu