Eu já fiz uma pequena codificação de rede de jogos antes, mas principalmente com o TCP para jogos sem necessidades em tempo real. Estou trabalhando em um jogo Java 2D com multiplayer em rede. Para aprender, eu quero fazer isso sozinho, sem uma API de rede existente.
Como represento com eficiência o estado do jogo enviado aos clientes a partir de um servidor? Existe a maneira mais óbvia, mas provavelmente menos eficiente, que seria criar algum tipo de objeto de contexto do estado do jogo com a localização de cada jogador, estado de animação etc., e enviá-lo a cada jogador a cada atualização . Isso não parece terrivelmente difícil de implementar, mas provavelmente seria muito grande para alcançar algo próximo à interação em tempo real (é claro que minha experiência com isso é limitada, por isso posso estar incorreta).
Existe uma maneira sólida que vocês já usaram antes para transmitir apenas mudanças de estado, e existe uma disparidade suficientemente grande no desempenho para que valha a pena o trabalho extra?