@redlable47

Серверная часть игры — как работает серверный ИИ?

Понимаю, что вопрос достаточно широкий, но может кто - то направит в нужную сторону или поделится опытом.

За пример игры берем допустим CoC.
Клиент - есть игровое поле, есть строения, есть юниты.
Игрок выпускает юнитов (совсем как в игре выше), юниты высаживаются на поле и бегут лупить строения.
У каждого юнита свои приоритеты, допустим толстые бьют первыми башни, тонкие бьют все подряд.
Понятно что ИИ должен руководить юнитами аж с сервера, так как игроки просто будут обманывать его.

Вопрос в реализации этого момента. Как происходит взаимодействие серверного ИИ и клиента, там же получается задержка будет между действиями?
Как происходит синхронизация игрового цикла с серверным ИИ, допустим я сделаю такую "симуляцию", но как происходит синхронизация банально по времени, юниты например могут прибежать раньше чем это произойдет на сервере?
Кроме того получается что я должен сделать приложение которое будет дублировать происходящее на клиенте, если игроков например 1000, на сервере должно быть запущено 1000 инстансов боев, не сильно ли это тяжело?

Прошу не бить костылями, в gamedev'е недавно, разработкой игр никогда не занимался. окунаюсь
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега Разработка игр
software engineer
Инстансы "боев" - не корректное понятие. Что значит 1000 боев, там должно быть 1000 инстансов юнитов, у каждого юнита свое состояние - текущая активность (бежит, бьет, умирает), параметры и так далее.

Ии может руководить юнитами откуда угодно.
Это может быть часть серверного цикла (как в большинстве простых игр типа Diablo или MUD)
Это может быть отдельный процесс (как в Lineage2)
Это может быть отдельный процесс, запущенный на другом сервере.

Собственно архитектура и сложность ИИ так и продумывается, чтобы успевать с игровым циклом выполнять необходимые действия, и если юнитов слишком много - игра может подтормаживать или умышленно замедляться (как Eve online)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы