{"author_link":"\/users\/234597","author_name":"LDJam user 234597","author_uid":"234597","comments":[],"epoch":1751220527,"event":"LD57","format":"md","ldjam_node_id":415515,"likes":5,"metadata":{"p_key":"84940","p_author":"LDJam user 234597","p_authorkey":"1234597","p_urlkey":"295698","p_title":"Clap engine update","p_cat":"LDJam ","p_event":"LD57","p_time":"1751220527","p_likes":"5","p_comments":"0","p_status":"WAYBACK","us_key":"1234597","us_name":"LDJam user 234597","us_username":"234597","event_start":"1743811200","event_key":"111","event_name":"Ludum Dare 57"},"node":{"id":415515,"parent":408729,"_superparent":406845,"author":234597,"type":"post","subtype":"","subsubtype":"","published":"2025-06-29T18:08:47Z","created":"2025-06-29T17:59:35Z","modified":"2025-07-12T10:35:55Z","_trust":1,"version":1313198,"slug":"clap-engine-update","name":"Clap engine update","body":"[![Watch the video](https:\/\/img.youtube.com\/vi\/nyvz55lmAHc\/hqdefault.jpg)](https:\/\/youtu.be\/nyvz55lmAHc)\n\nHere's a progress update since the [previous post about my game engine](https:\/\/ldjam.com\/events\/ludum-dare\/56\/$396467\/a-call-for-game-engine-enthusiasts). A full description of what and why it is is [here](https:\/\/virtuoso.github.io\/clap.html).\n\nThat post was ~400 commits and a full LDJAM game ago. Since then, a lot has changed \u2014 some systems were refactored, others rewritten, and more than a few bugs were put out of their misery.\n\nClap is a low-level, minimal-dependency, C-based game engine, and it just hit its `v0` milestone. It didn't have any version before, but at a 5-year mark and 1863 commits, I figured [it's time](https:\/\/github.com\/virtuoso\/clap\/releases\/tag\/v0).\n\n---\n\n## Highlights since the previous post\n\n- **Color grading via LUTs**, including procedural LUT generation\n- **Variance Shadow Maps (VSM)**: no more aliasing and peter-panning\n- **SSAO (screen-space ambient occlusion)** \u2014 because subtle shadows matter\n- **PBR-style lighting** with metallic + roughness support\n- **Distance-based LOD and entity scaling** (using `meshoptimizer`)\n- **Dynamic resolution scaling for shadow maps**\n- **Touch events \u2192 mouse input conversion** for WebAssembly\n  - [Towards the Light](https:\/\/ldjam.com\/events\/ludum-dare\/57\/towards-the-light) can now be completed on a smartphone\n  - Debug UI is now usable with a touchscreen\n- **Real-time render debugger \/ controller** via ImGui\n- **Entity inspector** as well as light, character etc controls via ImGui\n\nThe WASM\/\"HTML5\" build remains (and will continue to remain) a first-class citizen and not an afterthough.\nLive demo: http:\/\/ash.works\/clap\/main\/ldjam57test\/\nThere's also [a full list](https:\/\/github.com\/virtuoso\/clap#live-demos-and-executables) of live demos and executables.\n\nAlso, [v0 release](https:\/\/github.com\/virtuoso\/clap\/releases\/tag\/v0).\n\n---\n\n## What's probably going to happen next\n\n- **Metal renderer**: because MacOS's OpenGL is on life support\n- Various rendering tricks\/eye candy\n- Procedural geometry\/playspace\/etc\n- Scene serialization \/ saving changes from the in-place editor\n- UI overhaul\n- Boring things like **entity system**\/**multithreading**\/specialized **memory allocators**\n\n## What's not going to happen\n\n- A standalone editor with \"Run\" and \"Export\" buttons\n- Scripting language integration (lua or homespun) in which to write gameplay logic\n\n---\n\n## Screenshots\n\n### SSAO (screen space ambient occlusion)\n\nSomebody said that it's one of those features that you didn't know you needed, until you got it.\n ![SSAO.png](\/\/\/raw\/564\/93\/z\/6c8e7.png)\n\n### \"Comic red\" color grading\n\nThe inspiration for this was Sin City, and maybe it doesn't quite get to the cinematographic quality of it, it definitely does bring out comic book vibes.\n![clap-comic-red.png](\/\/\/raw\/564\/93\/z\/6c8e8.png)\n\n### \"Matrix green\" color grading with matching UI\n\nThis is just a must have. Also shows scene control, entity inspector, render passes in the pipeline and a debug preview of the edge detection pass that generates extra thick outlines in the scene.\n![clap-matrix-ui2.png](\/\/\/raw\/564\/93\/z\/6c8e9.png)\n\n---\n\nIf you like what you see, come give us a star: [![GitHub stars](https:\/\/img.shields.io\/github\/stars\/virtuoso\/clap?style=social)](https:\/\/github.com\/virtuoso\/clap)\n\nIf you're interested in low-level multi-platform no-nonsense 3D game engine development in C \u2014 come take a look:\n\nhttps:\/\/github.com\/virtuoso\/clap\n\nAnd thanks again to the folks who commented on the [previous post](https:\/\/ldjam.com\/events\/ludum-dare\/56\/$396467\/a-call-for-game-engine-enthusiasts) and [our LD57 game](https:\/\/ldjam.com\/events\/ludum-dare\/57\/towards-the-light), including, but not limited to, @geckoo1337.\n","scope":"public","node-timestamp":"2025-07-03T07:44:51Z","meta":[],"path":"\/events\/ludum-dare\/57\/towards-the-light\/clap-engine-update","parents":[1,5,9,406845,408729],"files":[],"files-timestamp":0,"love":5,"love-timestamp":"2025-07-12T10:35:55Z","comments":1,"comments-timestamp":"2025-06-30T03:29:46Z","_wayback":{"timestamp":"20250805235832","url":"https:\/\/api.ldjam.com\/vx\/node2\/get\/415536+415534+415532+415528+415526+415521+415518+415517+415515+415512?author&parent&superparent"}},"node_metadata":{"n_key":"415515","n_urlkey":"295698","n_parent":"408729","n_path":"\/events\/ludum-dare\/57\/towards-the-light\/clap-engine-update","n_slug":"clap-engine-update","n_type":"post","n_subtype":"","n_subsubtype":"","n_author":"234597","n_created":"1751219975","n_modified":"1752316555","n_version":"1313190","n_status":"WAYBACK"},"source_url":"https:\/\/ldjam.com\/events\/ludum-dare\/57\/towards-the-light\/clap-engine-update","text":"[![Watch the video](https:\/\/img.youtube.com\/vi\/nyvz55lmAHc\/hqdefault.jpg)](https:\/\/youtu.be\/nyvz55lmAHc)\n\nHere's a progress update since the [previous post about my game engine](https:\/\/ldjam.com\/events\/ludum-dare\/56\/$396467\/a-call-for-game-engine-enthusiasts). A full description of what and why it is is [here](https:\/\/virtuoso.github.io\/clap.html).\n\nThat post was ~400 commits and a full LDJAM game ago. Since then, a lot has changed \u2014 some systems were refactored, others rewritten, and more than a few bugs were put out of their misery.\n\nClap is a low-level, minimal-dependency, C-based game engine, and it just hit its `v0` milestone. It didn't have any version before, but at a 5-year mark and 1863 commits, I figured [it's time](https:\/\/github.com\/virtuoso\/clap\/releases\/tag\/v0).\n\n---\n\n## Highlights since the previous post\n\n- **Color grading via LUTs**, including procedural LUT generation\n- **Variance Shadow Maps (VSM)**: no more aliasing and peter-panning\n- **SSAO (screen-space ambient occlusion)** \u2014 because subtle shadows matter\n- **PBR-style lighting** with metallic + roughness support\n- **Distance-based LOD and entity scaling** (using `meshoptimizer`)\n- **Dynamic resolution scaling for shadow maps**\n- **Touch events \u2192 mouse input conversion** for WebAssembly\n  - [Towards the Light](https:\/\/ldjam.com\/events\/ludum-dare\/57\/towards-the-light) can now be completed on a smartphone\n  - Debug UI is now usable with a touchscreen\n- **Real-time render debugger \/ controller** via ImGui\n- **Entity inspector** as well as light, character etc controls via ImGui\n\nThe WASM\/\"HTML5\" build remains (and will continue to remain) a first-class citizen and not an afterthough.\nLive demo: http:\/\/ash.works\/clap\/main\/ldjam57test\/\nThere's also [a full list](https:\/\/github.com\/virtuoso\/clap#live-demos-and-executables) of live demos and executables.\n\nAlso, [v0 release](https:\/\/github.com\/virtuoso\/clap\/releases\/tag\/v0).\n\n---\n\n## What's probably going to happen next\n\n- **Metal renderer**: because MacOS's OpenGL is on life support\n- Various rendering tricks\/eye candy\n- Procedural geometry\/playspace\/etc\n- Scene serialization \/ saving changes from the in-place editor\n- UI overhaul\n- Boring things like **entity system**\/**multithreading**\/specialized **memory allocators**\n\n## What's not going to happen\n\n- A standalone editor with \"Run\" and \"Export\" buttons\n- Scripting language integration (lua or homespun) in which to write gameplay logic\n\n---\n\n## Screenshots\n\n### SSAO (screen space ambient occlusion)\n\nSomebody said that it's one of those features that you didn't know you needed, until you got it.\n ![SSAO.png](\/\/\/raw\/564\/93\/z\/6c8e7.png)\n\n### \"Comic red\" color grading\n\nThe inspiration for this was Sin City, and maybe it doesn't quite get to the cinematographic quality of it, it definitely does bring out comic book vibes.\n![clap-comic-red.png](\/\/\/raw\/564\/93\/z\/6c8e8.png)\n\n### \"Matrix green\" color grading with matching UI\n\nThis is just a must have. Also shows scene control, entity inspector, render passes in the pipeline and a debug preview of the edge detection pass that generates extra thick outlines in the scene.\n![clap-matrix-ui2.png](\/\/\/raw\/564\/93\/z\/6c8e9.png)\n\n---\n\nIf you like what you see, come give us a star: [![GitHub stars](https:\/\/img.shields.io\/github\/stars\/virtuoso\/clap?style=social)](https:\/\/github.com\/virtuoso\/clap)\n\nIf you're interested in low-level multi-platform no-nonsense 3D game engine development in C \u2014 come take a look:\n\nhttps:\/\/github.com\/virtuoso\/clap\n\nAnd thanks again to the folks who commented on the [previous post](https:\/\/ldjam.com\/events\/ludum-dare\/56\/$396467\/a-call-for-game-engine-enthusiasts) and [our LD57 game](https:\/\/ldjam.com\/events\/ludum-dare\/57\/towards-the-light), including, but not limited to, @geckoo1337.\n","title":"Clap engine update","wayback_source":{"timestamp":"20250805235832","url":"https:\/\/api.ldjam.com\/vx\/node2\/get\/415536+415534+415532+415528+415526+415521+415518+415517+415515+415512?author&parent&superparent"}}