Skip to content

About

Local-first gaming network diagnostics and route-regression toolkit for latency, loss, DNS, TCP reachability, and path stability.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

GameRouteProbe

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.

Why this project exists

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 control target 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

Community

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.

Install

python -m pip install .

Run

grp run my-profile.json

With route capture:

grp run my-profile.json --trace

Save 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.csv

Compare before / after

grp run my-profile.json --trace --db gaming.db --name after-change
grp compare --db gaming.db --baseline 1 --candidate 2

Comparison 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

Offline reproducible analysis

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 2

This is useful for bug reports, CI, and sharing evidence without rerunning live network tests.

Metrics

P50 / P95 / P99

Average latency hides spikes. Percentiles show what a larger fraction of connection attempts experienced.

RTT variation

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.

Failure percentage

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 timing

DNS lookup time is recorded separately so name-resolution problems do not get mixed into the latency discussion.

Route fingerprint

Optional traceroute/tracert hops are normalized into a short path fingerprint. Comparing two runs can reveal route churn.

Important traceroute interpretation rule

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.

Scoring

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
  }
}

Safety and load model

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.

Cross-platform behavior

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.

Output formats

  • Console
  • JSON
  • Markdown
  • standalone HTML
  • CSV
  • SQLite run history

Research basis

See SOURCES.md for standards and open-source tools reviewed while designing the project.

Roadmap

  • 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

License

MIT.

About

Local-first gaming network diagnostics and route-regression toolkit for latency, loss, DNS, TCP reachability, and path stability.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors