Technical and comparative study¶
This section justifies the technologies, algorithms and data structures used by Aegis2D and the R-Type game. Each choice is compared with the realistic alternatives, along the axes the project cares about: portability (Linux and Windows, macOS for development), performance, robustness, security, and how much the choice helps or hinders a team of three working for six weeks.
| Page | Covers |
|---|---|
| Graphics | Graphics API, windowing library, rendering techniques |
| Networking and security | Transport, networking library, protocol design, threading, threats and countermeasures |
| Algorithms, data structures and storage | ECS storage, collisions, timing, queues, configuration and persistence |
Status
Decisions marked in place already exist in the code; decisions marked planned are the design the corresponding tickets implement. Each page is updated when a planned part lands, with measurements where they matter.
Language and build¶
| Choice | Alternatives | Why |
|---|---|---|
| C++26 | C++20, C++23 | Imposed language (C++). The latest standard brings std::span, ranges, constexpr improvements and std::expected (C++23) that simplify safe parsing and error handling. Clang 18+, GCC 14+, Apple Clang 17+ and clang-cl support it; plain MSVC (cl.exe) has no C++26 mode in CMake, hence clang-cl on Windows. |
| CMake + presets | Meson, xmake, Premake | De facto standard for C++, first-class support in every IDE and in CI images, presets give one command per platform. |
| CPM | vcpkg, Conan | Plain CMake, no extra tool to install, dependencies pinned by version, commit or SHA-256 and cached in CI. vcpkg and Conan are more powerful for binary caching but add a second tool and a learning curve for the whole team. |