Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/evroon/titan

3D game engine written in C++ using OpenGL
https://github.com/evroon/titan

cplusplus editor game-development game-engine graphics-engine opengl sdl2

Last synced: 17 days ago
JSON representation

3D game engine written in C++ using OpenGL

Awesome Lists containing this project

README

        

# Titan Engine
[![build](https://github.com/evroon/titan/actions/workflows/main.yml/badge.svg)](https://github.com/evroon/titan/actions/workflows/main.yml)
[![clang-format](https://github.com/evroon/titan/actions/workflows/clang-format.yml/badge.svg)](https://github.com/evroon/titan/actions/workflows/clang-format.yml)

A graphics engine using OpenGL and written in C++.

Preview of the editor:
![alt text](misc/titan_preview.png "Preview of the editor")

Features:
- A scripting language, TitanScript, which is fully integrated on a low level into the engine
- Editor
- UI system
- 2D and 3D support

Libraries used:
- SDL 2.0 (including SDL_image, SDL_mixer and SDL_ttf)
- Box2D
- Bullet
- LibNoise
- Assimp
- Glew
- Freeglut
- RapidXML
- FontAwesome

3D graphics features:
- Deferred renderer
- GPU terrain tesselation
- Cascaded PCF shadowmapping
- SSAO
- Godrays and lens flare
- Bloom
- Depth of Field
- HDR tonemapping
- Terrain heightmap editing on GPU

# Building
Building has been tested on Linux. Windows and Mac OS X are not supported at the moment.

## Linux
Building on Linux is possible using CMake. First, make sure that the above libraries are installed. On Debian-based systems, this command can be used:

```bash
sudo apt install cmake librapidxml-dev libglew-dev libassimp-dev libnoise-dev libbullet-dev libbox2d-dev \
libsdl2-mixer-dev libsdl2-image-dev libsdl2-ttf-dev libsdl2-image-2.0-0 libsdl2-dev
```

When the libraries are installed, clone and build the project:
```bash
git clone [email protected]:evroon/titan.git
cd titan/src
cmake ./
cmake --build . -- -j8
```

Where the `-j` flag indicates the number of jobs, which is ideally at least as high as the number of cores of your CPU.