C++ 3D Open World Game Engine using OpenGL.
Note*: Project is developed (respectively tested) under Windows 10 and Ubuntu 20.04 LTS.
Requirements:
- cmake >= 3.13
- C++20 (VC++ >= 2012 or GCC >= 9)
- python >= 3.8
- (UNIX) xorg-dev libglu1-mesa-dev build-essential libXmu-dev libXi-dev libgl-dev
Steps for the installation:
- Clone the repository.
- Open a command line and navigate to the repository root folder.
- Run
./build.py --update
(this process may take a while)- On Windows you have to select proper library for your compiler from
LIBRARY glfw/*/<compiler library>/* /
instruction inarchive.json
. Choose one of the following supported by GLFW library:lib-mingw-w64 lib-vc2012 lib-vc2013 lib-vc2015 lib-vc2017 lib-vc2019
.
- On Windows you have to select proper library for your compiler from
- SOLID architecture written with PascalCase and Hungarian notation.
- Quad-tree terrain with dynamic tessellation, multi-texturing, heights, normals, displacement and bump normals.
- Biome System (up to 32 biomes, with possibility to combine multiple biome)
- Props and Prop generator with possibility to spawn a certain object in a certain biome and multiple level of details
- Skybox
- Free Camera and 3rd Person Camera (switchable at run-time)
- Player object with following basic movement: forward, backward, left, right, jumping with gravity and collision with the terrain
- Multiple lights (point lights and directional lights)
- Shadows (Shadow Mapping)
- Support for GUI Textures and Texts
- Water with DuDv and Normal maps and Fresnel effect
- Frustum Culling
- Wireframe Mode
- Post-Rendering Effects (Depth of Field effect)
- Day-night cycle with an amazing texture pack
- Lens Flare with Occlusion Culling
Available on Trello.
- Average of 50-60 fps
- No frame drops
- Lucian-Valentin Deaconu
- ThinMatrix - tutorials
- OreonEngine - terrain, some resources
- LearnOpenGL - tutorials