В настоящее время я работаю над многопользовательской онлайн-игрой в режиме реального времени. Цель состоит в том, чтобы иметь соединение клиент / сервер с использованием протокола UDP. До сих пор я использовал UDP для движений игроков и TCP для событий (стрельба игрока, проигрыш игрока), потому что я должен быть уверен, что такие данные будут поступать всем игрокам, подключенным к серверу. Я знаю, что UDP называется «ненадежным», и некоторые пакеты могут быть потеряны. Но я читал везде, чтобы никогда не смешивать TCP и UDP, потому что это может повлиять на соединение.
Главный вопрос: как мне организовать свою сеть?
UDP не имеет соединения, как мне сохранить кто есть кто? Должен ли я сохранить IP-адреса клиентов в списке?
Должен ли я использовать TCP для важных событий или использовать UDP? Если мне нужно использовать UDP, как я могу убедиться, что данные не будут потеряны?
Используя TCP и UDP, мне нужно сохранить для каждого игрока их IP в списке (для UDP) и TcpClient, который подключен в другом списке (для UDP). Как я могу изменить это, чтобы быть более эффективным?