Как реализовываются игровые боты?
Подскажите на пальцах, а как реализовываются боты в сессионных играх?
Скажем, есть N игроков, которые сражаются с какими-то неписями => боты должны крутится на серверной стороне.
Я не понимаю вот чего: Как со стороны сервера управлять ботами, если карта находится на клиенте => на клиенте логика проще пишется, так как можно много проверок различных делать.
Какой-то ботовый клиент пишется, который запускается сервером или как-то иначе?
Ответы (1 шт):
Обычно боты - это маленькие игровые клиенты. Ведь боту не нужно рисовать карту, не нужно обрабатывать пользовательский ввод. Единственное, что ему нужно - это сетевая часть и чуточку логики. Если пишется бот "от производителя", то часто используется готовая сетевая часть и только вызываются нужные команды (пойти туда, стрелять сюда, поднять это". В некоторых случаях, боты могут иметь свое API и подключаться как отдельные клиенты.
Плюсы - можно тестировать на сервере какую то функциональность, можно создать "движуху", если ее нет или помочь пользователям отрабатывать какой то момент.
Минусы - дополнительная нагрузка на обработку сети.
В принципе, телеграм бот ничем не отличается от игрового бота.
Второй способ - бот часть сервера. Такое тоже иногда делается, но это в основном для внутриигровых персонажей. В таком случае можно создать больше ботов (обычно).
Скажем, есть N игроков, которые сражаются с какими-то неписями => боты должны крутится на серверной стороне.
а какая разница, где эти боты для пользователя? никакой. Даже если часть ботов будет прям на его машине крутиться. А вот с точки зрения безопасности могут быть и особенности.
Я не понимаю вот чего: Как со стороны сервера управлять ботами, если карта находится на клиенте => на клиенте логика проще пишется, так как можно много проверок различных делать.
Если ботами нужно управлять, то никто не мешает в логику общения с сервером добавить команды для ботов. Или отдельное подключение для приема команд. Хотя боты могут быть и независимыми (и сильными) или действовать по заранее заданому сценарию (иди, увидел - бей).
А карта... в многих случаях она боту как бы и не нужна. Плюс сервер тоже может иметь свою версию карты.