Pour les jeux avec lecture LAN, la chose standard à faire est que les clients envoient des paquets de diffusion pour découvrir les serveurs. (Le client envoie une diffusion, le serveur envoie une réponse directe au client)
En général, le client enverra entre trois et cinq messages diffusés, chacun à environ une seconde d'intervalle, et décidera alors qu'il ne doit pas y avoir de serveur s'il n'a entendu aucune réponse dans ce délai. L'envoi de plusieurs paquets rend la découverte de services un peu plus tolérante à la perte de paquets (bien que cela soit assez rare sur les réseaux locaux), et le fait de laisser du temps entre eux les empêche de trop perturber le trafic réseau.
Personne (à ma connaissance) ne fait votre option # 2, car cela dégradera les performances du LAN (ou prendra un certain temps, si vous échelonnez les tentatives de connexion).
Mais pour faire face aux cas où la diffusion est filtrée par le LAN local (ce qui est assez inhabituel, mais pas inconnu), la plupart des jeux permettront aux joueurs d'entrer directement une adresse IP à laquelle se connecter. Cela permet aux joueurs dans ce genre de situations de se connecter à un serveur connu, même s'ils ne peuvent pas diffuser pour le trouver automatiquement.
Pour les jeux sur Internet, les clients enverront une demande directe à un méta-serveur statique , qui répond avec les adresses des instances de serveur actuelles connues. Les serveurs, de même, contactent ce méta-serveur pour les informer de leur propre emplacement afin que les clients puissent être dirigés vers eux. Cependant, en raison de la complexité du NAT, cette approche ne fonctionne généralement pas pour les serveurs hébergés dans un réseau local. C'est pourquoi ce type d'approche n'est généralement pas utilisé pour les jeux LAN.
Remarque supplémentaire: il est courant que les jeux Internet contactent d'abord un serveur de points . Le serveur de points indique au jeu à quelle adresse il peut trouver le méta-serveur, qui lui indiquera où les serveurs peuvent être trouvés. Les serveurs de points sont souvent (mais certainement pas toujours) implémentés comme un simple serveur Web, et sont le seul élément de ce système avec une adresse codée en dur dans le jeu. Cela permet aux développeurs de jeux de déplacer leur méta-serveur d'une machine à l'autre selon les besoins, simplement en mettant à jour l'adresse renvoyée par le serveur de points. Il peut également être utilisé pour implémenter une forme simple d'équilibrage de charge ou de changement de région en demandant au serveur de point d'envoyer des utilisateurs à différents méta-serveurs en fonction de la charge du serveur ou de la proximité géographique.