Skip to content

ziv/airborne

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

246 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

F-XX (Airborne)

An indie flight simulator gmae without any game engine, just C++ and some libraries.

splash

This project trys to make a little bit modern remake of the classic F-15 Strike Eagle II and others flight simulators made by MicroProse back in the 80s.

The magic of those games comes from the fact it is not really a simulator, and it is not really an arcade. It somthing between just genius like Sid Meier can create :).

Check out the development blog for updates ot the Wiki for more information.

How to

Still in progress, but...

cmake --build cmake-build-debug
./cmake-build-debug/se

The Rules

  • Do not use game engine and or LLM
  • I have to re-learn CPP and linear algebra (ohh, trigonometry)
  • To have fun

Nostalgia Moment

I spent so many hours flying this beast on my XT-16MGhz machine with monochrome CGA resolution screen. I tried to play it again, it was fun but somthing is missing. No, I don't want another DCS neither an arcade game, I want the same gameplay I got from this magic game, so this project has begun.

ia

TODOs

Leftovers from the ESC refactoring:

  • fog shader
  • complete configuring the terrain streamer
  • performance optimizations: change read only view data to const reference
  • autopilot controller
  • navball widget

Modules Rules

module;
// includes only here:
#include <vector>

export module MyModule;

// import only here:
import JsonConfig;

export class MyClass { ... };

Modern CPP Rules

  • Modules
  • static_cast for casting
  • if-init statements
  • auto for type inference
  • constexpr for compile-time constants
  • nullptr instead of NULL

Style Rules

  • Use PascalCase for class names, structs, and enums
  • Use snake_case for variables, methods, and functions

Build

The project require C++ compiler with support for C++20 modules, and CMake 3.25 or higher.

I'm using LLVM. My configuration looks like this (macos):

export CC=$(brew --prefix llvm)/bin/clang
export CXX=$(brew --prefix llvm)/bin/clang++

cmake -B cmake-build-debug -S . -DCMAKE_BUILD_TYPE=Debug -G Ninja
cmake -B cmake-build-release -S . -DCMAKE_BUILD_TYPE=Release -G Ninja
cmake -S . -B cmake-build-asan -G Ninja -DCMAKE_BUILD_TYPE=Debug -DCMAKE_CXX_FLAGS="-fsanitize=address -g -fno-omit-frame-pointer" -DCMAKE_EXE_LINKER_FLAGS="-fsanitize=address"

# clean builds
cmake --build cmake-build-debug --target clean && cmake --build cmake-build-debug

New tiles map, 16m/pixel (world under assets) Tile 2048x2048 pixels Tile hm map 512x512 pixels

flight simulator cpp with raylib and entt ECS architecture 3d word 2d cockpit

About

Remake for Micropose flight smilutaors

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors