Jaws & Claws - особенности создания режима зверобол

Jaws & Claws - особенности создания режима зверобол Компьютерные игры, Разработка, Gamedev, Видеоигра, Инди, Инди игра, Steam, Видео, Без звука, Длиннопост

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

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

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

Если углубиться в небольшие подробности, интеллект реализован при помощи настроек более чем 50 основных параметров. Эти параметры могут различаться от игры или предпочтений разработчика.

Я приведу часть основных параметров, которые используются у нас в игре:

  • время опроса смены цели;

  • вероятность смены цели на ближайшего персонажа;

  • вероятность смены цели на атакующего персонажа;

  • вероятность использования ударов в стойке;

  • вероятность использования ударов в беге;

  • вероятность использования ударов в рывке;

  • вероятность использования ударов в воздухе;

  • вероятность использования оружия;

  • вероятность использования рывка;

  • вероятность использования бега;

  • вероятность использования блока чтобы обороняться.

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

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

Изменение настроек позволило нам добиться нужного результата. Персонажи начали совершать обдуманные действия и забивать мяч в ворота.

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

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

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

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

Чтобы исключить подобную беготню по игровому полю. Мы решили, что персонажи должны быть распределены внутри своей команды по типу игроков:

  • нападающий

  • защитник;

  • полузащитник.

Количество персонажей в игре может быть различным. Игрок может собрать команду от одного до одиннадцати персонажей. Поэтому классическое распределение ролей внутри команды нам не походит.

В итоге решено было использовать специальные спортивные точки. Для каждой команды были созданы по две. Одна спортивная точка в команде для нападающих, другая для защитников. Эти точки описывают ограничения персонажа на поле, тем самым объясняя ему его примерное место и модель поведения на спортивной площадке.

Jaws & Claws - особенности создания режима зверобол Компьютерные игры, Разработка, Gamedev, Видеоигра, Инди, Инди игра, Steam, Видео, Без звука, Длиннопост

уровень игры с размещением спортивных точек

Теперь, при наличии в уровне спортивных точек в начале игры происходит перераспределение персонажей по их ролям внутри команды.

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

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

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

Результат получился ожидаемый. Боты перестали бегать по площадке взад-вперед, пытаясь догнать катящийся по полю мяч. Модель поведения бота позволяла одним персонажам находиться большую часть времени возле ворот соперника, другим возле своих ворот. Количество результативных ударов увеличилось.

Однако проделанной нами работы даже в этом случае оказалось недостаточно. Увеличилось количество авто голов. Боты, которые должны защищать свои ворота или кольцо производили удары, которыми забивали мяч в свои ворота или кольцо.

Jaws & Claws - особенности создания режима зверобол Компьютерные игры, Разработка, Gamedev, Видеоигра, Инди, Инди игра, Steam, Видео, Без звука, Длиннопост

авто гол в исполнении бота.

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

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

Возможно, что-то еще мы будем улучшать в поведении ботов, но я думаю, что эти изменения будут незначительными.

В завершение приведу ссылку на страницу нашей игры в Steam. Желающие могут добавить нашу игру в список желаемого, нам будет приятно.

Лига Разработчиков Видеоигр

6.7K поста22.2K подписчиков

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"