У меня есть основы TCP-сокетов, UDP-коммуникаций и т. Д., Но я не могу найти много о том, как применить их в игровой среде в реальном времени.
У меня есть клон Pong с 4 игроками, и мне нужно синхронизировать позиции весла между тремя клиентами и сервером (сервер - четвертый игрок). В настоящее время я использую UDP для отправки обновлений в реальном времени (движения весла) и TCP для настройки игрового лобби и т. Д.
Это ПЛОХО, чтобы спамить огромные объемы UDP-трафика? Должен ли я взглянуть на что-то вроде DCCP для его функций заторов? Или это на самом деле не проблема с таким небольшим проектом?
Когда следует синхронизировать сообщения между клиентом / сервером? В настоящее время сервер рассылает UDP-пакеты с текущим игровым состоянием так быстро, как только может, а клиенты рассылают свои спам-позиции обратно на сервер так быстро, как только могут. Это лучший способ сделать это? Есть ли какая-то задержка, которую я должен добавить, чтобы сообщения отправлялись один раз каждые X миллисекунд, или я должен отправлять сообщения только по мере возникновения событий? (например, скорость лопасти изменилась из-за ввода пользователя)
Было бы лучше, чтобы клиенты сообщали друг другу о своих позициях весла друг с другом?
Я задаю эти вопросы в контексте понга, но меня также интересует, как эти проблемы будут преодолены в других играх или обобщенных решениях.