GameRouteProbe is a local-first gaming network diagnostics and route-regression toolkit for measuring latency, RTT variation, TCP reachability, DNS timing, and network-path stability.
Version: 1.0.0
It is designed around a practical gaming question:
Did the connection actually improve, or did only the average ping look better for a moment?
Instead of relying on a single latency number, GameRouteProbe records percentile latency, connection failures, RTT variation, DNS timing, and an optional route fingerprint, then stores runs so you can compare before vs after changes such as router configuration, ISP routing, VPN/GPN usage, Wi-Fi changes, or DNS changes.
Popular open-source network tools already do ping, traceroute, packet loss, TUI monitoring, and general diagnostics very well. GameRouteProbe focuses on the missing workflow around repeatable gaming baselines and route regression.
Key design choices:
- user-defined game endpoints instead of stale hard-coded server lists
- a separate
controltarget to distinguish broad connectivity degradation from destination-specific degradation - P50/P95/P99 instead of average-only reporting
- RTT variation rather than vague "stable ping" claims
- TCP-connect probes that work without raw-socket privileges
- optional system traceroute/tracert
- SHA-style route fingerprints
- SQLite run history
- baseline/candidate comparison
- offline fixture replay for reproducible bug reports and tests
- no telemetry
Related Persian gaming guides and services: Wow Online.
The link is intentionally placed here because this project is built for the same gaming/network troubleshooting audience, rather than as an unrelated promotional link.
python -m pip install .grp run my-profile.jsonWith route capture:
grp run my-profile.json --traceSave reports and history:
grp run my-profile.json \
--trace \
--db gaming.db \
--name before-change \
--json before.json \
--markdown before.md \
--html before.html \
--csv before.csvgrp run my-profile.json --trace --db gaming.db --name after-change
grp compare --db gaming.db --baseline 1 --candidate 2Comparison includes:
- overall score delta
- P95 latency delta
- TCP failure-rate delta
- P95 RTT-variation delta
- per-target score delta
- path similarity
- first route divergence
- added/removed hops
grp analyze examples/baseline.json --db fixture.db --name baseline
grp analyze examples/degraded.json --db fixture.db --name degraded
grp compare --db fixture.db --baseline 1 --candidate 2This is useful for bug reports, CI, and sharing evidence without rerunning live network tests.
Average latency hides spikes. Percentiles show what a larger fraction of connection attempts experienced.
GameRouteProbe computes absolute variation between consecutive successful TCP-connect RTT samples. It deliberately calls this RTT variation, not a standards-compliant one-way IPDV measurement.
RFC 3393 defines IP Packet Delay Variation based on differences in one-way delay. A client-only TCP connect tool cannot claim to measure that exact metric.
A failed TCP connection attempt is recorded as a failure. This is a reachability/stability signal, but it is not equivalent to UDP gameplay packet loss.
DNS lookup time is recorded separately so name-resolution problems do not get mixed into the latency discussion.
Optional traceroute/tracert hops are normalized into a short path fingerprint. Comparing two runs can reveal route churn.
Intermediate traceroute/MTR hops can appear to lose packets because routers rate-limit ICMP/control-plane responses while still forwarding user traffic normally.
GameRouteProbe therefore does not treat an unresponsive intermediate hop as proof of packet loss at that hop. Destination behavior matters more than a single intermediate response.
The score is transparent and profile-driven. It is not an "esports certification" and the defaults are not universal truths.
{
"thresholds": {
"p95_ms": 120,
"rtt_variation_p95_ms": 25,
"failure_pct": 2,
"dns_ms": 250
}
}GameRouteProbe is intentionally low-impact:
- bounded probe counts
- configurable intervals and timeouts
- ordinary TCP connections
- no packet flood
- no traffic saturation test
- no throughput stress test
- traceroute only when requested
Do not point repeated probes at systems you do not have a legitimate reason to test.
TCP and DNS probes use the Python standard library.
Optional path capture uses the first available platform tool:
- Windows:
tracert - Linux/macOS:
traceroute - fallback:
tracepath
No traceroute utility means the rest of the run still works; path data is simply absent.
- Console
- JSON
- Markdown
- standalone HTML
- CSV
- SQLite run history
See SOURCES.md for standards and open-source tools reviewed while designing the project.
- optional ICMP probe adapter
- UDP echo test-server pair for controlled lab measurements
- MTR JSON import
- WinMTR text import
- Prometheus exporter
- route-change timeline
- incident snapshots
- profile packs maintained by community contributors
- optional TUI
- GitHub Actions artifact comparison
- JUnit regression gates
MIT.