engine <img src="https://img.shields.io/github/workflow/status/florianvazelle/engine/build/main?label=Windows%20%7CC2A0Linux&logo=github" alt="build"/>

It's a work in progress small game engine, usable like a C++ library.

Features

RTTI

  • Compile-time hashing (with constexpr and CRC32)
  • Disabling default C++ RTTI (with -fno-rtti flags)

ECS

  • Entity type is just an alias of uint32_t
  • Using of Factory Design to allocate Component in Pools
  • We can GetEntitiesWithTags to retrieve entities with certain components

Building

Build and run the standalone target

Use the following command to build and run the executable target.

cmake -Bbuild
cmake --build build
./build/bin/pong

Build single include

python .\scripts\amalgamate.py -c .\scripts\config.json -s .

Dependencies

  • C++17 compiler :
    • Visual Studio 2016
    • GCC 7+ or Clang 8+
  • Git for cmake automatic dependencies
  • CMake for build system creation (>= 3.12)
  • Doxygen for generate documentation (>= 1.8, optional)

References