All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
examples/demo_game:idtech3_demo.pk3embeds a minimal native UI module (vm/ui<arch>.soor.dll) so the demo skeleton can open a window without retailui.qvm(examples/demo_game/native/ui_skeleton_stub.c, CMake targetdemo_ui_skeleton).examples/demo_skeleton/: user-friendly demo playfield (./scripts/run_demo.sh, auto-detect layout,baseq3hint, help text);scripts/run_demo.shentry point;base/+idtech3_demo/README stubs.- CTest
test_demo_game_pk3: verifiesexamples/demo_gamezip layout (configs + optionalcc-builtvm/ui*.so) matches CMake staging. - Vulkan:
vk_procs.choldsqvk*function pointer definitions (split fromvk.c);vk_instance.cno longer duplicatesexterndeclarations. - Vulkan:
vk_shader_modules.choldsvk_create_shader_modulesand includesshader_data.c/shader_binding.c(split fromvk.c). - Vulkan:
vk_pipelines_persistent.choldsvk_alloc_persistent_pipelines(split fromvk.c). - CHANGELOG.md for release tracking
- Semantic versioning in CMake (project VERSION 1.0.0)
- ENABLE_FORTIFY_SOURCE option for buffer overflow protection (default ON)
- ENABLE_ASAN option for AddressSanitizer in Debug builds
- .editorconfig for consistent editor formatting
- .clang-format for style enforcement (clang-format -i)
- docs/MIGRATION.md for upgrade guidance
- docs/DEPRECATION_POLICY.md for deprecation process
- Unit test infrastructure: tests/unit/, BUILD_UNIT_TESTS option, unit_macros test
- compile_engine.sh asan option for local AddressSanitizer builds
- CI: Clang in Ubuntu build matrix, ASAN job, FORTIFY_SOURCE enabled on Linux
- FORTIFY_SOURCE now enabled by default in Release builds (compile_engine.sh)
- Vulkan cinematic path: r_fboCinematic cvar, vk_in_render_pass reset, luminance skip workaround
- Vulkan PBR: direct specular uses anisotropic GGX when an anisotropy map is bound (
r_pbr_anisotropicSpeculardefault 1); replaces the old roughness-only blend. Re-runscripts/compile_shaders.shafter changinggen_frag.tmpl. - Vulkan PBR: anisotropic visibility for direct light; optional IBL roughness stretch from the anisotropy map (
r_pbr_iblAnisoStretch); clearcoat base attenuation and Charlie sheen with optional fourthsheenScaleroughness token.
- Legacy
r_vfog*engine cvars andvk_vfog.c/vk_vfog.h: volumetric fog is configured only viar_volumetricFog*(and map/r_fog*as documented). Editorworldspawnkeysvfog_*remain separate map data, not console cvars.
- _FORTIFY_SOURCE=2 enabled for GCC/Clang Release builds when ENABLE_FORTIFY_SOURCE=ON
1.0.0 - TBD
Initial tagged release. See docs/ROADMAP.md for feature status.