flame-engine / flame-engine/flame
Consider detaching game from DevToolsService when not needed
- Dominant language
- Dart
- Stars
- 10.8k
- Forks
- 1k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 21
Description
### What could be improved
Not a big deal, but currently, when running a game in debug mode, any `FlameGame` that is ever started will forever be retained in memory unless replaced with a different `FlameGame`.
From `FlameGame`'s constructor:
```dart
if (kDebugMode) {
DevToolsService.initWithGame(this);
}
```
There is no `DevToolsService.detachGame()` or anything similar.

### Why should this be improved
This can be confusing when one's looking at memory (albeit I agree that one should be normally doing that in profile mode) and sees a game that's supposed to be gone a long time ago, and won't go away even after manual GC.
This almost sent me on a wild goose chase for a giant game-sized memory leak.
### Risks
- Some people might want to inspect their game _after_ it's been disposed?
- Could introduce a DevTools connector bug where game's disposed too soon, for example.
### More information
I'm not sure myself if this is something worth addressing. Just putting this here before I forget.
### Other
- [X] Are you interested in working on a PR for this?
Contributor guide
Assessment
This issue has not been assessed yet.