A downloadable tool

Get this tool and 3 more for $17.99 USD
View bundle
Buy Now$4.99 USD or more
Hear what your game is telling you!

Your game is constantly generating information. Why something went wrong, what state an object is in, whether a condition was met. By default that information goes nowhere, or it ends up as a wall of show_debug_message calls that you can't easily filter, can't easily turn off, and can't do anything with when something breaks on someone else's machine.

Echo replaces that with something you can actually work with.

Buy Statement, Pulse, or Catalyst (or get them in a bundle for a discount) and get Echo free!

Get the Ignition Kit bundle, featuring Pulse, Catalyst AND Statement for a discount!

Or get the Full Suite Pass bundle to get all current and future tools for one low price (price will increase each time a new tool launches, so get in early for substantial savings!)


The Echo logger

Instead of this:

show_debug_message("Player created");
show_debug_message("HP: " + string(hp));
show_debug_message("Some AI thing went wrong");

You do this:

EchoDebugInfo("Player created", "Player");
EchoDebugWarn("HP low: " + string(hp), "Combat");
EchoDebugSevere("Unhandled AI state", "AI");

Now you've got log levels (INFO, WARNING, SEVERE), tag filtering so you can tell Echo to only show you "AI" or "Physics" logs right now, automatic stack traces on severe messages, and a rolling history buffer you can dump to a timestamped file at any time. When something breaks on a tester's machine and you have no idea what happened, you ask them to reproduce it and send you the log dump.

Everything runs through the ECHO_DEBUG_ENABLED macro. Flip it to false for release builds and Echo steps aside completely, no noise, no overhead, your calls stay in the code for next time you need them.


Echo Chamber: the debug UI builder

Echo Chamber is a full windowed UI system for building debug interfaces inside your game. The kind of thing where you want to see your AI state, tweak a value at runtime, monitor a stat, or inspect something that's hard to chase down from the output log alone.

Windows behave like real windows: draggable, resizable, z-ordered, minimizable, closeable, pinnable. Panels dock to edges or fill the remaining space, and can be collapsed with a click. Controls cover the basics well: buttons, toggles, sliders, dropdowns, text inputs, scrollable list views, separators, labels. Most of them support data binding, so you can bind a toggle directly to a struct field and it just stays in sync without you writing an OnChange handler.

The part that makes it worth building complex things in: panels have custom content draw hooks, so you can draw whatever you want inside a panel and it clips and scrolls correctly within the window. That's how Statement's visual debugger (Lens) is built, entirely out of Echo Chamber, a custom draw hook doing the node rendering inside a panel.

There's a built-in theme system with nine preset themes (MidnightNeon, AmberForest, SakuraPunch, ArcadeWave, and a few more) plus a full theme constructor if you want to build your own. Window layout, positions, z-order, and panel collapse states all save and load to an INI file, so your debug windows are where you left them next time you open the project. Toast notifications pop up in the corner when you need a brief non-blocking message. There's also a built-in Echo Console you can open with a single call if you want a live in-game log viewer.

Echo Chamber was originally built to serve Statement's debugger, but it's been used for enough other things that it's worth knowing it exists if you ever need to put together a complex debug setup.

Note: I have plans to extend Echo Chamber into a full HUD builder for actual games, but it's not fully optimised for that yet so I'd discourage it outside of debug use for now.


Documentation

Full documentation including API reference and usage examples for both Echo and Echo Chamber.

Echo Documentation


Requirements

GameMaker 2024.8+ (requires gpu_set_scissor()).


Support and feedback

If you run into issues or have ideas for improvements:


Part of the RefresherTowel Games Toolkits

Part of a growing suite of GameMaker tools designed to play nicely together. If you like this style of tooling, you might also want:

  • Whisper - make your narrative dynamic and reactive, like Hades or Crusader Kings III.
  • Catalyst - makes modifiable statistics (and general numbers) super easy.
  • Pulse - a signals and events framework (supporting queries that allow you to ask questions instead of just broadcast signals!)
  • Statement - a state machine framework (with a fully visual in-game debugger).
  • Quill - a FREE text box creator that automatically gives you advanced features like a right click context menu, proper text selection, multi-line text boxes, plus more!
  • Fate - a FREE weighted drop system with an easy to use beginner setup, but with a huge amount of advanced features hiding in the weeds.

Get Pulse, Catalyst, Statement and Echo in the Ignition Kit bundle for a discount! Or buy the Full Suite Pass bundle (get access to all past and future tools) in one go!

Updated 12 days ago
StatusReleased
CategoryTool
Rating
Rated 5.0 out of 5 stars
(1 total ratings)
AuthorRefresherTowel
Made withGameMaker
Tagsdebug, game-development, GameMaker, gml, library, logger, logging, sourcecode, tool, utility
LinksGitHub
ContentNo generative AI was used

Purchase

Get this tool and 3 more for $17.99 USD
View bundle
Buy Now$4.99 USD or more

In order to download this tool you must purchase it at or above the minimum price of $4.99 USD. You will get access to the following files:

Echo v2.2.0 150 kB
Echo v2.1.0 137 kB
Echo v1.0.0 5.5 kB
Echo v2.2.1 152 kB
Echo v2.2.5 164 kB
Echo v2.2.7 165 kB
Echo v2.3.0.yymps 193 kB
Echo v2.3.1 193 kB

Development log