Блог

Изучение Unity в GU, лучшие assets и паблики — мнение декана

Чему научат на факультете разработки игр — узнайте в интервью с деканом Geek University Ильей Афанасьевым.
11 минут1949

Декан факультета разработки игр Илья Афанасьев отвечает на вопросы о движке, его преподавании в GU и о себе.

— Илья, почему ты выбрал Unity, а не Unreal или еще что-то? Зачем начинать именно с этого движка?

— Начинал я как раз с Unreal Engine, но это было давно — тогда он был известен как UDK (Unreal Development Kit). Новичку работать с ним было очень сложно: на поверхности все просто, но, заглянув «под капот», просто теряешься. 

Среда работала недостаточно стабильно, особенно в руках людей, которые только начали ее изучать. Скрипты приходилось компилировать в сторонних программах. Даже сейчас Unreal известен как мощный, но очень громоздкий инструмент, который с лету не освоишь. Да, там есть Blueprint (раньше Kismet), но досконально понять, как это работает, сложно. Например, чтобы максимально эффективно использовать blueprints, нужно понимать их природу — а значит, неплохо программировать. Особенность движка Unreal в том, что он удобен, пока вы не особо заморачиваетесь, но становится бичом для тех, кто еще не понимает природу ООП и основ программирования.

Если у человека нет опыта разработки, Unity3D — входной билет в геймдев. С этим движком легко программировать и творить свои миры: не осилит его только ленивый. По графике и разнообразию инструментов Unreal впереди, но, я вас уверяю, в умелых руках Unity способен на потрясающие штуки, такие как Unity Adam или Book of the Dead. А без умения и на Unreal далеко не уедешь.

— Что происходит с движком сейчас и как он менялся в последние несколько лет? 

— Он активно перестраивается: многие технологии буквально пишутся заново. Unity Tech реализовали возможность создания шейдеров через графический интерфейс. Раньше для этого приходилось устанавливать сторонние платные дополнения. 

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

Также Unity Tech перестроили многопользовательскую систему на базе технологии ECS. Это позволит разработчикам оптимизировать сетевые приложения без «костылей».

Я могу долго продолжать, потому что изменений множество: команда Unity постоянно что-то придумывает и добавляет. Даже сейчас, пока мы беседуем, они наверняка готовят нечто грандиозное.

Еще три года назад ситуация была иной: Unity развивался сравнительно медленно и глобальными нововведениями баловал нас редко. Все изменилось, когда в компанию пришел новый исполнительный директор Джон Ричителло. Как только он освоился, сообщество почувствовало разницу — стало ясно, что Unity будет всерьез конкурировать с другими движками.

— Чему должен в первую очередь научиться будущий разработчик игр? И чем ты руководствовался, когда составлял учебный план факультета?

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

Поэтому мы учим программированию на C#, гейм-дизайну, работе с Unity и даже основам 3D-моделирования. Мы подробно рассказываем об этапах разработки игр, чтобы студенты представляли себе весь процесс и впоследствии могли лучше взаимодействовать с коллегами. Это целая наука. Одно дело написать код игры, и совсем другое — сделать ее интересной. Принципиально разные умения.

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

С этой проблемой сталкиваются и большие, и маленькие организации. Например, художник по 3D-моделям и программист мыслят разными категориями. Им сложно договориться, как упростить друг другу жизнь и оптимизировать графику в игре. Из-за этого даже появилась отдельная профессия — технический художник. Он помогает художникам и программистам лучше понять и реализовать замысел гейм-дизайнера. 

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

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

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

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

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

— Для каких задач ты сам используешь Unity?

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

Сначала я занимался фрилансом, потом объединился с коллегами — мы создали Game Line Studio и начали разрабатывать приложения на заказ: в основном AR и VR. 

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

Сюжет нашей игры прост: три героя сражаются со злом, которое вторглось в этот мир из подземелий древнего города. Герои отличаются по цвету (красный, синий, зеленый — RGB-отряд). Каждый атакует только противников своего цвета. Игроку нужно правильно расставить персонажей, чтобы они справились с очередной волной чудовищ. Чтобы перемещать героев, их нужно вращать по часовой стрелке или против нее.

Мы выбрали не очень простой в исполнении стиль 3D-графики, и у нас возникли большие трудности с контентом, но сейчас мы близки к финишной прямой. Уверен, игра найдет своего издателя и выйдет на рынок.

