Skip to content

An open-source, cross-platform 3D game engine built in C++

License

Notifications You must be signed in to change notification settings

painfulexistence/AtmosphericEngine

Repository files navigation

Atmospheric Engine

Atmospheric Engine is a cross-platform 3D game engine developed in C++. The project is a labor of love, acting as my stepping stone to gain a deeper understanding of graphics programming concepts and practices.

Demo

Time Rewinding

Time Rewinding Demo

Heightmap Terrain w/ Dynamic Tessellation

Time Rewinding Demo

Features

  • PBR texturing, point/directional shadows, post-processing effects
  • Heightmap terrain with collision and shader-based dynamic tessellation
  • Custom key binding system
  • Immediate-mode debug UIs for engine subsystems
  • Simple job system implementation

Platforms

  • Apple Silicon
  • Apple Intel (unsure?)
  • Windows (broken)
  • Linux (planned)

⚠️ WARNING This project is a work in progress and may be unstable at this stage.


Building

Follow the steps below to build the engine:

  1. Install prerequsites:
  1. Clone this repository
git clone --recurse-submodules https://github.com/painfulexistence/AtmosphericEngine.git
  1. Setup Vcpkg
cd AtmosphericEngine
./vcpkg/bootstrap-vcpkg.sh -disableMetrics
  1. Build the project with CMake
cmake -S . -B build
cmake --build build

Usage

The engine includes four example projects to help you get started. Please note that the API is still evolving and may change in the future. To get started, you can check out the HelloWorld example.

demo_helloworld

Examples:

Releases

No releases published

Packages

No packages published