-
Notifications
You must be signed in to change notification settings - Fork 390
-
We are still early in Threadbare's development but every so often these three topics come up:
- Can we get crash/error reporting? e.g. if some error is logged every time a particular scene is played, can we gather & aggregate that data somehow?
- Can we get aggregated data on user behaviour? e.g. "this is the distribution of the number of attempts before players successfully outrun the void", "how many people pet the cat"?
- Can we add an in-game bug report feature?
In a past life I used Sentry for crash reporting. I have been following the progress of their support for web exports, which was released earlier this month. I quickly experimented with it this morning, and I'll write some notes below. There are of course other tools!
Beta Was this translation helpful? Give feedback.
All reactions
Replies: 3 comments 1 reply
-
On Sentry:
It was very easy to get set up. I created an organisation & project on their server; added their addon to Threadbare; started the game, triggered an error, and lo! it appeared on the Sentry dashboard.
imageI added one line of code to player_hook.gd:
diff --git a/scenes/game_elements/characters/player/components/player_hook.gd b/scenes/game_elements/characters/player/components/player_hook.gd index 824e0061..40252494 100644 --- a/scenes/game_elements/characters/player/components/player_hook.gd +++ b/scenes/game_elements/characters/player/components/player_hook.gd @@ -132,6 +132,7 @@ func _new_hook_string() -> Line2D: character.add_sibling(new_hook_string) new_hook_string.owner = character.owner string_thrown.emit() + SentrySDK.metrics.count("string_thrown") return new_hook_string
and now I get a hooks-per-second metric on the server side:
Screenshot From 2026年03月23日 16-27-52They have a user feedback feature, with a ready-made Godot scene. I haven't tried it but I'm sure it would work. https://docs.sentry.io/platforms/godot/user-feedback/
The free plan only allows one user. The Team plan is 26ドル/month. They have an open source program we could apply to. It is possible to self-host the server but I consider the effort involved in doing that to be more than 26ドル per month.
The addon is, deep breath, 1.1 gigabytes. This is because they have support for many platforms and architectures:
55M addons/sentry/bin/android
228M addons/sentry/bin/ios
159M addons/sentry/bin/linux
135M addons/sentry/bin/macos
244M addons/sentry/bin/web
219M addons/sentry/bin/windows
Obviously we could delete unwanted platforms and e.g. only have the appropriate release binary for wasm, the one platform we really care about at present (or if we are feeling really fancy also include the Linux build):
❯ ls -lh addons/sentry/bin/web/libsentry.web.*
-rw-r--r--. 1 wjt wjt 60M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.debug.wasm32.debug
-rw-r--r--. 1 wjt wjt 60M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.debug.wasm32.nothreads.debug
-rw-r--r--. 1 wjt wjt 2.5M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.debug.wasm32.nothreads.wasm
-rw-r--r--. 1 wjt wjt 2.5M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.debug.wasm32.wasm
-rw-r--r--. 1 wjt wjt 58M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.release.wasm32.debug
-rw-r--r--. 1 wjt wjt 58M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.release.wasm32.nothreads.debug
-rw-r--r--. 1 wjt wjt 2.4M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.release.wasm32.nothreads.wasm
-rw-r--r--. 1 wjt wjt 2.4M Mar 23 16:29 addons/sentry/bin/web/libsentry.web.release.wasm32.wasm
Still, not ideal, and it would remain to be seen what happens if the binary for the current platform is missing.
Beta Was this translation helpful? Give feedback.
All reactions
-
Whatever tool we do (or don't) use, there is also a privacy / GDPR / etc. angle.
I am on record as believing that, contrary to popular opinion, anonymous telemetry in open-source software is good, actually, and should be enabled by default. But one does have to justify doing that (i.e. in GDPR terms identify whether personal information is being collected, and if so, on what basis it is being collected), and notify users accordingly (seeking explicit permission in the case of some of those bases). This is certainly more complicated than just not collecting any information!
We also have the interesting situation that we probably don't want to enable telemetry from forks. Or do we?
Beta Was this translation helpful? Give feedback.
All reactions
-
This is great research, @wjt . I also think that anonymous telemetry is good for open source projects, after appliance to law terms and user acceptance. Is a bit sad that the Sentry addon is so heavy even for the web platform. If you ask me, the most important data I'd grab are related to playtest / player progress. How far did they went? When did they got stuck or abandoned? How much time did they dedicate to each level? Maybe this will become more relevant as we approach a more complete game from start to finish.
Beta Was this translation helpful? Give feedback.
All reactions
-
- Can we add an in-game bug report feature?
For an initial impl. of this I added:
Beta Was this translation helpful? Give feedback.