Actualmente estoy trabajando en un juego multijugador en línea C# en tiempo real. El objetivo es tener una conexión cliente/servidor utilizando el protocolo UDP. Hasta ahora he usado UDP para los movimientos de los jugadores y TCP para los eventos (un jugador que dispara, un jugador que pierde la vida) porque necesito estar seguro de que esos datos llegarán a todos los jugadores conectados al servidor. Sé que UDP se dice 'no confiable' y algunos paquetes pueden perderse. Pero he leído en todas partes que nunca mezcle TCP y UDP porque puede afectar la conexión.Conceptos básicos de juegos multijugador en línea
La pregunta principal es ¿cómo debo organizar mi red?
UDP no tiene conexión, ¿cómo debo guardar quién es quién? ¿Debo guardar las direcciones IP de los clientes en una lista?
¿Debo usar TCP para eventos importantes o usar UDP? Si necesito usar UDP, ¿cómo puedo asegurarme de que no se perderán los datos?
Al usar tanto TCP como UDP, debo guardar para cada jugador su IP en una lista (para UDP) y el TcpClient que está conectado en otra lista (para el UDP). ¿Cómo podría cambiar eso para ser más efectivo?
Esta pregunta puede ser mejor en nuestro Game Development Stack Exchange: http://gamedev.stackexchange.com/ –
Votado para cerrar, pero migrar a Game Dev. – user7116
[link] (http://gamedev.stackexchange.com/questions/12716/online-multiplayer-game-basics) post migrated – Lowip