Git Product home page Git Product logo

dogfight-sandbox-hg2's Introduction

Dogfight 2 (Air to air combat Sandbox)

Air to air combat sandbox, created in Python 3 using the HARFANG 3D 2 framework.

The game features :

  • VR (on any SteamVR compatible headset)
  • Ocean / terrain shader
  • Skydome shader
  • Clouds
  • Autopilot (Take-off, landing, fight)
  • Network mode

The source code and the graphics assets are made available for studying purpose. However, you are free to fork this repository, extend the game or release anything that is based on it.

How to run the Dogfight Sandbox

  1. Download the most recent release (dogfight-sandbox-hg2-win64.7z)
  2. Unzip it
  3. run start.bat
  4. Select a scenario using the right and left keys
    • Press space if you want to control the aircraft using the keyboard
    • Press the start button of the gamepad or the joystick depending on the device you want to use
    • If you press the start/fire button on the gamepad, the Sandbox will automatically define this controler as the input device of the aircraft (see Aircraft keyboard Commands below for the details of the keyboard inputs)

(If you want to run the sandbox from the cloned repository, you will need to copy the Python and HARFANG binaries as well as the other modules in the bin folder). Follow the instructions detailled in the readme files found in each folder.

About VR mode

  • VR works on Windows machines only, using the DirectX backend (set "OpenGL": false in the config.json file)
  • All the views are available in VR (exterior, interior). When using the cockpit view (3 on the numpad), press F11 to calibrate the position of the head
  • Requires SteamVR (1.22.x) at least
  • Tested on the following headsets with success:
    • LENOVO VR Explorer
    • HTC Vive Pro
    • Meta Quest 2 (in Oculus Link mode)

Network mode overview

The "Network" mode allows you to control the planes from a third party machine.

Startup:

  1. On the server machine:

    • Start the DogFight SandBox (start.bat file)
    • Choose the Network mode mission
      ServerID
    • Note the IP and port number of the server, in the upper left corner of the screen ServerID
  2. On the client machine:

    • Make sure you have a version of python 3 installed

    • Copy the content of the directory network_client_example.

    • Open the file client_sample.py with a text editor.

    • Enter the server ids in the "df.connect ()" function.
      ServerID

    • Start the file client_sample.py

Aircraft keyboard Commands

Command Key
Increase thrust level Home
Decrease thrust level End
Increase brake level B
Decrease brake level N
Increase flaps level C
Decrease flaps level V
Roll left Left
Roll right Right
Pitch up Up
Pitch down Down
Yaw left Suppr
Yaw right PageDown
Switch post combustion Space
Next target T
Switch gear G
Activate IA I
Activate Autopilot A
Switch easy steering mode E
Fire machine gun Enter
Fire missile F1
Increase health level P
Decrease health level M
Rearm F5
HUD on /off H

Commons Views commands

Command Key
Roll cameras carousel (aircrafts, FPS) 1
Increase FoV angle PageUp
Decrease FoV angle Insert

Aircrafts views commands

Command Key
Back view 2
Front view 2
Left view 4
Right view 6
Satellite view 5
Tactical view 7
Pursuit view 9
Cockpit view 3

FPS camera views commands

Command Key
Head orientation LMB + mouse move
Move forward Up, Z
Move backward Down, S
Move left left, Q
Move right right, D
Fast speed 1 Left Shift + move
Fast speed 2 Left Ctrl + move
Fast speed 3 Right Ctrl + move

Supported control devices

  • Keyboard
  • XBox gamepad or any compatible model
  • Logitech "Attack 3" Joystick

Contributors

  • Code, design, music / sfx:
    • Eric Kernin
  • 3D graphics:
    • Jean-Marie Lamarche
    • Bruno Lequitte
  • Technology & design advisory:
    • Muhammet Aksoy
    • Pr. Emre Koyuncu
    • Michel Nault
    • Muhammed Murat Özbek
    • Thomas Simonnet

Screenshots

screenshot

screenshot

screenshot

screenshot

screenshot

screenshot

dogfight-sandbox-hg2's People

Contributors

aksoym avatar astrofra avatar disketflu avatar erkmkd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.