Moldy is a C++23/CMake codebase for a cross-platform desktop game engine project.
The current repository state is a small, core-first scaffold: core and math static libraries, a smoke executable,
plain C++ test executables, and scripted local workflow entry points. Renderer, editor, asset pipeline, platform layer,
and concrete engine systems are not implemented yet.
This repository currently provides infrastructure for building and checking a small C++23 scaffold:
core: a platform-neutral static library with the currentmoldy.coreC++ module API.math: a standalone static library with dependency-free HLSL-named vectors, square matrices, a shared color carrier, and explicit RGB/HSL/HSV/sRGB conversions.smoke: a minimal executable that links the core library and reports build information.core_tests: a plain C++ executable registered with CTest.math_tests: a plain C++ CTest executable for the math API.math_policy_tests: a dependency-free CTest executable for the initialfloattoolchain assumptions.scripts/: PowerShell entry points for configure, build, test, format, lint, and full local checks.
The repository does not yet contain renderer, editor, asset pipeline, platform layer, runtime system, or concrete 2D/3D engine implementation.
Moldy is licensed under the MIT License. See LICENSE for the full license text.
- CMake 3.28 or newer is the project-file minimum. Supported development environments use CMake 4.3.4 through 4.4.0.
- A C++23-capable compiler and CMake generator with support for the repository's C++ module setup.
- PowerShell for the local workflow scripts.
clang-format,clang-tidy, andcppcheckfor the default quality gate.
The complete supported toolchain policy is stored in config/toolchain.psd1. Exact constraints are pinned versions; range constraints include both endpoints. On Windows, MSVC 19.34.0.0 (Visual Studio 2022 17.4) is the minimum supported compiler toolset.
Check whether the selected local quality tools are available:
.\scripts\install-tools.ps1 -CheckOn Windows, missing selected tools can be installed with explicit opt-in:
.\scripts\install-tools.ps1 -InstallWindowsFrom a fresh checkout, run the default local quality gate from the repository root:
.\scripts\install-tools.ps1 -Check
.\scripts\check.ps1 -BuildDir build-checkscripts/check.ps1 validates the toolchain policy, configures the project, checks formatting, runs lint/static analysis, then builds and tests both Debug and Release by default.
For an optimized build that keeps core assertions enabled, run:
.\scripts\check.ps1 -BuildDir build-check-relwithdebinfo -Configuration RelWithDebInfoTo run the main steps individually:
.\scripts\configure.ps1 -BuildDir build-check -Configuration Debug
.\scripts\build.ps1 -BuildDir build-check -Configuration Debug
.\scripts\test.ps1 -BuildDir build-check -Configuration DebugUseful focused checks:
.\scripts\format.ps1 -BuildDir build-check
.\scripts\lint.ps1 -BuildDir build-checkclang-format, clang-tidy, and cppcheck are the selected local quality tools. scripts/format.ps1 is check-only by default; pass -Fix to rewrite source formatting.
Build outputs are generated under directories such as build/, build-check/, or other build-* directories. They are not source files and should stay out of commits.
Before cleaning generated artifacts, preview ignored files:
git clean -ndXRemove only generated, ignored build or temporary directories that are no longer needed. Do not delete tracked files, source directories, documentation, scripts, or user-created unignored directories as part of routine cleanup.
- Project Brief
- Architecture
- Decisions
- Source Map
- AI Workflow
- AI Tooling
- MCP Admission Record
- GitHub Workflow
- Scripts
- Code Quality
- Core Diagnostics Runtime
- Math Conventions
- C++ Style
- Testing
- Roadmap
CMakeLists.txt: top-level CMake project and target definitions.src/core/: current platform-neutralcorelibrary module.src/math/: standalone, dependency-free math library module.apps/smoke/: executable used to verify the library links and reports build information.tests/core/: plain C++ executable tests for the current core API.tests/math/: plain C++ executable tests for the current math API.tests/math_policy/: dependency-free math-policy toolchain checks.scripts/: PowerShell workflow entry points.docs/: project brief, decisions, source map, testing, style, and workflow documents.tasks/: current and future task notes.