Technology Reference Index¶
This page maps every technology used in fighters-legacy to its canonical upstream documentation. It is the recommended starting point for contributors who are new to one or more of the libraries or tools in the stack.
For competitive landscape context — what simulators exist and where fighters-legacy fits
relative to them — see docs/developer/prior-art.md.
Engine Technologies¶
Runtime libraries the engine is built on.
| Technology | Role in this project | Documentation |
|---|---|---|
| Vulkan 1.3 | GPU rendering API (platform/vulkan/) |
Khronos spec · vulkan-tutorial.com |
| MoltenVK | Vulkan-over-Metal ICD for macOS | KhronosGroup/MoltenVK · LunarG SDK |
| GLM | Vector/matrix/quaternion math shared across engine, renderer, and tests | GLM manual · g-truc/glm |
| VulkanMemoryAllocator | GPU memory allocation for all Vulkan buffers and images (platform/vulkan/) |
GPUOpen VMA docs |
| KTX-Software / Basis Universal | KTX2 texture loading and Basis→BC7/ASTC transcoding at runtime (platform/vulkan/) |
KhronosGroup/KTX-Software · Basis Universal |
| tinygltf | glTF 2.0 mesh parsing in the Vulkan renderer and validate-mesh tool | syoyo/tinygltf · glTF spec |
| SDL3 | Windowing, input, Vulkan surface creation (platform/sdl3/) |
SDL3 wiki |
| OpenAL Soft | 3D positional audio (platform/openal/) |
openal-soft.org |
| ENet / enet6 | Reliable UDP networking (platform/net/); retained as the LAN/single-player/low-count backend after Epic L (#506) selected GameNetworkingSockets for 128+ |
enet.bespin.org · SirLynix/enet6 |
Rendering Techniques¶
Algorithms the Vulkan renderer implements (see docs/developer/rendering.md for the pass-by-pass
graph). "Role" notes whether a technique is in the renderer today or planned under a tracking issue.
| Technique | Role in this project | Reference |
|---|---|---|
| Cook-Torrance PBR (GGX NDF, Smith geometry, Schlick Fresnel) | Opaque material shading (mesh.frag) |
Karis, Real Shading in UE4 (SIGGRAPH 2013) |
| PSSM cascaded shadow maps | Sun shadows (shadow.vert, mesh.frag) |
Zhang et al., Parallel-Split Shadow Maps (GPU Gems 3) |
| Octahedral normal encoding | World-space normal G-buffer packing (mesh.frag) |
Cigolle et al., A Survey of Efficient Representations for Unit Vectors (JCGT 2014) |
| GTAO / horizon-based ambient occlusion | Ambient occlusion (gtao.comp) |
Jiménez et al., Practical Realtime Strategies for Accurate Indirect Occlusion (SIGGRAPH 2016) · Intel XeGTAO (planned: half-res + temporal, #448) |
| Analytic atmospheric scattering + aerial perspective | Atmospheric sky + distance scattering (sky.frag, mesh.frag) |
Hillaire, A Scalable and Production Ready Sky and Atmosphere (EGSR 2020) · Bruneton & Neyret, Precomputed Atmospheric Scattering (planned: precomputed LUTs, #445) |
| Khronos PBR Neutral tonemapper | HDR → LDR tonemap (tonemap.frag) |
KhronosGroup/ToneMapping |
| FXAA | Post-process anti-aliasing (tonemap.frag) |
Lottes, FXAA (NVIDIA whitepaper) |
| Bloom (bright-pass + separable Gaussian) | HDR glow (bloom_*.frag) |
Jimenez, Next Generation Post Processing in Call of Duty: Advanced Warfare (SIGGRAPH 2014) |
| TAA + CAS | Temporal AA + sharpening (planned, #443) | Karis, High-Quality Temporal Supersampling (SIGGRAPH 2014) · AMD FidelityFX CAS |
| Temporal upscaling | Render-scale upscaling (planned, #450) | AMD FSR 2 · Intel XeSS |
| Image-based lighting (split-sum) | Sky-driven ambient (planned, #452) | Karis, Real Shading in UE4 — split-sum approximation |
Build & Tooling¶
| Tool | Role in this project | Documentation |
|---|---|---|
| CMake 3.25+ / presets | Build system; all platforms use CMakePresets.json |
CMake presets reference |
glslang / glslangValidator |
GLSL-to-SPIR-V compiler; invoked at configure time to build Vulkan shaders | KhronosGroup/glslang |
| Catch2 v3 | Unit test framework (tests/) |
Catch2 tutorial |
| toml++ | TOML config parsing (server.toml, user.toml, mod manifests) |
marzer.github.io/tomlplusplus |
| yaml-cpp | YAML parsing in the validate-mission asset pipeline tool |
jbeder/yaml-cpp |
| clang-format | Code formatting; CI enforces on every PR | ClangFormat docs |
| REUSE / SPDX | License compliance tooling; CI enforces via fsfe/reuse-action |
reuse.software |
| git-cliff | Changelog generation for releases | git-cliff.org |
Multiplayer & Live Services¶
Technologies introduced by the 128+ multiplayer re-target (decision record 2026-06-28). "Role" notes whether each is in use today or planned under an epic. All are GPL-3.0-compatible.
| Technology | Role in this project | License | Documentation |
|---|---|---|---|
| GameNetworkingSockets | Selected transport for 128+ peers (Epic L, #506) — reliable+unreliable UDP, congestion control, built-in encryption; behind INetwork, enet6 retained as fallback |
BSD-3 | ValveSoftware/GameNetworkingSockets |
| OpenSSL | Crypto backend for the GNS transport (the #506 spike's libsodium pick was reversed during #507 — GNS rejects libsodium AES on ARM/Apple Silicon; see docs/developer/gns-backend.md) |
Apache-2.0 | openssl.org/docs |
| Opus | In use — the voice codec for the radio nets (Epic J, #531): 48 kHz mono, 20 ms frames, VOIP mode with in-band FEC. The server relays frames without decoding, so this is a client-to-client contract | BSD-3 | opus-codec.org |
| OIDC / OAuth 2.0 | Federated identity option for self-hosted communities (OidcIdentityProvider, Epic C) |
— | OpenID Connect |
| SQLite / PostgreSQL | Persistence backends (IPersistence, Epic H) — SQLite single-server, Postgres for clusters |
Public domain / PostgreSQL | sqlite.org · postgresql.org/docs |
| Prometheus / OpenMetrics | Server metrics export (Epic G) | Apache-2.0 | prometheus.io/docs |
| Grafana | Operator-deployed dashboards (Epic G); bundled dashboard JSON only — not redistributed | AGPL-3.0 (upstream images) | grafana.com/docs |
| Agones | Dedicated-game-server fleet framework the operator builds on (Epic K) | Apache-2.0 | agones.dev |
| Operator SDK / Kubebuilder | Go framework for fl-operator (Epic K) |
Apache-2.0 | sdk.operatorframework.io · kubebuilder.io |
| Go | Language for the cluster + live-services repos (fl-operator, fl-account, fl-review, fl-director, fl-ops) |
BSD-3 | go.dev/doc |
AI & Agentic Services¶
Technologies introduced by the Dynamic World & Agentic AI initiative (decision record 2026-07-01, Epics M–P). All optional at runtime — no provider configured means fully scripted behaviour; see docs/developer/ai-architecture.md.
| Technology | Role in this project | License | Documentation |
|---|---|---|---|
| OpenAI-compatible API | The provider lingua franca — [ai.provider] points at any compatible endpoint |
— | platform.openai.com/docs/api-reference |
| Ollama | Reference local model server for self-host operators | MIT | github.com/ollama/ollama |
llama.cpp / llama-server |
Alternative local inference stack (Metal / CUDA / ROCm / Vulkan backends) | MIT | github.com/ggml-org/llama.cpp |
| Model Context Protocol (MCP) | Agent-facing tool surface of fl-server (Epic M) — world-state, events, allowlisted admin commands |
MIT (spec/SDKs) | modelcontextprotocol.io |
| whisper.cpp | Local speech-to-text for the crew-comms voice loop (Epic O) | MIT | github.com/ggml-org/whisper.cpp |
| Piper | Optional local text-to-speech for crew/GCI replies (Epic O) | MIT | github.com/rhasspy/piper |
Flight Sim Domain¶
This section is for contributors unfamiliar with combat flight simulation concepts.
For landscape context and motivation, see docs/developer/prior-art.md.
Flight model concepts¶
fighters-legacy uses a simplified 6-DOF stability-derivative flight model. The design
rationale is in docs/developer/design.md and the FDM RFC issue. The best publicly available
reference for this mathematical approach is the JSBSim documentation:
- JSBSim reference manual — the most rigorous open-source treatment of stability-derivative 6-DOF models. fighters-legacy does not use JSBSim itself, but borrows its coefficient structure and AoA/Mach-indexed table approach.
Jane's Fighters Anthology¶
The direct spiritual ancestor of this project. The original Jane's FA manual covers the aircraft roster, weapons systems, and mission concepts that define the fidelity target for content packs. The manual is included with the GOG.com release of Jane's Combat Simulations.
Community documentation¶
The DCS World community has produced the most comprehensive publicly available documentation on modern combat aircraft systems modelling:
- Hoggit community wiki — reference cards, systems guides, and flight model notes for DCS aircraft; useful background for contributors working on avionics or flight model design.
- Eagle Dynamics forums — primary discussion venue for DCS flight model questions; archived threads cover the modelling methodology in depth.