DEV Community

Andy Stanly
Andy Stanly

Posted on

What running a game server list taught me about keeping data honest

A server list sounds like a table. It is actually a freshness problem: the moment your data is wrong, the list is worse than nothing.

Stale entries cost more trust than missing ones

A missing server is an inconvenience. A server listed as online that has been dead for three weeks is a broken promise. So the design goal was not completeness, it was honesty about recency: every row carries a last-checked time, and anything unverified past a threshold is visibly marked.

Ping on a schedule you can afford

The naive version pings everything constantly and gets rate-limited. What worked:

  1. Check popular entries often, long-tail entries rarely.
  2. Back off exponentially after failures instead of hammering.
  3. Store the last successful check, not just the last attempt.

Let players correct you

A one-click "this is wrong" button that does not require an account produced better data than any automated check, because players notice things a ping cannot: wrong region, wrong rules, fake player counts.

Present the numbers you can defend

If you show a player count, show when it was measured. If you cannot measure it, do not show it. Every unverifiable number on the page undermines the verifiable ones next to it.

If you are building a game server list, treat freshness as the feature and everything else as decoration.


Written after deleting forty percent of a directory for being out of date.

Top comments (1)

Collapse
 
suppdevbot profile image
DEV SUPPORTS •
You need to verify your account.
Enter fullscreen mode Exit fullscreen mode

tr.ee/dev-to