Искать на сайте Unity

Визуализируй это! Bolt for Visual Scripting: за кулисами

23 марта 2018 г. через Игры | 10 мин. читать
Охваченные темы
Поделиться

Is this article helpful for you?

Thank you for your feedback!

Зачем опытным разработчикам задумываться о визуальном скриптинге? Ведь это для тех, кто терпеть не может программный код, верно? Недавно мы встретились с разработчиком Bolt и Chronos и послушали его рассказ о том, как он начинал свой путь, о его идеях визуализации кода, о UX и самом Asset Store.

Bolt и Chronos, популярные пакеты из Asset Store, создал Ласло Бонин, 24-летний разработчик игр и инструментов. Он работает в дружной и светлой обстановке GamePlay Space в центре Монреаля.

Ласло стремится внести свою лепту в сообщество Unity: «В определенный момент, когда в процессе разработки игры занимаешься вспомогательным инструментом, появляется желание им поделиться. Мне хочется, чтобы другие тоже могли пользоваться моими работами, и кажется, у других разработчиков инструментариев — такой же подход. Им не хочется, чтобы их товарищам приходилось изобретать велосипед, ведь для той же цели и создан Unity: зачем разрабатывать собственный игровой движок, когда все уже сделано?» Разумеется, если инструмент становится популярным, это может помочь игре, что дала ему путевку в жизнь.

Задолго до создания ассетов Ласло был разработчиком-любителем: «Мне было тогда десять, пришел кузен, установил Visual Basic и ушел, ничего не объяснив». Хоть Ласло и умел писать HTML-код, классическое программирование оказалось для него в новинку. Через пару лет он с головой погрузился в создание игр, которые так и не увидели свет. Он шутя описывает их как «безумно амбициозные проекты, в которые я бы никому не посоветовал даже пробовать играть!»

Когда ему исполнилось 19 лет, он открыл для себя Unity и всерьез занялся разработкой игр. Он выделяет такие ассеты, как Full Inspector, который «был даром небес — он увеличил функционал инспектора и дал мне больше гибкости. Это первый ассет, который я загружал в каждый проект». С недавних пор Ласло часто пользуется Odin – Inspector and Serializer: «Это один из самых удобных, полезных и замечательных инструментов в Asset Store».

Разработчик Bolt Ласло Бонин в GamePlay Space в Монреале.

Bolt: из горнила игры

Будучи еще любителем, Ласло зарабатывал себе на учебу дизайном веб-сайтов и помогал другим людям разрабатывать свои игры, что привело его к мысли о создании первого ассета — Chronos. «Я работал над игрой в стиле tower defense, и мне хотелось замедлить врагов, держать их на расстоянии, чтобы получить над ними преимущество. Тогда я понял, что мне самому необходимо разработать такой инструмент и сделать его доступным для других». Он считает, что делиться составляющими разрабатываемой игры, чтобы помочь другим — это «сама суть Asset Store».

Как и Chronos, Bolt родился, когда Бонин работал над другим проектом. «Я был в маленькой команде, которая занималась нарративным проектом Ephemera, действие которого происходит в Монреале. Мы искали визуальные машины состояний, чтобы помочь художникам и аниматорам в работе над сценами и игровым процессом, а я занимался ядром системы и программированием. Нам были необходимы решения, и, хоть в Asset Store и нашлись неплохие варианты, моей натуре перфекциониста требовалось именно то, чего хотел я».

Пока команда Ephemera искала спонсоров, Бонин, закатав рукава, девять месяцев в одиночку трудился над Bolt. «Когда я начал работу над некоторыми функциями, мне хотелось довести их до идеала, поэтому работы было хоть отбавляй! Но в итоге все получилось именно так, как я хотел, и это того стоило».

Благодаря опыту в разработке игр и дизайне он смог самостоятельно проделать всю работу.

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

Потоковый граф в Bolt.

Заложив основу, он попросил оценить дизайн.

«После примерно шести месяцев работы я собрал несколько опытных разработчиков в Монреале и спросил: “Тут все интуитивно понятно? Вы понимаете, что произошло вот здесь, когда я соединил эти штуки? Вам понятно, что это за график?”».

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

Почему он думает, что Bolt может быть полезен программистам

Бонин привык к неприятию идеи визуального скриптинга. Впервые анонсировав Bolt (летом 2017 г.), он получил уйму комментариев вроде: «Не пойму, зачем программисту использовать визуальный инструмент для скриптов?». Так зачем Бонин, опытный программист, проработал без зарплаты девять месяцев ради того, что ему особенно не нужно?

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

«Виктор говорит такие вещи, как: “Мы придумываем новое для конечного пользователя, но не для разработчиков. Мы не уделяем должного времени улучшению их работы”. Он спрашивает: “Почему мы все еще слепо набираем код в текстовых редакторах и не понимаем, что происходит? Как я должен понимать, что это значение влияет на результат где-то еще, и как я это визуализирую?”».

Бесплатный Unity Space Shooter после адаптации в Bolt.

Потоковые графы vs графов состояний

