Coffee Engine is a Beautiful and Cross-platform 3D Game Engine written in C++ using OpenGL and SDL3.
Important
This is a university project for learning how to make a 3D game engine.
Any IDE or Text Editor that supports CMake Projects (and vcpkg) should work for developing the project.
git clone --recursive https://github.com/Brewing-Team/Coffee-Engine.git
cd Coffee-Engine
Windows
There are a lot of ways to do it. From installing all the necessary packages for building it (cmake, vcpkg, a compiler...), to using a IDE environment. My recomendation is to use an IDE environment if what you want is an straightforward way to compile the project.- Open the folder with Visual Studio 2022
- Enable vcpkg integration. More info at https://devblogs.microsoft.com/cppblog/vcpkg-is-now-included-with-visual-studio.
- Reconfigure the cmake project. If the output panel display something like
running vcpkg install
then you are ready to go to the next stage. - Wait until all the dependencies are installed by vcpkg. Then select on the top play button the Coffee-Editor.exe and run it.
- Go to the "bin/Coffee-Engine/" folder
- Congratulations! You have built Coffee-Engine for the first time!
- Open the folder with CLion
- ...
Linux
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
Sometimes this will not automatically add the VCPKG_ROOT environment variable!
For more info take a look at https://learn.microsoft.com/en-us/vcpkg/get_started/get-started?pivots=shell-powershell
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j $(nproc) CoffeeEditor
cd ../bin/CoffeeEditor/Release
./CoffeeEditor
Warning
This is outdated, please Brewing-Team update it!
- 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.
- SDL3: Cross-platform development library made by libsdl.org.
- 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.