Tea Engine is a Beautiful(not yet but it will be) and Cross-platform 3D Game Engine written in C++ using OpenGL and GLFW.
Warning
This is a personal project for learning how to make a 3D game engine.
Any IDE or Text Editor that supports CMake Projects should work for developing the project.
git clone --recursive https://github.com/HugoPlacer/Tea-Engine.git
cd Tea-Engine
Windows
(Not Tested but you should use cmake with vcpkg (easiest way i think is with vs2022))Linux
- Arch Linux
sudo pacman -S spdlog fmt glfw glm assimp
- Fedora
sudo dnf install spdlog-devel fmt-devel glfw-devel glm-devel assimp-devel
- Ubuntu
sudo apt-get install libspdlog-dev libfmt-dev libglfw3-dev libglm-dev libassimp-dev
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j $(nproc) TeaEditor
cd ../bin/TeaEditor/Release
./TeaEditor
- Compatible with Windows and Linux.
- 3D Rendering
- Textures
- Materials
- Shaders
- PBR Rendering
- Lights
- Environment
- Scene System
- Scene Tree
- ECS System
- Model Loading
- Editor
- Save And Loading
This project makes use of several open-source libraries and resources that have greatly contributed to its development. Special thanks to the creators and maintainers of the following:
- spdlog: Fast C++ logging library.
- GLFW: Library for handling window creation, input, and events.
- GLM: OpenGL Mathematics library for graphics software.
- GLAD: Multi-language OpenGL loader-generator.
- ImGui: Immediate Mode Graphical User Interface for C++.
- stb_image: Image loading library.
- assimp: Library to import various well-known 3D model formats.
- EnTT: Fast and reliable entity-component system (ECS).
- Tracy: Real-time, nanosecond resolution, remote telemetry, hybrid frame and sampling profiler.
- LearnOpenGL: Comprehensive OpenGL tutorial and resource site.
- Hazel: A small game engine developed by TheCherno as part of his game engine series.
- Godot: An advanced, feature-packed, multi-platform 2D and 3D open-source game engine.
- skypjack on software: Blog and resources on software development by skypjack.



