1
0
Fork
You've already forked ForestEngine-fork
0
C++ OpenGL/Vulkan 3D Game Engine
  • C++ 92.4%
  • Python 6.3%
  • CMake 1.2%
  • Shell 0.1%
Find a file
2024年08月13日 11:21:47 +02:00
.vscode dependencies refactor 2024年07月26日 20:49:55 +02:00
code fix hash warnings 2024年08月13日 11:21:47 +02:00
config octree wip 2023年08月04日 19:32:25 +02:00
gifs update readme 2024年07月10日 00:45:35 +02:00
resources new buildings 2024年07月19日 16:12:55 +02:00
scripts improve download script 2024年07月26日 21:16:32 +02:00
test/unit fix unit tests compilation 2023年11月20日 19:54:01 +01:00
tools/Editor editor changes 2024年07月20日 16:35:45 +02:00
.clangd clangd settings 2024年03月04日 18:29:19 +01:00
.gitignore dependencies refactor 2024年07月26日 20:49:55 +02:00
CMakeLists.txt dependencies refactor 2024年07月26日 20:49:55 +02:00
Doxyfile ScenesManager and game controller script. 2020年04月13日 00:41:39 +02:00
README.md update readme 2024年07月10日 00:48:54 +02:00
TODO.md DSA buffers data 2024年06月29日 18:57:23 +02:00

README


Forest Engine

Forest Engine is a C++ / OpenGL Game Engine made from scratch with the only purpose of improving my gamedev and programming skills.

Forest Engine has been the latest iteration of my Game Engine (previously DruidEngine and before that it was ThiefEngine).

After about 10 years of learning I've decided to stop working on it and release the code on GitHub in case it's helpful or interesting to other people.

The state I leave the engine is: stable but not usable, there are still known bugs and pending tasks, so don't take this code as a reliable source of knowledge.

Build

Linux

  • First, download and install dependencies: ./scripts/dependencies.sh
  • Build project: python3 ./scripts/build.py -[ruixlch]
    • -h Show help.
    • -r Compile Release, Debug by default.
    • -u Compile Unit Tests suite. (NEEDED BY test.sh)
    • -i Compile Integration Tests suite. (NEEDED BY test.sh)
    • -x Compile Tools.
    • -l Enable Logs.
    • -p Enable Profiler.
    • -c Clean the project.
  • Run unitary tests (optional): ./scripts/test.sh
  • Generate documentation (optional): ./scripts/doc.sh

Example: build debug tool_Editor with this command python3 scripts/build.py -lp --tool=Editor --gpuDbg

Windows

Not available yet.


Directories

  • code: Source and Headers.
  • config: Engine and scenes config files.
  • scripts: Contains scripts described above.
  • compiledLibs: Contains the libForest.a. Generated by scripts/build.py.
  • binaries: Generated by scripts/test.sh.. Contains the test executable files (both unitary and integration).
  • test: Set of tests. Unitary and Integration.
  • tools: Set of tools.
  • dependencies: Generated by scripts/dependencies.sh. Contains third party libraries.
  • build: Generated by scripts/build.py.

Unitary Tests

Run unitary tests with ./scripts/test.sh. Result are stored in binaries/output. This command will print the results in terminal.

Integration Tests

Run integration test by executing ./binaries/test_integration. Result is stored in log.txt.


Devlogs

Here in my blog you can find all the devlogs of my Game Engine, from 2D initial stages to the latest 3D version: Devlogs


Characteristic

  • OpenGL 4.x
  • Batching
  • Shaders
  • Support for Texture Atlases
  • Animation using Spritesheet
  • Simple UI
  • Scene management
  • Perspective / orthographic camera
  • Stencil
  • Math module
  • Simple scripting
  • Loading 3D models with GLTF
  • Skeletal Meshes
  • Skeletal Animation
  • GPU Skinning
  • PBR Shading
  • Directional Light
  • Shadow Mapping

Showcase