— Ты сказал, что ваша студия занимается приложениями для шлемов виртуальной реальности. Расскажешь чуть подробнее?

— Самый крутой наш проект такого плана — тренажер для Международного центра подготовки спасателей. К сожалению, детали раскрыть не могу из-за договора о неразглашении (non-disclosure agreement). Но это был невероятно интересный новый опыт. Проект очень амбициозный: если у заказчика все получится, он может произвести революцию в своей области.

— А как тебе реализация AR и VR в Unity? Насколько это удобно?

— Unity использует пакеты инструментов (SDK) от производителей шлемов виртуальной реальности (HTC, Oculus) и устройств дополненной реальности. С такими же пакетами работают и другие движки, поддерживающие AR/VR. Но я заметил забавную вещь. 

Новички выбирают Unity из-за простых настроек, а более уверенные в своих силах начинающие разработчики сначала берутся за Unreal, но со временем возвращаются к Unity, потому что он удобен и не перегружен лишними инструментами. Проще отследить, где что лежит, какие ресурсы используются и так далее. В Unreal для кастомизации приходится ориентироваться в огромном арсенале средств, спрятанных «под капотом».

— У движков с поддержкой двух- и трехмерной графики обычно одно направление в приоритете, а второе «тоже есть». Насколько Unity хорош для работы с 2D? Если я хочу сделать двухмерную игру с крутыми графическими эффектами, надо ли осваивать специализированный 2D-движок?

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

Чтобы понять, насколько красивыми могут быть двухмерные игры на Unity, достаточно взглянуть на Ori and the Blind Forest, Forgotten Anne или Children of Morta. The Heart Stone демонстрирует удивительную игру теней, которая может заставить игрока думать, что он находится в полном 3D. Отчасти это и правда так (в Unity все находится в 3D-пространстве, даже 2D-объекты), но на других движках ты не создашь подобных эффектов с такой легкостью.

Если ты знаешь Unity и хочешь быстро сделать 2D-игру с качественной графикой, смысла учить отдельный движок нет.

— Порекомендуй лучшие Unity Assets (расширения и наборы ресурсов) для разных задач, пожалуйста. Твой «топ-лист».

— Среди лучших платных ассетов юнити я бы отметил:

  1. Gaia — генератор ландшафтов.
  2. Cascade — генератор рек, озер и водопадов.
  3. Ассеты серии Obi от Virtual Method — симуляторы тканей, воды, веревок.
  4. Winter Forest Environment — набор фотограмметрических моделей окружения.
  5. Ассеты для Unity от kripto289 — крутые наборы эффектов.
  6. Наборы от Polygon Blacksmith — прикольные низкополигональные модельки.
  7. Ассеты от Manufactura K4 — убойные наборы окружения для игр с видом сверху.
  8. Mesh Baker — инструмент оптимизации 3D-сцен.

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

