Итак, я сейчас работаю над многопользовательской игрой в стиле RTS.Подразделения не контролируются игроками (они атакуют-перемещаются в локацию автоматически).
Я решил не идти полным ходом, а вместо этого сделать гибрид на основе состояния / прогнозирования.Игра полностью моделируется на клиенте с пакетом состояний для каждого юнита, распределяемого только один раз в секунду (позиция, здоровье и т. Д.).Я читал, что в наши дни это довольно распространенный метод ведения дел, но у меня с ним серьезные проблемы.Одна очевидная проблема связана с синхронизацией здоровья.Ущерб наносится локально на каждом клиентском компьютере и исправляется с помощью пакета состояний.Это приводит к проблемам, подобным этому:
- Снаряд поражает юнит на клиентском компьютере, снижая его здоровье от 100 до 50.
- Клиент только тогда получает пакет состояния отСервер говорит, что у него 100 единиц здоровья, что приводит к его восстановлению.
Конечно, он получит еще один корректирующий пакет позже, когда он вернется к 50, но это вызывает действительно плохие визуальные всплески.Эта проблема становится еще хуже, если учесть влияние урона от способностей и тому подобное.
Полностью ли я неправильно понял, что требуется для создания игры, предсказываемой клиентом, или мне просто нужно обработать каждую переменную в каждом конкретном случае?основа?(IE вставляй глупые хаки, чтобы здоровье не выглядело плохо).