LDJam user 234597

Ludum Dare 56

A call for game engine enthusiasts

clap-screenshot.png Hi everyone,

I'm slowly working on a custom 3D engine in C, and I'm looking for partners in crime. Here's a live demo of what was supposed to be an entry to LDjam #56 (all models by @mikemikemakes). It currently runs natively on linux, mac os x and windows (with some caveats -- not a windows programmer) and in a browser (see the live demo link above).

A short rundown: - Renderer: OpenGL/OpenGL ES/WebGL - Physics: ODE - 3D assets: glTF (embedded and glb) - Game controller support - Limited touch screen support - Skeletal animations - Ambient lighting - Cascade shadows - Audio playback via OpenAL - A very basic UI (ImGui is also there, but only for debugging/editing stuff) - Oh yeah, it runs in Safari on iPhone 7.

Pretty basic stuff. The TODO list is ambitious and constantly growing and I'd really like to invite contributors. It's not meant to compete with any existing engines, and is guaranteed to give you more grief than, say, Godot, but instead will give you some satisfaction from creating game tech.

Ludum Dare 57

Clap engine update

Watch the video

Here's a progress update since the previous post about my game engine. A full description of what and why it is is here.

That post was ~400 commits and a full LDJAM game ago. Since then, a lot has changed — some systems were refactored, others rewritten, and more than a few bugs were put out of their misery.

Clap 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.


Highlights since the previous post

  • Color grading via LUTs, including procedural LUT generation
  • Variance Shadow Maps (VSM): no more aliasing and peter-panning
  • SSAO (screen-space ambient occlusion) — because subtle shadows matter
  • PBR-style lighting with metallic + roughness support
  • Distance-based LOD and entity scaling (using meshoptimizer)
  • Dynamic resolution scaling for shadow maps
  • Touch events → mouse input conversion for WebAssembly
    • Towards the Light can now be completed on a smartphone
    • Debug UI is now usable with a touchscreen
  • Real-time render debugger / controller via ImGui
  • Entity inspector as well as light, character etc controls via ImGui

The WASM/"HTML5" build remains (and will continue to remain) a first-class citizen and not an afterthough. Live demo: http://ash.works/clap/main/ldjam57test/ There's also a full list of live demos and executables.

Also, v0 release.


What's probably going to happen next

  • Metal renderer: because MacOS's OpenGL is on life support
  • Various rendering tricks/eye candy
  • Procedural geometry/playspace/etc
  • Scene serialization / saving changes from the in-place editor
  • UI overhaul
  • Boring things like entity system/multithreading/specialized memory allocators

What's not going to happen

  • A standalone editor with "Run" and "Export" buttons
  • Scripting language integration (lua or homespun) in which to write gameplay logic

Screenshots

SSAO (screen space ambient occlusion)

Somebody said that it's one of those features that you didn't know you needed, until you got it. SSAO.png

"Comic red" color grading

The 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. clap-comic-red.png

"Matrix green" color grading with matching UI

This 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. clap-matrix-ui2.png


If you like what you see, come give us a star: GitHub stars

If you're interested in low-level multi-platform no-nonsense 3D game engine development in C — come take a look:

https://github.com/virtuoso/clap

And thanks again to the folks who commented on the previous post and our LD57 game, including, but not limited to, @geckoo1337.