↓ Skip to main content
  1. Gremlin Engine/

Gremlin Dev Log: June 2026 - Pruning

VeraShackle
Author
VeraShackle
Tales of computers, gadgets & gizmos.
Gremlin Dev Log - This article is part of a series.
Part 6: This Article

Snip, snip…
#

June was a very busy work month, so a short one for Gremlin itself - a handful of commits - but a couple of them were big, and one of them touched every single app I have. There was also a brand-new game: a basic Breakout clone, because sometimes you just want to bounce a ball off some bricks.

IMDraw: Push & Push3D
#

IMDraw had grown by accretion. Every new feature arrived with its own slightly different method names, and the old ones were kept ‘for compatibility’. Compatibility with what, exactly? It’s a library with one user!

So in June I culled them all in one go:

  • everything is now Push*,
  • anything flushed through the 3D pattern is Push*3D,
  • and a redundant three-argument Draw overload is gone.

The diff removed far more than it added, and every app in GremlinApps was fixed up the same day. That’s the ’no backwards compatibility, just fix the callers’ policy at work again. With one user, a coordinated rename is an afternoon, not a migration project.

Watching the frame times
#

February’s frame-spike reporter grew up into a proper profiling system, with a debug overlay panel to show it. It lives in Gremlin rather than in each app, so any app gets it for free - MiniBlaster was the first to wear it.

Dropdowns, overlays & picking things#

Two reusable bits of UI and interaction came out of the workbench tools this month:

  • Dropdown menus, with the shared ‘overlay’ behaviour broken out into a reusable ECSOverlayState. Modals were rebuilt on top of it too, replacing April’s reusable modal states - and both CNCWorkbench and Skirmish moved over straight away.
  • SelectionController, which picks objects in the 3D view by firing a ray into the scene, and supports selecting and transforming vector geometry.

The selection work came with a new project, CADWorkbench. The modelling tools now have a focused space of their own to grow up in, away from everything else CNCWorkbench does.

Meanwhile Skirmish got a better player-controller architecture, with CPU and human players behind the same interface - one of its two players is always the computer.

Bits & bobs
#

  • An explicit reset of the debug IMDraw, to dodge a problematic destruction order at shutdown.
  • Removed the old WSL CMake preset - the plain Linux one does the job.

What’s next?
#

Selecting things is only half of a CAD tool. CADWorkbench exists to work out the other half: drawing things.

Gremlin Dev Log - This article is part of a series.
Part 6: This Article