Sketchy Maze

"a drawing-based maze game."

v0.15.0 Released

It has been over 2 years since the last release, but Sketchy Maze v0.15.0 is here!

This release focused heavily on performance improvements, including slashing the file sizes of levels & doodads by 90% (resulting in a much smaller download size of the game), fixing memory leaks and reworking collision detection to make the game run much more smoothly.

It also tightens up the game’s features and fixes a lot of bugs with collision detection and doodad scripts.

Check out the Downloads page for the latest release.

Some of the highlights include:

  • Now on Android! As of v0.15.0 I am able to release native Android ports of the game. Sketchy Maze is designed to be ‘basically usable’ on mobile-sized screens, thanks to having a Pinephone with GNU/Linux to test on over the years, and now the game can natively run on Android.

  • Massively smaller Level and Doodad files. Drawings are now compressed with Run Length Encoding (RLE) resulting in about a 90% reduction in file size, taking one of the game’s largest built-in levels from 22 MB down to just 263 KB. The complete size of the First Quest levelpack has reduced from 50 MB to only 1.8 MB!

    Thanks to the new level compression format, the game’s overall download size has massively shrank compared to v0.14.0 (and there aren’t even any new levels in this release!)

    • Windows: 188 MB -> 35 MB
    • MacOS: 199 MB -> 120 MB
    • Linux: 186 MB -> 34 MB


    The game, as always, can open any level or doodad created by any previous version of the game. When re-saving your old drawings, the new RLE compression will be applied going forward.

  • Many performance improvements, including better management of textures and completely reworking the collision detection system, have resulted in all levels performing well (at full 60 FPS) on the developer’s desktop PC. Previously, a few heavy built-in levels such as Thief, Zoo, and Shapeshifter struggled to maintain even 30 FPS.

  • Collision detection fixes. There were previously collision bugs if a doodad’s Hitbox was offset from the 0,0 top left corner. Most of the built-in doodads were OK, but some like the Snake which had an offset hitbox could fall through the floor or clip through things they shouldn’t.

    The collision detection algorithm (between actors and the level geometry) was refactored to be ~142x faster, from 472,186 ns/op -> 3,331 ns/op and with allocations down from 4554/op to only 5/op.

  • Frame Rates & Doodad Script Timings: the game’s internal simulation rate is now decoupled from the frame rate (frames per second, or FPS). The game still targets 60 FPS but now responds better if you’re running at a lower or faster frame rate.

    For doodad scripts, their internal timers are now tied to the game’s simulation rate, rather than the wall clock time, to make levels more deterministic when the game is played from weaker hardware and can’t maintain 60 FPS. Specifically, the milliseconds passed to functions like Self.AddAnimation(), setInterval() or setTimeout() will be translated into the expected number of game simulation ticks, rather than objective wallclock time. Note: doodad API functions like time.Now() that do use wallclock time are available but should not be used for anything with important timing.

See the Change Log for all the details, and head to the Downloads page to check it out!

Copyright © 2026 Noah Petherbridge.