Как управлять движением мобов в онлайн-игре?

У меня есть консольный сервер, и также есть подключаемые к серверу игроки-клиенты (unity игра).

Клиенты отправляют свои координаты на сервер (знаю что не безопасно). Сервер в свою очередь рассылает координаты игрока всем подключенным игрокам.

Но как быть с мобами?

Нужно, чтобы мобы двигались, обходя присутствующие в игре препятствия.

Но в связи с тем, что сервер не имеет данных об игровой локации, а является лишь посредником данных между игроками, как управлять движением мобов?

Как это реализовано в других онлайн-играх?

Возможно, мне необходимо всё же сделать сервер не консольным приложением, а полноценным подобием игры с полноценной игровой локацией? Но вряд-ли онлайн игры работают по такому принципу.

Нужно, чтобы все мобы у каждого клиента были на одинаковых координатах, то есть - синхронизированы. Поэтому, локально обрабатывать движение ботов на стороне каждого клиента по отдельности нельзя. Должен быть один управляющий центр.

Мне важна не техническая составляющая вопроса, а больше логическая.

Как это должно быть реализовано?


Ответы (1 шт):

Автор решения: Герман Борисов

Как правило сервер хранит у себя все данные, включая игровую локацию, положение игроков, мобов и игровых предметов.

Он при этом вполне может быть консольным, то есть не выводить никакую графическую информацию о игровом мире.

Сервер рассылает всю эту информацию игрокам. Информацию о перемещении мобов сервер рассчитывает сам, а о перемещении игроков получает от самих игроков, и рассылает всё это остальным игрокам.

→ Ссылка