Хоть потоковые графы и являются одной из функций Bolt, Бонин честно оценивает их полезность для опытных разработчиков.

«Если вы программист, вам они, скорее всего, не понадобятся, ведь Bolt позволяет переводить код один к одному. Тем не менее, графы состояний могут пригодиться даже если вы знаете, как писать код. Они позволяют структурировать логику, которую бывает сложно визуализировать средствами простого кода».

«К примеру, можно посмотреть на сценарий игрового процесса и подумать: “Этот персонаж сейчас находится в базовом состоянии, и пока он в нем находится, я вызову одни функции. А когда приблизится противник, персонаж перейдет в состояние преследования, и в этом состоянии я вызову уже другие функции...” Подобное бывает сложно представить, смотря на код, и именно в таких случаях высокоуровневая визуализация может помочь».

Граф состояний, отображающий логику ИИ NPC: базовое состояние, патруль, преследование, атака и т. д.

Другая особенность, которая, по его мнению, нравится разработчикам, — это то, что вся кодовая база Unity доступна в Bolt. Между Unity и Bolt отсутствует слой интеграции, что также облегчает обслуживание. «У вас есть прямой доступ к классам персонажей, предметов и т. д. Вы можете вызывать их функции в Bolt и устанавливать значения. Кроме того, когда Unity выпускает обновления с новыми компонентами, ни мне, ни пользователям не нужно ничего делать — Bolt автоматически подгружает все данные. Он напрямую анализирует и читает всю базу кода и предлагает варианты».

Разные способности в командных условиях

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

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

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

«Я дружу с несколькими дизайнерами и художниками, которые, увидев Bolt, сказали, что понятия не имеют, с чего начать. Я ответил, что они могут просто добавить Bolt к одному из игровых объектов и просто нажать Play. И пока он находится в работе, можно добавлять узлы и смотреть, что они делают. Это важное преимущество Bolt — возможность видеть и редактировать все в реальном времени. Вы можете добавлять, удалять, менять все, что захотите. Это что-то вроде песочницы, в которой легко понять, как работает движок, освоить доступные инструменты и разжечь свой творческий потенциал».

2D-платформер из руководства к Bolt — хорошая песочница для визуального скриптинга.

Один день из жизни издателя Asset Store

Итак, каков же обычный день Ласло, чьим продуктом пользуются тысячи пользователей, более 500 из которых являются членами сообщества Bolt в Discord?

«Я начинаю день с просмотра тикетов, запросов на образовательные лицензии и т. д. Затем я проверяю отзывы сообщества и их предложения по улучшению Bolt. В некоторых их предложениях есть много толкового, ведь когда ты увлечен своим проектом, легко потерять перспективу, а сообщество помогает мне видеть картину целиком. Затем я принимаюсь за исправление ошибок, а в свободное время разрабатываю новые функции».

Одиночная работа над проектом требует умения управлять ожиданиями пользователей. «Недавно я перестал писать “мы”, обращаясь от имени Ludiq, и теперь пишу “я”, чтобы люди понимали, почему некоторые вещи не делаются так быстро, как бы им хотелось. Думаю, многие это и так понимают, потому что мой список целей публично доступен. Хоть много кто мечтает о новых функциях, всегда стоит быть аккуратным в своих обещаниях».

Штаб-квартира Ludiq в Монреале.

Совет для тех, кто делает собственные инструменты

И наконец, вот что Ласло может сказать тем, кто, подобно ему, внезапно осознал, что может превратить часть своей интеллектуальной собственности в ассет, помочь другим, а в перспективе принесет деньги.

«С точки зрения дизайна советую создать проект вашего инструмента, подумать над его взаимодействием с пользователем, изучить, как работает редактор Unity и по каким принципам строится его дизайн. Ключ к хорошему ассету — знание платформы, и мне кажется, что многие этим пренебрегают. С технической же стороны, если вы только начинаете, рекомендую это руководство по написанию скриптов для инструментов, процессов и задач в редакторе. Вы также можете изучить API графического интерфейса редактора и его тонкости (подробнее — в этой статье)».

Бесплатно для новых подписчиков Unity Plus до 5 апреля

В течение ограниченного времени при покупке Unity Plus вы получите Bolt бесплатно в комплекте с подпиской. В нашу кампанию тройного бонуса с Unity Plus также входит год бесплатного доступа к курсам Unity Game Dev Courses и 20%-ная скидка на избранные товары Asset Store.

Получить Unity Plus

Больше о визуальном скриптинге

Как начать использовать Bolt: смотрите запись трансляции Итана Брюнса из Unity:

Этот контент поддерживается сторонним провайдером и не позволяет просматривать видео без разрешения на сбор файлов Targeting Cookies. Включите в настройках cookie-файлов пункт Targeting Cookies, если хотите смотреть видеозаписи от этих провайдеров.

А на нашей странице, посвященной визуальному скриптингу, вы можете найти похожие комплекты, доступные в Asset Store.

23 марта 2018 г. через Игры | 10 мин. читать

Is this article helpful for you?

Thank you for your feedback!

Охваченные темы
Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.