Лучшие бесплатные Assets для Unity:

  1. Hand Painted Forest Environment Free Sample — отличный набор рисованных лесных текстур.
  2. Ассеты от Polygon Blacksmith — среди них есть несколько бесплатных.
  3. Palace of Orinthalian — неплохой набор с домиком на болоте.
  4. Unity Recorder — позволяет записывать видео игрового процесса в Unity.
  5. Zenject Dependency Injection — инструмент (фреймворк) для управления зависимостями в Unity-проекте.
  6. UniRx — реактивное расширение для реализации асинхронных и многопоточных вычислений.
  7. Unity Anima2D — официальный плагин с открытым кодом (C#) для движка версии 5.x и выше. Упрощает создание и редактирование 2D-анимации, в том числе за счет привязки спрайтов к скелету («костной анимации»).
  8. Free Asset — 2D Handcrafted Art — пакет двухмерных спрайтов окружения.
  9. Free Rocks — набор из четырех камней и одной скалы для создания окружения.
  10. Mega Fantasy Props Pack — набор объектов для средневекового игрового окружения.

Также советую обратить внимание на бесплатные ассеты для Unity 3d и не только от Unity Technologies: они очень крутые и заслуживают внимания. Лучше скачать все, что у них есть, а затем пробовать и разбираться.

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

— Насколько легко или трудно создавать и продавать свои наборы ресурсов для Unity? Если эта тема тебе знакома и интересна.

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

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

— Какие проекты делают студенты факультета разработки игр в GeekUniversity?

— Один из проектов, которые «выстрелили», — коммерческий продукт для застройщиков от команды Project X. Приложение позволяет в виртуальной либо смешанной реальности прогуливаться по земельным участкам, чтобы планировать будущее расположение дома и объектов. Ребята уже нашли инвестора и начали восполнять свои затраты на обучение. Кстати, эта команда набирает студентов на подработку.

Игровые проекты — очень разноплановые. Здесь и уникальный пошаговый 2D-платформер, и железнодорожный survival-action с элементами экономической стратегии. Обе вещи — в постапокалиптическом антураже.

Атака на поезд в игре The Last Hope от команды Limerence Games

Также есть оригинальный tower defence про котиков и фэнтезийный roguelike, где надо вырезать орды нечисти и прокачивать свою крепость.

 

Арт врага из «рогалика» Tomorrow’s Hero от команды Brave Team

Как правило, мы ориентируем студентов на создание собственной студии и поиск издателей. В такой ситуации разработчику часто приходится переступить через свое эго и писать мобильные приложения. Это кратчайший путь, потому что мобильные решения на Unity в России пока востребованы больше, чем десктопные. Но я никогда не призываю студентов браться за неинтересное для них дело. На курсе командной разработки в GeekUniversity ограничений нет: здесь разрабатывают игры и приложения как для мобильных платформ, так и для PC. 

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

— Ты рассказываешь как человек, вовлеченный во все это. Как строится твое взаимодействие со студентами?

— Во время командной разработки студентов поддерживают сразу три преподавателя: Роман Муратов помогает с code review и архитектурой проекта, гейм-дизайнер подсказывает, как сделать игру интересной, а я выступаю в роли project manager’а и слежу, чтобы получился минимально жизнеспособный продукт, который можно показать инвестору. Еще я рассказываю, какие фичи стоит и не стоит делать, что можно и нельзя говорить инвестору, как правильно построить презентацию для лиц, принимающих решение.

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

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

— Что еще губит игровые проекты?

— Помимо мультиплеера есть еще 3D-графика и разработка большой сюжетной AAA-игры. И то и другое требует огромных денег. Энтузиазм длится не больше двух-трех месяцев, и если за это время вы не успеваете выпустить игру, это заканчивается печально для проекта.

Пожалуй, 3D-графика — самое страшное, что может случиться с проектом. Когда наша студия взялась за трехмерную игру, мы рассчитывали на самый аскетичный набор контента: вид локации сверху и персонажи — всё. В игре нельзя перемещаться по уровню, исследовать его и произвольно двигать камеру. Тем не менее тащить этот проект нелегко, потому что мы не можем делать контент. В команде шесть художников, но все «тридешники» разбежались. Полный цикл создания одной 3D-модели, включая работу аниматоров, стоит около 150 000 ₽. И все же мы преодолеваем трудности — совсем чуть-чуть и доведем игру до релиза.

Кстати, по итогам наших проб и ошибок я скоро опубликую на «Пикабу» статью: почему не стоит делать 3D-игру, если у вас нет лишнего миллиона в кармане.

Ну а если начинающий разработчик решит создать 3D-шутер класса AAA с мультиплеером, на проекте можно уверенно ставить крест еще до старта. Даже при достаточном бюджете сделать такое без серьезного опыта невозможно. Это задача для больших компаний. 

— Какие YouTube-каналы и ленты в соцсетях стоит отслеживать изучающим движок Unity?

— Из YouTube советую:

  1. Nevosoft
  2. DevGAMM
  3. Официальный канал Unity
  4. Sebastian Lague
  5. Brackeys 
  6. Unity3D College
  7. Школа разработки игр

Из групп «ВКонтакте»:

  1. DTF
  2. Игромания
  3. Unity User Group
  4. Unity3D & CG / Unity 3D

А еще на «Пикабу» есть «Лига разработчиков видеоигр» — на их сообщения тоже стоит подписаться.

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

— Спасибо! Последний вопрос, как всегда, к читателям. Что еще вы хотели бы узнать по теме? И есть ли у вас планы делать свою игру на Unity? 

Скоро опубликуем обзор проектов, над которыми работают студенты GeekUniversity, — с артами, скриншотами и комментариями авторов.

games3dресурсыunityunity3dassetsассетыразработка игрgamedevgeekuniversitygugeekstorygeek university
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!
Posts popup