Little Engine (C++)

Tech: C++17 / CMake [PC/Linux]

Little Engine [WIP] is an unlit, sprite-based 2D game engine built using C++17, using SFML for windowing/rendering/audio, and PhysicsFS for zlib decompression. The project is organised via CMake and supports Win64 and Linux, including Ninja generators and Clang/LLVM compilers.

Development

  • No “malloc” / “new” / “free” / “delete” anywhere: strong ownership memory model using unique and shared pointers
  • Shallow libraries, deep dependence stack (Ninja builds are recommended)
  • Fixed point implementation via scaled integers
  • 2D coordinate system and Transform class with cached Matrix3
  • Simple locking-queue Job System used for asset loading and particle system matrix multiplications
  • Asynchronous render loop using double buffer interpolation
  • Fixed-time slice game loop
  • Entity-Component architecture (fat class Components)
  • Support for loading assets asynchronously through an archive and a manifest
  • Debugging console, profiler, render stats, etc.
  • Serialised UI layout files and corresponding container classes
  • Joystick and mouse support
  • Support for CMake single/multi-configuration generators