A downloadable tool

Get this tool and 2 more for $10.99 USD
View bundle
Buy Now$4.99 USD or more

Hear what your game is telling you with advanced debug logging!

Echo is a lightweight but surprisingly powerful debug logger for GameMaker, that also now comes with Echo Chamber, a fully featured debug UI builder!

Your game is already telling you what is happening; Echo helps you actually hear it. Swap scattered show_debug_message() calls for level based logs with tags, optional stack traces, and a history buffer you can dump to a file when something gets weird.

Echo is designed to stay out of the way until you need it, then give you a clear picture of what your game is doing without spamming every build forever.

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

Join the Echo discord channel


What Echo does

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");
EchoDebugWarning("HP low: " + string(hp), "Combat");
EchoDebugSevere("Unhandled AI state", "AI");

Now you can:

  • Turn logs on or off by level.
  • Filter by tag (for example, only see "AI" or "Physics" logs).
  • Get automatic stack traces when something serious happens.
  • Capture a rolling history and dump it to a timestamped log file.

When you are ready to ship, flip the ECHO_DEBUG_ENABLED macro to false and Echo quietly steps aside so your release builds are not full of noise.


Key features

  • Level based filtering
    Control how noisy your logs are using eEchoDebugLevel (from NONE through to COMPLETE). Keep things quiet most of the time, then crank it up when you are chasing a bug.
  • Tag based filtering
    Give each log one or more tags (for example "AI", "Physics", "UI") and tell Echo which tags you care about right now. Great for narrowing in on one system in a big project.
  • Per message urgency
    Mark logs as INFO, WARNING, or SEVERE. Echo uses this to decide when to force logs through and when to attach stack traces.
  • Optional stack traces
    Severe logs and high detail levels can automatically include a call stack, so you know exactly how you got to a bad state.
  • Rolling history buffer
    Echo keeps a history of recent logs so you can inspect them directly or dump them to a timestamped text file when something goes wrong on a tester or player machine.
  • Macro driven on / off switch
    All of Echo is wired through the ECHO_DEBUG_ENABLED macro, so you can leave calls in your code and choose whether they do full logging, minimal logging, or nothing in each build.
  • Simple, namespaced API
    All functions live under a clear Echo prefix, so they are easy to find in auto complete and do not collide with your own helpers.

Now comes with Echo Chamber!

A simple to use but quite powerful UI builder designed specifically for creating debug UIs.

Features (are you ready? because it's a long list)

  • A managed "desktop" experience that captures input, processes the active window, and handles drawing everything automatically.
  • Windows have "real" window behaviour, such as dragging, resizing, z-order, bring-to-front, minimise and close, fit to content, and plenty more.
  • Window panels allow docking and fill layouts (dock a panel to the top of a window and allow the panel below it to fill the rest of the space), and panel collapsing (a simple click can collapse an entire panel).
  • Panels also have custom draw hooks, which is how I display the state nodes in Statement's visual debugger: Lens, which is entirely built from Echo Chamber:
  • Each window can have its own hotkeys and input assigned, while allowing inheritance of default inputs.
  • Clipping and hit testing that respect window, panel, and control flow.
  • Scrollable areas, tooltips with delay, toasts (have a brief notification appear in the bottom right of the window).
  • Overlays consume input (dropdown menus will not activate buttons underneath them when clicked).
  • Plenty of control primitives like buttons, toggles, wrapped text display, input text boxes, dropdown menus, etc.
  • Ability to save/load window layout (including z-order and panel states).
  • Completely theme-able. Create your own colour schemes and easily skin windows, with the ability to override individual elements with specific styles.
  • Tab can jump through focusable elements.
  • And more...

As you can see, I've really tried to handle as many of the annoying pain points that come up when trying to create complex UI setups as possible, making Echo Chamber perfect for complex debugging setups.

I have plans to extend it into a full HUD builder for actual games, but right now it is not fully optimised for that kind of usage, so I would discourage it in most scenarios.


Included in the download

  • Echo script library.
  • Echo Chamber script library.

Echo docs:
https://refreshertowel.github.io/docs/ech


Requirements

  • GameMaker 2024.8+ or later (requires gpu_set_scissor() function).

Support and feedback

If you run into issues or have ideas for improvements:

I have been using Echo in my own projects to keep debugging sane, and I hope it makes tracking down problems in your games a lot less painful too.

Updated 17 hours ago
Published 20 days ago
StatusReleased
CategoryTool
AuthorRefresherTowel
Made withGameMaker
Tagsdebug, game-development, GameMaker, gml, library, logger, logging, sourcecode, tool, utility
LinksGitHub

Purchase

Get this tool and 2 more for $10.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_0_0.yymps 127 kB
EchoDebugLogger_v1.yymps 5.5 kB

Development log