{"id":49914659,"url":"https://github.com/canreader/sleakengine","last_synced_at":"2026-05-16T15:10:33.360Z","repository":{"id":337892360,"uuid":"834180501","full_name":"CanReader/SleakEngine","owner":"CanReader","description":"Open source, modular 3D game engine built with C++23 supporting DirectX 11, DirectX 12, OpenGL, and Vulkan through a unified rendering interface. Features an ECS architecture, scene management, and cross-platform support.","archived":false,"fork":false,"pushed_at":"2026-04-14T15:22:37.000Z","size":20653,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-14T17:20:14.782Z","etag":null,"topics":["3d-engine","cmake","cpp","cross-platform","directx","entity-component-system","game-engine","graphics","imgui","opengl","rendering-engine","sdl3","vulkan"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CanReader.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-26T15:39:21.000Z","updated_at":"2026-04-14T15:22:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/CanReader/SleakEngine","commit_stats":null,"previous_names":["canreader/sleakengine"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CanReader/SleakEngine","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CanReader%2FSleakEngine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CanReader%2FSleakEngine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CanReader%2FSleakEngine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CanReader%2FSleakEngine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CanReader","download_url":"https://codeload.github.com/CanReader/SleakEngine/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CanReader%2FSleakEngine/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33107646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T04:41:52.686Z","status":"ssl_error","status_checked_at":"2026-05-16T04:41:52.009Z","response_time":115,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-engine","cmake","cpp","cross-platform","directx","entity-component-system","game-engine","graphics","imgui","opengl","rendering-engine","sdl3","vulkan"],"created_at":"2026-05-16T15:10:20.060Z","updated_at":"2026-05-16T15:10:33.352Z","avatar_url":"https://github.com/CanReader.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"logo.png\" alt=\"SleakEngine\" width=\"200\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eSleakEngine\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eOpen-source 3D game engine library built with C++23\u003c/strong\u003e\n  \u003cbr /\u003e\n  Multi-backend rendering \u0026bull; Component-based ECS \u0026bull; Cross-platform\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/CanReader/SleakEngine\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/CanReader/SleakEngine?style=for-the-badge\u0026color=f5c211\" alt=\"Stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue?style=for-the-badge\" alt=\"License\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/CanReader/SleakEngine\"\u003e\u003cimg src=\"https://img.shields.io/badge/C%2B%2B-23-00599C?style=for-the-badge\u0026logo=cplusplus\u0026logoColor=white\" alt=\"C++23\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/DirectX_11-supported-4a9b4a?style=flat-square\" alt=\"DirectX 11\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/DirectX_12-supported-4a9b4a?style=flat-square\" alt=\"DirectX 12\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/OpenGL-supported-4a9b4a?style=flat-square\" alt=\"OpenGL\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vulkan-supported-4a9b4a?style=flat-square\u0026logo=vulkan\u0026logoColor=white\" alt=\"Vulkan\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS-lightgrey?style=flat-square\" alt=\"Platform\"\u003e\n\u003c/p\u003e\n\n---\n\n## About\n\nSleakEngine is the **core engine library** for building 3D applications. This repository contains only the engine itself \u0026mdash; rendering, ECS, input, math, scene management, and all vendored dependencies.\n\nTo create a game project, use the **[SleakEngine-Empty](https://github.com/CanReader/SleakEngine-Empty)** starter template, which pulls this repo in as a git submodule.\n\n## Features\n\n**Rendering**\n- Four graphics backends behind a single abstract interface \u0026mdash; DirectX 11, DirectX 12, OpenGL, Vulkan\n- Factory-pattern renderer selection at runtime\n- Deferred command queue for batched, order-independent draw submission\n\n**Entity-Component System**\n- GameObjects composed of pluggable Components (Transform, Mesh, Material, Camera, and custom)\n- Full component lifecycle: `Initialize` \u0026rarr; `OnEnable` \u0026rarr; `Update` / `FixedUpdate` / `LateUpdate` \u0026rarr; `OnDisable` \u0026rarr; `OnDestroy`\n- Parent-child hierarchies with recursive transforms\n- Tag-based object queries and deferred destruction safe for use during update loops\n\n**Scene Management**\n- State-driven scene lifecycle: Unloaded \u0026rarr; Loading \u0026rarr; Active \u0026rarr; Paused \u0026rarr; Unloading\n- Scenes own their objects \u0026mdash; automatic cleanup on unload\n- Seamless scene switching with `SetActiveScene()`\n\n**Engine Core**\n- Fixed timestep physics at 60 Hz, decoupled variable-rate rendering\n- SDL3-based windowing and input across platforms\n- spdlog-backed logging with severity macros (`SLEAK_LOG`, `SLEAK_WARN`, `SLEAK_ERROR`, `SLEAK_FATAL`)\n- ImGui debug overlay with camera controls, performance metrics, and scene inspection\n- Custom smart pointers (`RefPtr\u003cT\u003e`, `ObjectPtr\u003cT\u003e`, `WeakPtr\u003cT\u003e`) and containers (`List\u003cT\u003e`, `HashTable\u003cK,V\u003e`, `Queue\u003cT\u003e`, `Graph\u003cT\u003e`)\n\n## Templates\n\nGet started quickly with a project template:\n\n| Template | Description | Status |\n|---|---|---|\n| [Empty Template](https://github.com/CanReader/SleakEngine-Empty) | Minimal starter with a blank scene | Available |\n| First Person Template | First-person camera and movement | Coming soon |\n| Third Person Template | Third-person camera and character controller | Coming soon |\n| Top Down Template | Top-down camera and controls | Coming soon |\n\n## Using SleakEngine in Your Project\n\nThe recommended way is to add this repo as a git submodule:\n\n```bash\ngit submodule add https://github.com/CanReader/SleakEngine.git Engine\ngit submodule update --init --recursive\n```\n\nThen in your root `CMakeLists.txt`:\n\n```cmake\nadd_subdirectory(Engine)\n```\n\nLink against the `Engine` target from your game library.\n\nOr use the **[SleakEngine-Empty](https://github.com/CanReader/SleakEngine-Empty)** template which has this all set up.\n\n## Building Standalone\n\nTo build the engine library on its own:\n\n```bash\ngit clone --recursive https://github.com/CanReader/SleakEngine.git\ncd SleakEngine\ncmake -B build -DCMAKE_BUILD_TYPE=Debug\ncmake --build build\n```\n\n## Repository Structure\n\n```\nSleakEngine/\n└── Engine/\n    ├── include/           Public \u0026 private headers\n    ├── src/               Implementation\n    ├── assets/shaders/    Default shaders\n    └── vendors/           All third-party dependencies\n```\n\n## Vendored Dependencies\n\n| Library | Purpose |\n|---|---|\n| [SDL3](https://www.libsdl.org/) | Windowing, input, platform abstraction |\n| [glm](https://github.com/g-truc/glm) | Mathematics |\n| [spdlog](https://github.com/gabime/spdlog) / [fmt](https://github.com/fmtlib/fmt) | Logging |\n| [Dear ImGui](https://github.com/ocornut/imgui) | Debug UI |\n| [nlohmann/json](https://github.com/nlohmann/json) | JSON serialization |\n| [yaml-cpp](https://github.com/jbeder/yaml-cpp) | YAML configuration |\n| [glad](https://glad.dav1d.de/) | OpenGL loading |\n\n## Contributing\n\nContributions are welcome. Fork the repository, create a feature branch, and open a pull request.\n\n## License\n\nSleakEngine is released under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanreader%2Fsleakengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanreader%2Fsleakengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanreader%2Fsleakengine/lists"}