Skip to content
GrinlexGHPublic

About

Custom Engine on SDL3

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Repository files navigation

🥼 Skylabs

Discord C++ Vulkan

Note

About this project

This is my personal sandbox for testing modern C++ features, exploring project architectures, and experimenting with graphics programming.

🎯 Abstract Goal: To build a functional 3D game engine from scratch using C++.

📥 Cloning the Repository

This project uses Git Submodules. It is crucial to include them during the clone process.

✅ Correct way to clone

Use the --recursive flag to ensure all dependencies are downloaded:

git clone --recursive https://github.com/GrinlexGH/skylabs.git

⚠️ If you already cloned (without recursive)

If the folder is already on your disk but submodule folders are empty, run this command in the project root:

git submodule update --init --recursive

🪝 Pre-commit Hooks

Important

Using pre-commit is required before contributing. It trims trailing whitespace, fixes line endings, and prevents committing merge conflicts or invalid filenames.

📥 Installation & Setup

  1. Install pre-commit:

    • For CLI users (within Python venv):
      uv pip install pre-commit
    • For GitHub Desktop / GUI clients: Install pre-commit globally (e.g., via scoop install pre-commit or system Python). GUI apps cannot access tools isolated inside a virtual environment.
  2. Register the git hooks:

    pre-commit install
    

Hooks will run automatically before every git commit. To run checks manually on all files:

pre-commit run --all-files

🛠️ Build Requirements

Ensure you have the following tools installed before compiling:

Tool Requirement
CMake Latest version
Ninja Latest version
C++ Compiler Latest MSVC / GCC / Clang
Conan Latest version

⚙️ Configuration & Building

See detailed guide in BUILD.md

🦐 0. Install requirements

Tip

It is highly recommended to check out Scoop, an incredibly convenient package manager for Windows.

On Windows, it is recommended to use Visual Studio with LLVM/Clang.

Latest version of Conan is available in pip:

uv venv

# For Windows
.venv\Scripts\activate
# For Linux
source .venv/bin/activate

uv pip install -U -r ./requirements.txt

🔧 1. Configure Conan

Create default profile:

conan profile detect --force

Add the local remote:

This project uses a custom Conan recipe index.

conan remote add skylabs ./conan/conan-recipes -t local-recipes-index -f

Install global conan config:

Caution

This will overwrite your global Conan configuration.

conan config install ./conan/conan-config/config

🏗️ 2. Build

# Install dependencies
# For Windows
conan install . -pr clang-llvm -r skylabs -r conancenter -s build_type=Debug -s compiler.runtime_type=Debug --build=missing

# For Linux
conan install . -pr clang-linux -r skylabs -r conancenter -s build_type=Debug --build=missing

# Configure project
cmake --preset conan-debug

# Build
cmake --build build

📚 References & Resources

About

Custom Engine on SDL3

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages