У мене є основи TCP-розеток, UDP-комунікації тощо, але я не можу знайти багато того, як застосувати їх до ігрового середовища в реальному часі.
У мене є клон Pong з чотирма гравцями, і мені потрібно синхронізувати позиції весла між трьома клієнтами та сервером (сервер - четвертий гравець). В даний час я використовую UDP для надсилання оновлень в режимі реального часу (руху лопаток), а також TCP для налаштування ігрового лобі тощо.
Це НАЙБІТЕ, що потрібно розсипати величезну кількість трафіку UDP? Чи варто розглянути щось на кшталт DCCP за його перевантаженими функціями? Або це насправді не проблема з таким масштабним проектом?
Коли слід надсилати повідомлення синхронізації між клієнтом / сервером? В даний час сервер спамує UDP-пакети з поточним ігровим станом так швидко, як це вдається керувати, а клієнти спамують свою позицію весла на сервер так швидко, як тільки можуть. Це найкращий спосіб зробити це? Чи є якась затримка, яку я повинен додати, щоб повідомлення надсилалися раз на X мілісекунди, або я повинен надсилати повідомлення лише у разі подій? (наприклад, швидкість руху лопатки змінилася через введення користувача)
Чи було б краще змусити клієнтів повідомляти свої позиції весла між собою одноранговими?
Я задаю ці питання в контексті Pong, але мене також цікавить, як ці проблеми будуть подолані в інших іграх чи узагальнених рішеннях.