Как реализовываются игровые боты?

Подскажите на пальцах, а как реализовываются боты в сессионных играх?

Скажем, есть N игроков, которые сражаются с какими-то неписями => боты должны крутится на серверной стороне.

Я не понимаю вот чего: Как со стороны сервера управлять ботами, если карта находится на клиенте => на клиенте логика проще пишется, так как можно много проверок различных делать.

Какой-то ботовый клиент пишется, который запускается сервером или как-то иначе?


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

Автор решения: KoVadim

Обычно боты - это маленькие игровые клиенты. Ведь боту не нужно рисовать карту, не нужно обрабатывать пользовательский ввод. Единственное, что ему нужно - это сетевая часть и чуточку логики. Если пишется бот "от производителя", то часто используется готовая сетевая часть и только вызываются нужные команды (пойти туда, стрелять сюда, поднять это". В некоторых случаях, боты могут иметь свое API и подключаться как отдельные клиенты.

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

Минусы - дополнительная нагрузка на обработку сети.

В принципе, телеграм бот ничем не отличается от игрового бота.

Второй способ - бот часть сервера. Такое тоже иногда делается, но это в основном для внутриигровых персонажей. В таком случае можно создать больше ботов (обычно).

Скажем, есть N игроков, которые сражаются с какими-то неписями => боты должны крутится на серверной стороне.

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

Я не понимаю вот чего: Как со стороны сервера управлять ботами, если карта находится на клиенте => на клиенте логика проще пишется, так как можно много проверок различных делать.

Если ботами нужно управлять, то никто не мешает в логику общения с сервером добавить команды для ботов. Или отдельное подключение для приема команд. Хотя боты могут быть и независимыми (и сильными) или действовать по заранее заданому сценарию (иди, увидел - бей).

А карта... в многих случаях она боту как бы и не нужна. Плюс сервер тоже может иметь свою версию карты.

→ Ссылка