• Hey! Guest! The 39th GMC Jam will take place between November 26th, 12:00 UTC and November 30th, 12:00 UTC. Why not join in! Click here to find out more!

Asset - Extension GMSentry: Automated Error Reporting

meseta

Member
I've written a simple asset to submit error reports to popular error tracking service sentry.io, a tool used by companies like Reddit, Dropbox, and Uber to automatically receive errors from their software/services. GMSentry allows you to use it too for automatically logging error reports from your in-testing and released games, including with it full debugging information to help you track down your bugs.

GMSentry can be used stand-alone, but the real power is found when combining it with YAL's catch_error extension.

GMS2 only, but probably could be ported to GMS1 with no changes.

Marketplace link: https://marketplace.yoyogames.com/assets/7917/gmsentry
Installation guide: Releasing GameMaker games: automating bug reports like a pro Part 1
Advanced usage guide: Releasing GameMaker games: automating bug reports like a pro Part 2

Features:
* Automatically submit error reports containing a wealth of debug information
* Add custom tags to allow reports to be filtered by version, GM version, OS, etc.
* Add user data to allow reports to be grouped by user/submitter
* Add "breadcrumbs" - record of the sequence of events leading up to a crash
* Add debug data to be included with the logs
* Automatically dump event to file in case of no internet

Example of collected bug reports during Forager's development/beta testing:
forager.png

Example of a single report (the page contains additional OS and build information, as well as any added "breadcrumbs")
report1.png

Example of searchable breadcrumbs (logged debug information detailing the sequence of events leading up to a bug - for example, if you were debugging a menu, you'd add breadcrumbs for menu navigation; if you were debugging a chunk loading system, you'd add breadcrumbs for chunks loaded).
upload_2019-2-23_15-47-55.png

Example of additional arbitrary data attached to report:
upload_2019-2-23_15-48-43.png

Example usage with YAL's catch_error:
Code:
// Initialize GMSentry somewhere early in your game
setry_init("<insert your DSN here>");

// Later on, dequeue errors from catch_error and send them to sentry
var s = catch_error_dequeue();
if (s != "") {
    sentry_capture_exception(s);
}
 

Mert

Member
Hi. Thank you for the extension, it's just GREAT!

I have a question. I'm writing a Firebase Crashlytics extension, will share it for free and use them in my projects. How do you catch errors ?
 
Top