You probably do want a server to announce games. The alternative would be to just type in the remote system's address.
Note that the server doesn't necessarily need to be running a copy of the game in question. There could be a more generic approach, such as somehow using a DNS server (which handles DNS queries, and isn't necessarily designed specifically for an individual game).
If you didn't like relying on DNS since the DNS root is centralized, in theory, a more de-centralized approach could be done, like relying on public IRC channels (communicating with an IRC server), or Usenet Newsgroups. I am definitely describing theory now, and not practice. In particular, note that Usenet servers have lost popularity due to being overrun by spammers who didn't care if they were harming the resources they were abusing.
There may be some other approaches possible. I'm not quite so sure about these, but am throwing them out as possible idea fodder (that maybe someone else can expand into another answer). Perhaps check into: BitTorrent, Freenet, or Bitcoin/Blockchain, or BGP. Such protocols have been known to have at least some level of de-centralization, and may be suitable or somewhat easily adapted to a model that relies less on having a server that is up.