Medium guide
Game activity can be a session, a snapshot or an achievement.
A launcher, a platform import and a local session recorder can all show “playtime.” They do not provide the same evidence, event boundaries or portability.
Five roles to keep separate
- Session capture
- Observes a start and stop boundary and records one play session.
- Playtime state
- Stores a current total, last-played time or status. It may not retain the sessions that produced the total.
- Platform ingestion
- Imports account data already held by a storefront or console platform.
- Achievement telemetry
- Records achievement events. It does not by itself describe every play session.
- Manual tracking
- Stores user-entered backlog, status or completion. It is a tracker, not automatic capture.
Projects and building blocks
| Project | Classification | Documented behavior | Boundary |
|---|---|---|---|
| GameActivity for Playnite | Session capture | Records session date and elapsed time per game, with optional hardware measurements and CSV export. | History remains centred on the Playnite extension unless another process exports or synchronizes it. |
| RomM | Session ingestion | Accepts start time, end time and duration for play sessions, checks duplicates and updates the user's latest-played state. | It is a self-hosted game library and player, not a general cross-service game-history protocol. |
| CHScrobbler | Music capture from games | Reads current-song output from Clone Hero, ScoreSpy or YARG and submits the song to Last.fm after a documented threshold. | It records the song played inside a rhythm game, not a general game session. |
| Playnite | Library and launcher state | Its game model includes running state, total playtime, play count and completion status. | Those fields do not prove a durable, portable occurrence log. |
| GameVault | Progress state | Stores minutes played, a progress state and last-played time for a user and game. | The documented progress entity is current state rather than a sequence of session events. |
Questions to ask before calling it a game scrobbler
- What creates the record: a local process observer, launcher, emulator, platform API or user action?
- Does the record preserve a session start and stop, or only a cumulative total?
- Can it separate active play from idle, suspended or background time?
- How does it handle offline play, duplicate delivery and clock differences?
- Can the user inspect, export, correct and delete the resulting history?
Minimum event context
- Game subject
- A namespaced game or release identifier, platform and edition when known. A display title is not sufficient identity.
- Event kind
- Session started, session ended, achievement, progress or explicit completion.
- Duration
- Active time and wall-clock time kept separate when the source can provide both.
- Source
- Local observation, launcher, emulator, platform import or manual entry.
- Occurrence identity
- A stable event or session key so a retry does not manufacture a second play.
- Privacy
- A private default and visible sharing controls. Game activity can expose routines, social patterns and device use.
Sources checked 31 August 2026: GameActivity README; RomM play-session handler; CHScrobbler README; Playnite game model; and GameVault progress entity.
A project entry describes documented behavior; it is not an endorsement. Correct a role or source through Scrobble.dev, or compare video-game projects in the catalogue.