Skip to content

KredeGC/Mahakam

Repository files navigation

Mahakam

Mahakam

Windows supported Linux supported MacOS not supported Android not supported IOS not supported

A somewhat functional game engine with suppport for rendering and sound (currently). More functionality will be added as I find the will to work on it. Physics will be handled by Bullet3 once integrated fully.

License Issues Build

Usage

Mahakam can be used by itself, simply by building and linking to it. An editor application also exists, called Erebor, which includes a level-editor and asset manager among other game-making tools. The best way to understand and use the engine is to build and run it, and then change around stuff to see how it affects the state. Applications created with the engine can also be run in headless mode, using the --headless flag.

Erebor

Running the editor can be done via Visual Studio or Visual Studio Code, via their respective debuggers. It can also be run using various files within the Erebor directory, namely: EreborDebug, EreborOptimized and EreborRelease. There are both bash and batch files for Linux and Windows.

Building

Refer to the BUILDING.md file.

Media

Editor 1 Editor 2

Libraries and technologies

  • Uses OpenGL for rendering. No other rendering APIs are supported currently, but may in the future.
  • Bullet Physics SDK for physics and collision detection.
  • EnTT as entity-component-system.
  • glad for interfacing with OpenGL.
  • GLFW for window creation and management.
  • OpenGL Mathematics for fast SIMD vector math.
  • glslang for shader compilation.
  • json for parsing JSON in tinygltf.
  • KTL for various allocators and containers.
  • Dear ImGui for GUI interaction and rendering.
  • ImGuizmo for editor interaction and rendering.
  • magic_enum for enum introspection.
  • miniaudio for audio playback.
  • spdlog for easy and fast logging.
  • spirv-cross for shader transpiling and reflection.
  • stb_image for loading various image files.
  • Steam Audio for audio spatialization.
  • Rapid YAML for serializaing and deserializing various YAML files.
  • tinygltf for model and animation loading.

Mahakam uses the Steam® Audio SDK. Steam® is a trademark or registered trademark of Valve Corporation in the United States of America and elsewhere.

Steam® Audio, Copyright 2017 - 2022, Valve Corp. All rights reserved.