Case study
outrun: a Sonic Runners custom server
Reimplements the game server for the Sonic Runners mobile game as a Go service, so Android and iOS clients redirected to it can log in, play Timed and Story modes and use the shop, roulettes, character and Chao progression, events, notices and basic rankings. The README says it was reverse engineered from the Sonic Runners Revival server, on whose code it bases much of its own; it serves about 40 HTTP endpoints of the client's API, decrypts and encrypts AES-CBC request payloads and keeps player state in a bbolt database.
- Targets
- Game · Protocol
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Sources reviewed
- Evidence class
- C1 partial scope or analysis entry
- Stars
- 101
- Last commit
- 2023-12-31
- Language
- Go
- License (GitHub)
- GPL-3.0
GitHub data as of 2026-11-10
Evidence
Demo available · no screenshot
- Observed
- Demo documented; the documentation covers part of the feature set.
- Scope
- Partial
- Checked
- 2026-11-09
Requirements & limits
- Release v1.0.1 provides Windows, macOS and Linux server builds for amd64 and arm64. The README aims to cover every non-debug endpoint; no tests are listed.
- Builds with Go. go.mod declares Go 1.17, while the README build steps use Go 1.15.8 and warn that Go 1.16+ breaks some RPC programs. Configuration uses config.json and optional event, info and game files; the default client port is 9001.
- Play needs the user’s Sonic Runners client. The README targets the v2.0.3 Android APK, modified to connect to the server. The repository contains no client or game assets.
- The README credits contributors for the client-traffic AES key, traffic logs and story-mode data.
- Server code is GPL-3.0; the game, client, assets and trademarks retain their own rights.
Cite
BibTeX
@misc{outrun-sonic-runners-server-case,
title = {{outrun: a Sonic Runners custom server}},
howpublished = {\url{https://github.com/fluofoxxo/outrun}},
url = {https://github.com/fluofoxxo/outrun},
urldate = {2026-10-27},
note = {Awesome REA entry: \url{https://awesomerea.org/resources/outrun-sonic-runners-server-case/}}
}Plain text
outrun: a Sonic Runners custom server. https://github.com/fluofoxxo/outrun (accessed 2026-10-27). Awesome REA entry: https://awesomerea.org/resources/outrun-sonic-runners-server-case/
Useful? Star Awesome REA on GitHub2.4k
About this entry
The description was reviewed against primary sources.
Primary sources
- README.md GitHub · fluofoxxo/outrun · Revision 750d7b9
- main1.go GitHub · fluofoxxo/outrun · Revision 750d7b9
- go.mod GitHub · fluofoxxo/outrun · Revision 750d7b9
- muxhandlers GitHub · fluofoxxo/outrun · Revision 750d7b9
- config GitHub · fluofoxxo/outrun · Revision 750d7b9
- LICENSE GitHub · fluofoxxo/outrun · Revision 750d7b9
- https://github.com/fluofoxxo/outrun/releases/tag/v1.0.1
More in Games
- Overwatch: mapping highlight-file metadata · Case study
- PANGYA Mobile: reconstructing the shutdown game service · Case study
- Panzer Dragoon Saga: Saturn asset-format research and extraction tools · Case study
- Perlica RS: reconstructing the Perlica game server · Case study
- Phantom Blade Zero: documenting the PBZS v3 save format · Case study
- picowalker: recreating the Pokéwalker accessory · Case study