
Echo
A downloadable tool
Hear what your game is telling you with advanced debug logging!
Echo is a lightweight but surprisingly powerful debug logger for GameMaker.
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.
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 usingeEchoDebugLevel(fromNONEthrough toCOMPLETE). 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 asINFO,WARNING, orSEVERE. 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 theECHO_DEBUG_ENABLEDmacro, 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.
Included in the download
- Echo script library for GameMaker (GML 2.3+).
- Example usage showing basic setup and common patterns.
- A link to the full online documentation.
Echo docs:
https://refreshertowel.github.io/docs/echo/
Statement bundle
Echo is also bundled for free with my state machine framework, Statement. If you already own Statement, you already have Echo and do not need to buy it separately. This standalone Echo page is for people who just want the debug logger on its own.
Statement docs:
https://refreshertowel.github.io/docs/statement/
Requirements
- GameMaker 2.3 or later (GML with structs and methods).
Support and feedback
If you run into issues or have ideas for improvements:
-
GitHub Issues (bug reports and feature requests):
https://github.com/RefresherTowel/Echo/issues -
Discord (questions, discussion, show and tell):
https://discord.gg/w5NWDBwNta
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.
| Published | 4 hours ago |
| Status | Released |
| Category | Tool |
| Author | RefresherTowel |
| Made with | GameMaker |
| Tags | debug, game-development, GameMaker, gml, library, logger, logging, sourcecode, tool, utility |
| Links | GitHub |
Purchase
In order to download this tool you must purchase it at or above the minimum price of $2.99 USD. You will get access to the following files:
