Skip to content

Latest commit

 

History

History
130 lines (103 loc) · 4.46 KB

README.md

File metadata and controls

130 lines (103 loc) · 4.46 KB

Coffee Engine

Publish Documentation

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.


Getting Started

Any IDE or Text Editor that supports CMake Projects (and vcpkg) should work for developing the project.

Building

1. Clone the repository

git clone --recursive https://github.com/Brewing-Team/Coffee-Engine.git
cd Coffee-Engine

2. Compilation

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.

Instructions to compile the project using an IDE

Visual Studio 2022
  1. Open the folder with Visual Studio 2022
  2. Enable vcpkg integration. More info at https://devblogs.microsoft.com/cppblog/vcpkg-is-now-included-with-visual-studio.
  3. Reconfigure the cmake project. If the output panel display something like running vcpkg install then you are ready to go to the next stage.
  4. Wait until all the dependencies are installed by vcpkg. Then select on the top play button the Coffee-Editor.exe and run it.
  5. Go to the "bin/Coffee-Engine/" folder
  6. Congratulations! You have built Coffee-Engine for the first time!
CLion
  1. Open the folder with CLion
  2. ...
Linux

1. Install vcpkg

Clone vcpkg
git clone https://github.com/microsoft/vcpkg.git
cd vcpkg
Run the bootstrap
./bootstrap-vcpkg.sh
Enable the vcpkg instance
./vcpkg integrate install

Sometimes this will not automatically add the VCPKG_ROOT environment variable!

2. Build

mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j $(nproc) CoffeeEditor

3. Enjoy!

cd ../bin/CoffeeEditor/Release
./CoffeeEditor

Features (WIP)

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

Screenshots


Acknowledgements

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.