Summary
Add verified CMake presets and CI jobs that target the Steam Runtime (Linux) and produce Windows binaries compatible with Steam distribution requirements. Goal: a game or tool built from this template drops into Steam without runtime library conflicts on Steam Deck, Ubuntu 20.04+ baseline, or Windows 10+.
Motivation
Indie gamedev is the largest segment of solo/small-team C++ developers on Steam. Most CMake templates ignore Steam entirely; developers discover ABI incompatibilities (glibc too new, C++ stdlib mismatch, missing steam-runtime symbols) only after their first upload. A template that pre-verifies Steam Runtime compatibility is a direct differentiator against cpp-best-practices, kigster, and generic starters.
Acceptance Criteria
Research & References
Summary
Add verified CMake presets and CI jobs that target the Steam Runtime (Linux) and produce Windows binaries compatible with Steam distribution requirements. Goal: a game or tool built from this template drops into Steam without runtime library conflicts on Steam Deck, Ubuntu 20.04+ baseline, or Windows 10+.
Motivation
Indie gamedev is the largest segment of solo/small-team C++ developers on Steam. Most CMake templates ignore Steam entirely; developers discover ABI incompatibilities (glibc too new, C++ stdlib mismatch, missing
steam-runtimesymbols) only after their first upload. A template that pre-verifies Steam Runtime compatibility is a direct differentiator againstcpp-best-practices,kigster, and generic starters.Acceptance Criteria
linux-steam-sniperconfigure preset that targets Steam Runtime Sniper (Ubuntu 22.04-based scout successor); build insideregistry.gitlab.steamos.cloud/steamrt/sniper/sdkcontainer or equivalentlibc.so.6,libstdc++.so.6, andlibgcc_s.so.1ABI compatibility against Steam Runtime manifeststeam-runtime-checkorsteamrt/tasks/check-abion produced binarymsvc-steam/llvm-mingw-steam-x86_64with static CRT linkage (/MTor-static-libgcc -static-libstdc++) to avoid VC++ redist dependency for Steam.exehas no external dependency onvcruntime140.dll/msvcp140.dll(usedumpbin /dependentsorlddequivalent on Wine)steam_appid.txttemplate,deploy/directory structure, and CPack generator for.zipready for SteamPipeResearch & References
setup.shscripts ValveSoftware/steam-runtime.ziplayout,steam_appid.txt, and depot build requirements SteamworksCMAKE_INTERPROCEDURAL_OPTIMIZATION— LTO for smaller Steam binaries cmake.org-static-libgcc -static-libstdc++— GCC option reference for self-contained Windows executables gcc.gnu.org/MTvs/MDsemantics for Steam-no-redist builds Microsoft Docs