Actualmente estoy trabajando en un juego multijugador en línea ac # 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 eventos (un jugador disparando, un jugador que pierde la vida) porque necesito asegurarme de que tales datos lleguen a todos los jugadores conectados al servidor. Sé que UDP se dice 'poco confiable' y algunos paquetes pueden perderse. Pero he leído en todas partes para nunca mezclar TCP y UDP porque puede afectar la conexión.
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 datos?
Al usar tanto TCP como UDP, necesito guardar para cada jugador su IP en una lista (para UDP) y el TcpClient que está conectado en otra lista (para UDP). ¿Cómo podría cambiar eso para que sea más efectivo?