Há várias coisas que você pode fazer.
Você pode centralizar todos os objetos de física no servidor e sincronizar as coordenadas com os objetos dos jogadores em todos os clientes. É o mais fácil e funciona sem muitas falhas, no entanto, usa muitos recursos e requer muita largura de banda. Você pode otimizar o uso da largura de banda enviando apenas valores ao player de outros players que estejam dentro de um determinado raio.
Você pode fazer o que Neenster mencionou e fazer com que o servidor e os clientes simulem a física; de vez em quando o servidor corrige os clientes. Isso significa que todos os clientes calculam sua própria física para cada jogador, e você sincroniza os eventos de pressionamento de tecla no servidor, fornecendo a trajetória de cada jogador em cada cliente. A cada 5 segundos, digamos, o servidor transmite sua simulação de física e todos os clientes aceitam a alteração. Isso pode criar pequenos desvios que são imperceptíveis na maioria das vezes, mas durante o atraso na rede e a perda de pacotes (inevitável com UDP de alto tráfego), você notará que seu player e / ou outros players andam pela tela e mudam de posição rapidamente e com agilidade. palavra?).
Você pode fazer com que cada cliente calcule sua própria física e sincronize suas coordenadas. Isso dificulta a simulação da física em objetos compartilhados entre clientes. É um conceito bastante complexo a ser implementado se você deseja fazer algo sofisticado, porque determinado objeto não pertence necessariamente a nenhum cliente.
O primeiro é provavelmente o mais fácil e deve permitir que você tenha cerca de 4-5 jogadores com pouco atraso. Exigiria que cada partida tivesse seu próprio servidor. Se você estiver fazendo partidas pela LAN, esse é o caminho a percorrer.
O segundo é provavelmente o mais prático, porém pode ser difícil de implementar. Também é bastante útil executar simulações de física no servidor. Se você possui servidores centralizados, provavelmente precisará carregar o saldo de várias máquinas, talvez permita 10 correspondências por servidor, carregue novas correspondências no servidor com menos correspondências.
A terceira é definitivamente a menos estressante no servidor e provavelmente é a melhor solução se você estiver executando um esquema de rede ponto a ponto. Como mencionei, pode ser difícil sincronizar objetos que não sejam o seu player, porque esses objetos também podem ser alterados por outros clientes.
Não sei dizer qual usar, porque não sei como o seu jogo funciona. Tudo o que posso fazer é fornecer os fatos. Se você tiver mais perguntas, não hesite em comentar.