Para jogos com LAN play, o padrão é que os clientes enviem pacotes de broadcast para descobrir servidores. (O cliente envia uma transmissão, o servidor envia uma resposta direta ao cliente)
Em geral, o cliente envia algo entre três e cinco mensagens de difusão, cada uma com um segundo de diferença, e então decide que não deve haver servidor se não receber resposta nesse período. O envio de vários pacotes torna a descoberta de serviços um pouco mais tolerante à perda de pacotes (embora isso seja bastante incomum nas LANs), e o tempo entre elas impede que eles interrompam demais o tráfego de rede.
Ninguém (que eu saiba) faz sua opção nº 2, porque isso prejudicará o desempenho da LAN (ou levará um bom tempo, se você escalonar as tentativas de conexão).
Mas, para lidar com casos em que a transmissão é filtrada pela LAN local (o que é bastante incomum, mas não inédito), a maioria dos jogos permite que os jogadores insiram diretamente um endereço IP ao qual se conectar. Isso permite que jogadores nesses tipos de situações se conectem a um servidor conhecido, mesmo que eles não possam transmitir para encontrá-lo automaticamente.
Para jogos pela Internet, os clientes enviarão uma solicitação direta a um meta servidor estático , que responde com os endereços das instâncias atuais conhecidas do servidor. Os servidores, da mesma forma, entram em contato com esse meta servidor para informá-los de sua própria localização, para que os clientes possam ser direcionados a eles. Devido às complexidades do NAT, essa abordagem geralmente não funciona para servidores hospedados dentro de uma LAN. É por isso que esse tipo de abordagem geralmente não é usado para jogos da LAN.
Nota lateral adicional: é prática comum para jogos na Internet entrar em contato com um servidor de ponto primeiro. O servidor de pontos informa ao jogo em que endereço ele pode encontrar o meta servidor, que informa onde os servidores podem ser encontrados. Servidores pontuais são frequentemente (embora certamente nem sempre) implementados como um servidor Web simples e são a única parte deste sistema com um endereço que é codificado no jogo. Isso permite que os desenvolvedores de jogos movam seu meta servidor de uma máquina para outra, conforme necessário, simplesmente atualizando o endereço retornado pelo servidor de ponto. Também pode ser usado para implementar uma forma simples de balanceamento de carga ou troca de região, solicitando que o servidor de ponto envie usuários para diferentes meta servidores com base na carga do servidor ou na proximidade geográfica.