Splatoon 2's netcode and matchmaking has been criticized for many different reasons. Some of the common complaints are frequent disconnections, low tick rate, lag, and that the netcode uses a peer-to-peer architecture. In this blog post, I will attempt to explain how the netcode works and...
oatmealdome.me
NEX - é uma API para se comunicar com os servidores, ele lida com Matchmaking para as sessões P2P, NAT transversal (ajudando a lidar os usuários com o firewall ou roteador) e rankings
PIA - é uma biblioteca que a Nintendo desenvolveu para facilitar a criação dos recursos da rede dos jogos, é aqui que no P2P é atribuído um console "anfitrião" da sessão e os outros consoles são "clientes"
RELAY - é um sistema onde possui um servidor como intermediário entre o jogo e o console (servindo como host), em vez dos consoles fazerem isso elegendo um host qualquer, um servidor dedicado vai ter esse papel de escolher o melhor host na partida sem cair a conexão, outra coisa também é que ele retransmite o tráfego para evitar essa queda na mudança de host
NPNL - é a evolução da PIA, nessa api é utilizado o framework gRPC da Google Cloud que oferece as seguintes características:
- fornece recursos como autenticação,
- controle bidirecional de
fluxo,
- bloqueio ou não bloqueio de vinculações e cancelamento e intervalos.
Ele gera vinculações entre clientes e servidores entre plataformas para muitos idiomas. Os cenários de uso mais comuns incluem conectar serviços em uma arquitetura de estilo
de microsserviços ou conectar clientes de dispositivos móveis a serviços de backend.
Resumindo, o NPLN é uma forma mais organizada de utilizar um servidor dedicado (P2P) para ser o substituto do RELAY, mas, com tecnologias mais recentes e melhores para decidir com mais precisão qual o melhor tráfego e diminuir a latência entre os jogadores (isso no lado do servidor).