UPBGE 0.3 - SuperGuepard Aircraft


Flyable microlight aircraft.

  • Quite realistic but very simple flight model.
  • Joystick support and configuration menu
  • Flight recorder (key O) and playback (key P)
  • Slalom course

Walk with your 1st person to the left door, press E (or joystick button 5) to open the doorr, enter, close the door, start Engine.

    Enter the Aircraft through the left door(E), close the door, start the Engine (E), 
    -Fly the slalom - try to beat your own time, (the next way point is also indicated by the Heli instruments.)
        Your flight will be recorded and played back the next time you fly the slalom: You can see how you flew.
        You can turn off the Slalom recorder by setting the property 'slalom_recorder' of the object 'ZSE' to false.

    Exiting the Aircraft is only possible with stopped Engine (E).

Default is Joystick for the Aircraft.
You can use the mouse instead for the Aircraft unplugging all joysticks or by setting
'Controller-Joystick' to None in Joystick Menu (key J)
In this menu you can also choose a 'Tracking-Joystick' for HeadTracking in Cockpit view
More info about Joysticks down below.

Joystick Assignment:
    Key J:  Open/Close Menu
            On Top choose Controller-Joystick with LeftMouseClick
            Left Mouse Button:  enable/disable listening, then move Axis to full extend or press Button 
            Right Mouse Button: delete Entry
            Axes Sensitivity: MouseWheel up/down. LeftClick to reset to 100.
            You can test buttons and Axes:  assigned function will highlight in pink 
            On Bottom Choose HeadTracking-Joystick with LeftMouseClick   
            When Menu is closed the settings are saved to disk ('name'.bgeconf)
    Key F or JoyButton 7: Fly-by Camera
            (CTRL+)MouseWheel or PgUp/PgDown or JoyButton 3/4: Zoom
            (CTRL+)Mouse or Arrow Keys or JoyHat: rotate Camera  
            MiddleMouseButton or JoyButton 2: From Top-View            
            Or when in FirstPerson-Modus switch back to FirstPerson-View (from Ground-Camera)
    Key G: Ground Camera
            hit G again to switch between 4 different Views 
            SHIFT+G previous View
    Key C or JoyButton 8: Aircraft Cockpit Camera
            (CTRL+)MouseWheel or PgUp/PgDown or JoyButton 3/4: Zoom
            (CTRL+)Mouse or Arrow Keys or JoyHat: Look around  (disabled when using HeadTracking-Joystick)
            MiddleMouseButton or JoyButton 2: Center View
    ENTER key: restart game
        E or JoyButton 5: start/stop Rotor-Engine
        W/S or JoyThrottle: Throttle
        A/D or JoyZ-Axis: Yaw
        Mouse or Joy-Axes: Pitch and Roll                                     
        Q or JoyButton 6: Toggle Follow mode in Flyby view 

        T: toggle Trails
        Left Mouse Button or JoyButton 1: Wheel Brakes
        Mouse: View
        W/A/S/D: Move
        Shift: Run
        Space: Jump
        E or JoyButton 5: Open/Close Aircraft Door 
           Enter/Exit Aircraft
           Start/Stop Aircraft Engine
Manual recorder:
    Key O: start recording
    Key P: (stop recording and) playback recording
Debug shortcut keys:
    Key 1: 1st person View
    Key 2: Focus on SuperGuepard
    Key 3: Focus on SuperGuepard Dummy  (useful when playing back manual recording)
Sensibility of Aircraft Controls with mouse:
    set the properties of object 'SuperGuepard'

About Controller-Joystick:
For a Microsoft SideWinder Force Feedback 2 to be recognized by Blender add this SDL2 code:
030000005e0400001b00000000000000,SideWinder Force Feedback 2 Joystick,platform:Windows,a:b7,b:b4,x:b6,y:b5,leftshoulder:b2,rightshoulder:b3,leftstick:b0,rightstick:b1,leftx:a2,lefty:a3,rightx:a0,righty:a1,dpup:h0.1,dpleft:h0.8,dpdown:h0.4,dpright:h0.2,
to the file:

Or for your joystick create a SDL2 code with one of these Tools:
and edit your joystick Axes and Buttons in the Joystick Menu (Key J)
About HeadTracking-Joystick:
Setup your favorite HeadTracking software (TrackIR, OpenTrack, FreeTrack, LinuxTrack) to output to a virtual Joystick (vJoy, PPJoy). And set 'Center-Button' to the same as in this game (Joystick-Button 2)
E.g. on Windows you can use TrackIR->FreePie->vJoy. For FreePie the Python script from here is used:
I use my TrackIR3 Device with Freetrack->FreePie->vJoy with another script.
You can find a copy of both scripts for FreePie in this blend here.

hdri from

Landscape by SHINN THANT

Aircraft model by Helijah
Super Guépard 912 by Helijah
License: CC-BY-SA

Field recording by samarobryn
License: CC-0


Now somebody give me a better scenery please :slight_smile:


Collecting some info and links here
There already was an extremely advanced project (now dead):

The plane model is still available here:

Cockpit-View now supports HeadTracking (via a Virtual Joystick).

Setup your favorite HeadTracking software (TrackIR, OpenTrack, FreeTrack, LinuxTrack) to output to a virtual Joystick (vJoy, PPJoy). And set ‘Center-Button’ to the same as in this game (Joystick-Button 2)
E.g. on Windows I use TrackIR->FreePie->vJoy. For FreePie the Python script from here is used:

You can find a copy of that script in this blend here.

(vJoy has the big advantage that it is recognized by UPBGE out of the box.)
The Joystick Configuration menu now allows to enable/disable different connected Joysticks.

Lots of small improvements for Propeller start/stop, Enter/Exit animation etc.
Outside view can now also be rotated by HeadTracking:

Instead of the old TrackIR3 Software I’m now using this old Camera with Freetrack which gives more precision (because I can use it with a homebuilt 3point system which really are only some reflective dots on a cap, you would laugh seeing it)
The Python script for FreePie to read Freetrack is now also included in the blend.

Chasing my recorded flight with HeadTracking in Cockpit

Test flight with a freeware non-commercial Scenery
Venice obj mtl
Frame drops keep falling on my thread :notes:

(Nice and boring :slight_smile: )

1 Like

It bothered me that my SuperGuepard always fell like a wet sack at low speeds.
As I said the flight model is very simple.
It still is but now got much better especially at low speeds.
A wing behaves differently at different Angles of Attack due to its airfoil.
I had no idea how to implement airfoil data and used a simple sinus function before.
This is now replaced by using an animation action graph as data source for the lift coefficient at different angles of attack:

This is the python line:

My (manually editable) graph is inspired by the graphs shown and mentioned in this video (the author implemented a much more sophisticated/complicated system)
Starting at minute 6.09

The graph from the mentioned PDF looks like this:

I just took the black version and now SuperGuepard can glide much better at lower speeds and land more safely on Piazza San Marco in Venetia :slight_smile:
Original SuperGuepard can fly really slow.

There is a difference in the behaviour of slow-parent in newer UPBGE Release (0.35). It’s much stronger than in 0.3.
Added compensation:

    if bge.app.version>(3, 0, 0): SuperGuepardCam.timeOffset=0.2

When did this change? Or better: at which factor?

1 Like

Hit T to toggle trails.

The Trails are an edited version of @BluePrintRandom s FireTrail

Some hacks to save fps, make them longer and be able to toggle on/off.

1 Like

Nice! I’m trying to learn UPBGE, so I can do some good game like yours :slight_smile:

1 Like