14

Делаю игру на Unity3d. Эпизод 7: Дерево поведения

Здравствуйте, дорогие Пикабушники и Пикабушницы!

Сегодня мы посмотрим, как выглядит дерево поведения!

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Ведь посмотрим, да?

Использование дерева поведения требует прикрепления к игровому объекту специального компонента - BehaviourTreeComponent.

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Ничего лишнего

В компоненте указывается только конфиг с настройками дерева. Конфиг у нас в виде ScriptableObject и настройки всех нод дерева тоже выполнены в виде ScriptableObject, но уже вложенных.

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Двойным кликом по конфигу открываем его редактор. В левой части располагается инспектор, в котором будут отображаться параметры узлов. А в правой части поле для визуального редактирования дерева через graph api.

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Есть несколько типов нод - корневая, составная (параллельная, выборочная, последовательная), условная и действие (состояние). Все выделено особым цветом для удобства. При клике на ноду видим ее параметры.

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Красота!

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

Делаю игру на Unity3d. Эпизод 7: Дерево поведения Gamedev, Разработка, Инди игра, Unity, Инди, Unity3D, Indiedev, Компьютерные игры, Программирование, IT, IT юмор, Паттерны, YouTube, Видео, Длиннопост

Зеленым выделены активные узлы

Система получилось достаточно гибкая и легкая. 500 юнитов с деревьями поведения кушают 2-3 мс процессорного времени. У меня в игре не будет замесов между армиями, состоящими из сотен юнитов, плюс будут дальнейшие оптимизации при масштабировании, так что определенный запас производительности я себе обеспечил.

Подробности, как всегда, в полном видео на моем канале

А потом приглашаю в комментарии - задавайте вопросы по видео и просто по юнити!

Приятного просмотра!

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

ЗАПРЕЩЕНО:

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

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

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


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

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

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

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

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