/labeeri

a c++ and opengl game engine

Primary LanguageC++

labeeri

A C++ game engine.

Originally made for the BI-PGR.21 (B0B39PGR) course at FIT/FEE CTU as a semestral project.

Features

  • Scriptible ECS architecture
  • Resource management
  • Event system
  • HDR pipeline
  • Transparency
  • Normal maps
  • Postprocessing
  • Object picking via ID buffer
  • ImGui window system
  • OpenGL backend
  • Extendable render API support

WebGPU backend and Rust rewrite coming soon???

Building

  • Visual Studio 2022, C++
  • vcpkg

The project uses vcpkg for all dependencies (vcpkg.json), Visual Studio should install them for you automagically.

Before running the Game project, make sure to set the "Debugging/Working Directory" setting to $(SolutionDir).

Docs

Can be generated with Doxygen.

doxygen

The Game

A simple labyrinth with interesting objects in each room. I would like to add infinite generation and random mesh generation. :)

Running

Download and run the latest release.

Everything except for the standard library is linked statically for now, so you shouldn't have any dependancy issues (C++ redist is provided).

Controls

  • Click in the scene - enter FPS mode
  • ESC - exit FPS mode
  • WASD - movement
  • Left shift - run
  • Ctrl / Space - vertical movement (only in free camera)
  • Left click - interact with an object
  • F - toggle flashlight
  • F1 - free camera / player camera
  • F3 - toggle GUI overlay
  • F5 - fullscreen
  • Page up / Page down - switch between static cameras
  • Ctrl + left click on object - edit object (only in GUI mode)