Tagged: GameDev

01
Июн
2021

🎮 Разработка игр Unreal Engine 4: 10 советов начинающим

Изучения игрового движка Unreal Engine 4 с нуля – задача не из простых. Разбираемся, на чем следует сосредоточиться в первую очередь.

Движок Unreal Engine 4 – довольно сложная программа для создания игр, кинематографических сред и визуализаций. Несмотря на обилие документации, руководств и туториалов, новичку не всегда ясно, с чего начать ее изучение. Разберемся, на каких моментах следует сосредоточиться в первую очередь.

1. Установите UE 4


Для правильной загрузки и установки Unreal Engine 4 следуйте инструкциям, описанным в этом руководстве, предварительно убедившись, что оборудование компьютера соответствует спецификациям.

Рекомендуемая конфигурация:

  • Настольный ПК или Mac;
  • Операционная система: Windows 7 64-bit или Mac OS X 10.9.2 и выше;
  • Процессор: Intel или AMD с тактовой частотой 2.5 ГГц и выше
  • Видеокарта: NVIDIA GeForce 470 GTX или AMD Radeon 6870 HD и более производительные:
  • Оперативная память: 8 ГБ.

Минимальные требования гораздо ниже благодаря гибкой настройке графики.

Другие доступные платформы: Linux, iOS и Android. Имеется встроенная поддержка VR для Oculus Rift, поддержка Xbox One и PlayStation 4.

2. Определите цель изучения движка

Определитесь, что вы хотите сделать при помощи игрового движка. Для чего собираетесь изучить UE4? Вариантов использования масса, но наиболее популярные желания новичков выделить нетрудно:

  • Создать игру;
  • Заняться архитектурной визуализацией;
  • Заняться разработкой игрового окружения;
  • Создать игровые уровни;
  • Заняться анимацией и кинематографией.
Хвататься за все сразу – плохая практика. В начале пути стоит выбрать единственный вариант, погрузиться в него с головой, чтобы изучить все досконально.

3. Составьте план проекта (опишите этапы создания игры в UE4)


Разбив первый проект по созданию игры на этапы, вы будете лучше ориентироваться в ее разработке. Приведем пример такого плана (это не исчерпывающий список, а скорее демонстрация):

  1. Разработка основной идеи. Сюжет.
  2. Концепт-арт: визуальный стиль игры (рисунки, цифровая живопись, фотоотсылки).
  3. Концепция игрового процесса: как будет проходить игра, игровая механика.
  4. Создание прототипа игрового процесса (Blueprint или C++): простая программа с интегрированной базовой механикой и элементами-заполнителями.
  5. Доработка механики (создателю всегда есть что добавить).
  6. Создание трехмерной статической сетки (3D-модели, UV-развертка, текстурирование, материалы, экспорт и импорт).
  7. Работа с анимацией и эффектами.
  8. Дизайн уровней (прототипирование BSP, скрипты, ИИ, игровое тестирование, детализация, освещение).
  9. Оптимизация и производительность.
  10. Упаковка и релиз.
Многие из этих шагов пересекутся во время производства, а тестирование и исправление ошибок будут фоновым этапом разработки на протяжении всего проекта.

4. Определите этапы создания среды в UE4

Теперь давайте рассмотрим, что нужно для создания пользовательской трехмерной игровой среды с помощью Unreal Engine 4:

  1. Создание 3D-модели: высокополигональная и низкополигональная сетки.
  2. Оптимизация текстур.
  3. Создание LOD (уровня детализации).
  4. Разработка собственных коллизий.
  5. Экспорт пакета 3D-моделирования.
  6. Импорт статических мешей (базовых единиц, используемых для создания геометрии мира).
  7. Экспорт и импорт всех текстур и материалов в UE4.
  8. Разукрашивание текстур.
  9. Создание прототипа.
  10. Настройка Blueprint для игровой механики (при необходимости).
В зависимости от среды, некоторые действия из этого списка могут не потребоваться.

5. Изучите основные понятия и операции

Чтобы приступить к разработке первого проекта, вам необходимо освоить базовые вещи:

  1. Работу с навигацией в окне просмотра.
  2. Использование Content Browser.
  3. Работу с объектами и статическими сетками.
  4. Использование BSP для блокировки макета уровня.
  5. Вставку и использование источников света (направленный свет, прожекторы, точечные светильники).
  6. Управление сценой.
  7. Работу с Lightmass Importance Volume, Player Start, Fog.
  8. Масштаб и пропорции.
  9. Тестирование из редактора.

Изучите основные понятия (термины):

  1. Мир – список загружаемых в игру уровней.
  2. Уровень – определяемая пользователем зона игровых действий.
  3. Объекты – базовые строительные блоки Unreal Engine. Через них реализована вся функциональность движка.
  4. Актер – любой Объект, помещенный на уровень и поддерживающий 3D-преобразования (перемещение, вращение, масштабирование).
  5. Пешка – подкласс Актеров, управляемых игроком или искусственным интеллектом (ИИ).
  6. Персонаж – подкласс Пешек, управляемых игроком.
  7. Классы описывают поведение и свойства конкретных Объектов и Актеров, используемых в игре.
  8. Компоненты – добавляемая Актеру функциональность.

6. Главное – режим!


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

Важно: Ключом к изучению любого игрового движка (особенно UE4) является установка добровольных ограничений. Не переусердствуйте со временем занятий и объемом материала, чтобы не перегореть на старте!

7. Начните с малого

Не пытайтесь сразу сделать большую игру. Ваша цель при разработке первого проекта – изучить функциональность, а также основы и принципы использования игрового движка. Рекомендуется начинать с разработки небольшой игровой среды со стартовым контентом. Это может быть отдельная комната, коридор или созданная при помощи Starter Content внешняя территория.

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

8. Изучите шаблоны

При разработке первого проекта на Unreal Engine 4 обязательно используйте один из встроенных игровых шаблонов. Это не просто примеры, а скорее концептуальные решения – на их основе строится логика вашего приложения. Стоит изучить каждый из примеров досконально, не боясь что-то испортить. Вы можете его сломать, загрузить и сломать снова, пока не поймете суть происходящего.

Доступно более 10 вариантов: «Шутер от первого лица», «Шутер от третьего лица», «Сверху вниз», «Шаблон с боковой прокруткой» и др. Использование любого из них даст вам понимание базовой игровой механики, а добавив собственные изменения, вы можете развить функциональность. Не бойтесь экспериментов, тренируйте свои навыки и набирайтесь опыта!

9. Освойте Blueprint


Blueprint – это язык визуальных сценариев внутри UE4. Он сделает всю работу за вас и подключит настраиваемое поведение к проекту. Это означает, что можно создать скрипт для большей части игрового процесса и игровой механики внутри редактора без необходимости писать и компилировать код на C++. Можно создать игру, используя только Blueprint.

Изучите базовые функции Blueprint для создания интерактивных элементов игрового процесса:

  • Перемещение платформ;
  • Открытие и закрытие дверей;
  • Включение и выключение света;
  • Причина и следствие (взаимодействие с предметами в игре);
  • Активация определенных событий или действий при загрузке уровня или при появлении игрока;
  • Добавление взаимодействия с помощью кнопки или текста на экране.
Blueprint чрезвычайно эффективен, поэтому его необходимо изучить всем начинающим разработчикам и геймдизайнерам. Если вы хотите стать художником по игровому окружению, дополнительно потребуется пакет 3D-моделирования (Maya LT, Maya, 3dsMax, Modo, Blender). Дизайнеру уровней, программисту или художнику по текстурам он не особо нужен.

10. Используйте интернет-ресурсы для обучения

В процессе изучения Unreal Engine 4 у вас наверняка возникнут вопросы. Ответы на них можно искать не только в документации:

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

***

На Unreal Engine 4 сделаны многие современные игры, поэтому движок однозначно рекомендован к изучению всем интересующимся геймдевом. На самостоятельное освоение всех его возможностей потребуются не один год, но есть и более короткий путь. Обратите внимание на курс факультета разработки игр на Unreal Engine 4 образовательной онлайн-платформы GeekBrains. Вы освоите сам движок, научитесь программировать на Blueprints и C++ и сможете самостоятельно создавать игры с нуля. Занятия ведут эксперты-разработчики российских технологических компаний, а успешно окончившие курс студенты получат диплом о профессиональной переподготовке, несколько проектов в портфолио и помощь в трудоустройстве.

25
Май
2021

🎮 Как зарабатывать на играх или зачем изучать игровую аналитику в 2021 году?

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

Игровая аналитика – явление относительно молодое. Еще 10 – 15 лет назад для отслеживания поведения игроков не хватало вычислительных мощностей и аналитических возможностей. Сейчас решения принимаются на основе реальных данных – угадывать интересы пользователей уже не нужно. Новый подход изменил отрасль разработки игр: альфа-тестирование, контроль качества выпускаемого продукта и управление игровым сообществом.

Что такое игровая аналитика?

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

Каковы основные метрики аналитики?


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

  • Клиентская метрика – вся связанная с привлечением и удержанием клиентов информация. Это данные для маркетологов, притом наиболее важные из них – DAU (ежедневная активность пользователя) и ARPU (средний доход, приходящийся на одного пользователя).
  • Метрики сообщества – сосредоточенные на поведении и развитии сообщества показатели. К этой категории относятся всевозможные социальные взаимодействия, переписка в игровом чате, а также обмен сообщениями в игре и в социальных сетях.
  • Метрики производительности – показатели, отражающие производительность приложения и возможные сбои. Сюда входит время ответа удаленного сервера, продолжительность загрузки игры или частота кадров во время выполнения квеста. Все, что может помочь разработчику улучшить информационные системы проекта.
  • Метрики игрового процесса – показатели, регистрирующие взаимодействие между пользователем и программой внутри игры. Например, проведенное на заданном уровне время или сколько раз персонаж умирал во время его прохождения. Эти метрики дают нам возможность оценить качество выполнения сценариев.
Поначалу игровая аналитика может показаться инструментом маркетологов, направленным на повышение монетизации игры. На самом деле она необходима и для обеспечения комфортных игровых условий: он позволяет понять поведение игроков на основе фактических данных.

Примеры использования игровой аналитики:

  • Зная, где и когда игрок застревает, легко настроить сложность игры.
  • Имея информацию о самых популярных игровых товарах, можно грамотно рассчитать цены на них.
  • Определив средний возраст пользователей вашего продукта, легко адаптировать для них игровой контент.

Почему это важно?

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

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

Для эффективного анализа придется собрать много реальных данных.

Какие показатели необходимо отслеживать?


Здесь возникает серьезная проблема: мы не можем отслеживать все. У каждого контролируемого потока данных есть своя стоимость обработки. Необходимо учитывать работу серверной стороны и отвечающих за сбор информации людей. Чтобы не нести убытков, придется выяснить, какие показатели наиболее важны. Характер и количество необходимых метрик полностью меняется от проекта к проекту в зависимости от жанра и масштаба игры. Например, связанные с сообществом и монетизацией показатели не имеют большого значения в однопользовательских играх.

К счастью, небольшим командам не нужно отслеживать большие объемы данных, как это делают крупные компании. Грамотный контроль следующих моментов сбалансирует игровой прогресс:

  • Время выхода из игры;
  • Средняя продолжительность сеанса;
  • Сколько уровней игрок сумел пройти;
  • Момент, когда игрок удаляет ваше приложение.

Проанализировав данные, вы сможете найти разочаровывающий пользователей контент.

Связанная с игровым процессом аналитика очень глубока, поскольку даже в самой простой игре используется большое количество переменных. У объектов есть положение, состояние и еще ряд параметров. На сбор информации и анализ результатов потребуется много времени – хорошим решением будет объединить похожие по форме наборы данных в группы.

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

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

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

Профессия игровой аналитик: за что платят деньги?


Аналитик игрового проекта – человек, помогающий разработчикам игры, и правая рука дизайнера, решения которого он описывает и объективно оценивает. Функции игрового аналитика зависят от размера компании, но в общем случае сводятся к решению двух основных задач: поиску узких мест и точек роста проекта.

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

Под анализом игры обычно понимают следующее:

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

Зарплата специалиста в области игровой аналитики находятся в диапазоне от 70 000 до 200 000 рублей в зависимости от уровня специалиста, если верить опубликованным на hh.ru описаниям вакансий.

Чтобы стать игровым аналитиком, необходимо:

  • Понимание геймдизайна и процесса разработки игр;
  • Знание основ Python;
  • Знание языка структурированных запросов SQL;
  • Знание основ статистики;
  • Знание основ визуализации данных;
  • Знание маркетинговой аналитики и методов анализа игровых метрик;
  • Умение работать с большими данными.

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

***

Заинтересовались, но не знаете с чего начать? Обратите внимание на факультет игровой аналитики образовательной онлайн-платформы GeekBrains. Здесь вы получите все необходимые навыки для начала карьеры: геймеры смогут превратить хобби в работу мечты, начинающие специалисты лучше изучат отрасль, а практикующие гейм-дизайнеры научатся создавать более продуманные игры. Благодаря практическим занятиям на примере реальных игровых продуктов вы не только получите нужный для старта в профессии опыт, но и сможете добавить интересные кейсы в портфолио. Эксперты-практики с большим стажем откроют перед вами двери в профессиональный мир Gamedev, а HR-специалисты помогут с трудоустройством. Удачи в обучении!

15
Апр
2021

🎮 Основы разработки игр на Unity

Лучший способ заняться игровым дизайном – сразу же начать. Разбираемся, как сделать собственный уровень при помощи готового пакета 2D Game Kit и на его примере изучаем создание игр в Unity.

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

Мы уже рассказывали, как научиться разработке на Unity. В написанной совместно с онлайн-университетом GeekBrains статье мы рассмотрим пошаговое создание собственной игры с использованием 2D Game Kit.

2D Game Kit

Unity подходит не только для сложных трехмерных игр или работы с виртуальной и дополненной реальностью – движок прекрасно справляется и с 2D-классикой. Мы начнем с простого и разберемся в его игровой механике на примере 2D Game Kit – набора инструментов, шаблонов и настроек для быстрой разработки. По сути пакет представляет собой готовую игру-платформер, для которой можно создавать новые уровни, а также менять свойства существующих.

<span>2D Game Kit</span>
2D Game Kit

Приступим.

Установка и создание проекта

<span>Unity Hub</span>
Unity Hub

Для начала нужно скачать и установить Unity Hub – это лаунчер, который упрощает управление проектами и версиями Unity. Затем придется зарегистрироваться в экосистеме и создать Unity ID. Выберите лицензию Personal (персональную) и отметьте галочкой подходящий вариант применения: Unity позволяет использовать движок бесплатно для некоммерческих целей, а также компаниям с годовым доходом меньше $100 000.


После активации лицензии можно установить последнюю LTS-версию Unity с необходимыми параметрами из раздела Installs. Выберите платформы, на которых должна запускаться игра, и дождитесь окончания инсталляции.


N.B. На слабых машинах процесс может занять довольно длительное время – запаситесь печеньками и кофе.


Когда Unity уже установлена, нужно создавать проект. Вы можете взять его из раздела Learn, выбрав там 2D Game Kit или добавив его в ваши Assets на сайте (не забудьте предварительно залогиниться под своим Unity ID).



Создание новой сцены и карты уровня

2D Game Kit позволяет автоматически создать новую сцену по умолчанию. Она уже содержит персонажа Эллен, небольшую платформу, интерфейс здоровья, а также все нужное для передвижения и атаки. Для этого откройте проект и выберите раздел Kit Tools –> Create New Scene в верхнем меню.



2D Game Kit использует функцию Tilemap в Unity, которая поможет быстро и легко нарисовать уровень. Все уже настроено, так что можно сразу приступить к работе. В верхнем меню выберите Window –> 2D –> Tile Palette, и у вас откроются две палитры плиток, которые позволяют рисовать уровни.



Разработчику доступно два стиля спрайтов Grassy Rocks и Alien Structure. Выберите тот, который больше нравится, и начните рисовать карту. Визуальные инструменты похожи на обычный графический редактор, так что проблем с ними не возникнет. Блоки можно рисовать, редактировать или стирать.

Когда карта будет готова, можно сразу перейти в окно Game визуального редактора и нажать Play, чтобы посмотреть результат. Управление классическое: A, D, S, Space для прыжка. O, K – выбор оружия.


Двери и движущиеся платформы


В меню проекта внизу нужно найти раздел Prefabs –> Interactables, где находится ряд игровых атрибутов. Возьмем для начала движущуюся платформу и перетащим ее в нашу сцену. После этого она автоматически появится в иерархии сцены в левом окне редактора. Если выбрать ее, то возле платформы в визуальном редакторе появится красная пунктирная линия, обозначающая путь ее движения.

Мы можем перетащить ее в любое место. Путь платформы можно сделать сложнее, заставив ее двигаться по кругу. Для этого нужно воспользоваться кнопкой Add Node в окне инспектора, который находится справа. Добавьте несколько точек-нод и соедините их, сменив флажок BACK_FORTH на LOOP в строке Looping инспектора панели. Стоит обратить внимание, что большая часть свойств всех игровых объектов меняется в инспекторе.


Попробуем также добавить дверь: на ее примере мы разберемся, как настраивать взаимосвязь между сценариями разных объектов. Находим ее там же в разделе Prefabs –> Interactables и перетаскиваем в редактор.

Чтобы открыть дверь, добавим нажимную панель на полу: она обозначена как Pressure Pad. В инспекторе панели найдем раздел Pressure Pad (Script), в одном из окон которого есть раздел On Pressed (). Добавим там новое действие при нажатии Runtime Only и в открывшееся поле перетащим из иерархии сцены нашу дверь, которая Door.


Теперь в соседнем окне с надписью No Function выберем из выпадающего списка Animator –> Play (string). Напишем в появившемся поле DoorOpening. Это готовый скрипт для из раздела Art –> Animations –> AnimationClips –> Interactables со сценариями для существующих объектов.


Телепортация

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


В настройках телепорта мы видим раздел Transition Point (Script), в котором в соответствующих окнах можно выбрать телепортируемый объект (в нашем случае Elen) и тип телепортации (Same Scene), перетащить из раздела иерархии точку назначения в Destination Transform (это будет второй телепорт), а также указать условие перемещения – при входе (On Trigger Enter) или при нажатии кнопки действия (E Interact Pressed). Также телепортироваться можно в другие сцены, например, для перехода между уровнями игры через настройку TransitionDestination, которая находится в Scene Control.

Враги

У нас есть два готовых врага в наборе: Chomper и Spitter. Их можно найти в окне проекта в Prefabs –> Enemies.


Оба они контролируются компонентом Enemy Behavior в инспекторе. Вы можете использовать этот компонент для настройки таких свойств, как скорость врага, поле зрения (FOV), здоровье и многое другое. Добавив одного из них в сцену, можно поменять настройки обнаружения персонажа, дальность и угол зрения, скорость движения и реакции.


Урон и украшения

За нанесения урона у нас отвечает функция Damager, ее можно прикрутить к любому игровому объекту и настроить на свое усмотрение. Добавим падающий ящик, который персонаж будет сбрасывать на врагов.


Перетащив ящик на сцену, нажимаем в инспекторе Add Component и добавляем Damager. Первоначально он не будет совпадать с силуэтом ящика, поэтому его нужно вручную подогнать под размер объекта. Также зададим размер наносимого урона, а в разделе HittableLayers укажем врагов в качестве цели, чтобы случайно не повредить себя.


Рекомендуем также создать пустой объект в самом низу сцены по всей ее длине и добавить в него Damager, чтобы реализовать механизм смерти игрока при падении. В противном случае Elen будет бесконечно падать вниз, что не особенно логично.

В разделе проекта Art –> Sprites –> Environment есть множество украшений, которые можно добавить в сцену. Пакет 2D Game Kit вообще содержит кучу готовых кастомизируемых объектов. Поскольку Unity поддерживает импорт собственных спрайтов, изображений и объектов, простор для фантазии почти безграничен.

Сборка игры

Будем считать, что сцена уже готова и вы хотите протестировать ее вне редактора в виде отдельной игры. Чтобы не добавлять в проект созданные по умолчанию в 2D Game Kit сцены, стоит слегка изменить стартовые настройки. Их можно найти в разделе Scenes под названием Start. Откройте в редакторе объект TransitionStart, и выберете свою сцену в строке New Scene Name.


Теперь при нажатии Start игрок сразу попадает в вашу сцену, минуя предустановленные уровни.


Перейдем в меню работы с файлами к разделу Build Settings, где нужно выбрать необходимые сцены: Start, UIMenus, Loading и созданная вами. Ниже мы выбираем платформу, под которую будем собирать проект (при необходимости можно добавить поддержку требуемой архитектуры). Проверьте или измените настройки в разделе Player Settings и нажмите Build. Выберите папку назначения и дождитесь окончания сборки.

Игра готова, можно тестировать и делиться ею с друзьями.

Заключение

Мы лишь познакомили читателей с основами интерфейса Unity на примере комплекта 2D Game Kit. Более подробные руководства на английском языке легко найти в соответствующем разделе официального сайта Unity. Также рекомендуем ознакомится с инструкцией по созданию 2D пин-понга на Unity.

***

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

03
Мар
2021

📱 Как начать разрабатывать мобильные игры для Android?

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

01
Окт
2020

Инженер DevOps компании Wargaming Сергей Макаренко рассказывает о лучших технологиях, проектах, недостатках профессии и работе в крупной международной компании.

В предыдущих статьях о DevOps мы писали о том, Чем занимается DevOps-инженер? Обзор базовых практик и Как и зачем становиться DevOps-инженером. Другие публикации по DevOps доступны по ссылке: https://proglib.io/tag/DevOps.

В этом материале Сергей Макаренко (LinkedIn) рассказал о своем профессиональном пути.

Почему DevOps

Я учился в СПБГПУ на факультете технической кибернетики. Работал в разных отраслях: бизнес-консалтинге, IT-аутсорсинге, банковской и телевизионной сферах, телекоме, гемблинге, в индустрии компьютерных игр, в госкомпании.

Решать приходилось различные задачи: писать код, администрировать, заниматься ITIL, управлять проектами и людьми. В процессе я получал все необходимые для текущей работы навыки.

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

О текущей работе

Изначально мне было интересно, как оно – в геймдеве? Поэтому я выбрал компанию Wargaming – это разработчик и издатель популярных компьютерных игр: World of Tanks, World of Tanks Blitz, World of Warships и многих других. Ради работы переехал в Беларусь. Компания помогла мне с релокацией: сопровождала процесс переезда на всех этапах.

Причина такого выбора – большая, известная и интересная в плане задач компания, поэтому я работаю на нее уже 2 года. Численность сотрудников Wargaming превышает 5000 человек в 17 филиалах по всему миру. Самый большой офис расположен в Минске, здесь трудится более 2200 человек. Мое подразделение называется Platform, мы производим общие для всех игр сервисы.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Кто такой инженер DevOps

DevOps – это прежде всего методология, но в какой-то момент на рынке труда появилась и должность инженера DevOps. Есть люди, которые не согласны с самим существованием таких специалистов. Проблема еще и в том, что явной нормативной базы или общепринятого понимания круга обязанностей инженера DevOps не существует – как, например, в Google сделали для термина SRE.

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

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

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

Следовательно инженер DevOps – тот, кто сможет эффективно наладить весь процесс с помощью внедрения конкретных практик, путем обсуждений, построения необходимой инфраструктуры, написания кода.

О рабочем дне

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

  • Разбор того, что пришло за ночь: сообщений в почте и мессенджерах, сработавших триггеров и инцидентов (при этом инциденты, которые ночью были критичными, скорее всего уже были решены дежурным инженером);
  • Корректировка плана на день;
  • Stand-up митинг с проектной и/или структурной командой, частью которой я являюсь;
  • Решение различных задач согласно плана на день:
  1. Решение каких-либо проблем на стейджинг- или продакшн-окружениях с тем, чтобы они больше не повторялись;
  2. Улучшение процессов/инфраструктуры для различных систем и сервисов;
  3. Курирование в том или ином виде каких-либо проектов;
  • Различные встречи при их наличии;
  • Написание плана на следующий день.

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

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

О рабочих проектах и ошибках

В Wargaming я начинал с улучшения работы стейджинг-окружений и встраивания новых сервисов, которые были внедрены в существующую инфраструктуру.

Один из последних крупных проектов, в которых мне довелось участвовать перезапуск World of Tanks в Китае. Требовалось за короткое время развернуть все необходимые сервисы, выполнить интеграции с китайскими партнерами, изменить существующие технические и организационные процессы.

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

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

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

Плюсы и минусы профессии DevOps-инженера

Из плюсов можно отметить, что данная профессия позволяет непрерывно развиваться и сразу видеть, какую пользу ты приносишь.

Из минусов – зачастую работа может быть сопряжена с большим количеством стрессов, но к этому со временем привыкаешь.

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

Новичкам в профессии советую уделять время получению фундаментальных знаний и расширять кругозор.

10 лучших технологий DevOps

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

CI/CD (Pipeline as Code)

Инфраструктура как код

Контейнеризация и оркестрация

Облачные сервисы

Observability и мониторинг

Service mesh

Централизованное логирование и трейсинг

API gateways

Feature toggle

Микросервисы и микрофронтенды

Полезные книги, курсы и каналы на YouTube

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

  • Дженнифер Дэвис и Кэтрин Дэниелс «Философия DevOps. Искусство управления IT».
  • Джин Ким, Джордж Спаффорд, Кевин Бер «Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему».
  • Джин Ким, Патрик Дебуа, Джон Уиллис, Джез Хамбл «Руководство по DevOps».
  • Бетси Бейер, Дженнифер Петофф, Крис Джоунс «Site Reliability Engineering. Надежность и безотказность как в Google».

Об этих и других полезных для DevOps-специалистов книгах мы писали в материале – ТОП-10 книг из библиотеки специалиста DevOps.

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

Отчеты об индустрии DevOps:

От частной глобальной технологической компании ThoughtWorks(англ.)

От американской исследовательской компании DevOps Research and Assessment (DORA)(англ.)

Полезные Тelegram-каналы: devopsminsk и devops_deflope.

Каналы на YouTube с записями с различных конференций: CNCF, DevOpsDays, Ontico, Jugru.

***

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

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

01
Сен
2020

Показываем, как создать простую 2D-игру на Unity на примере игры в пинг-понг, C#-код прилагается. Пошаговое руководство для абсолютных новичков, дающее практическую основу для изучения Unity.

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

Примечание
Если вы хотите получить более систематическое образование в области разработки игр, мы рекомендуем рассмотреть факультет разработки игр онлайн-университета GeekBrains.

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

За последние годы вышло много популярных двумерных игр:

  • Battletoads продолжение серии игр в жанре beat ’em up, файтинг;
  • Spiritfarer игра в жанре «ферма», менеджмент;
  • Carrion игра в жанре «ужасы», метроидвания;
  • Creaks игра в жанре «квест», головоломка;
  • Streets of Rage 4 игра в жанре beat ’em up, файтинг.

Программная реализация 2D-игр проще не только из-за отсутствия третьего измерения: на самой сцене меньше объектов, вместо трехмерных моделей плоские спрайты, вместо скелетной анимации покадровая. А еще 2D-игры проще портировать на другие платформы – легче найти новую аудиторию.

Особенности создания 2D-игр на Unity

Давайте создадим простую игру в жанре пинг-понг

27
Авг
2020

Разработчики игр – одни из самых востребованных IT-специалистов. В этой статье расскажем, какие навыки нужно иметь и какие технологии изучить, чтобы стать профессиональным Unity-разработчиком с хорошими карьерными перспективами.

Кто такой разработчик игр Unity/Game Developer

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

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

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

Как стать разработчиком игр: где и чему учиться

Где учиться – на курсах по созданию игр, по книгам или видеоурокам на YouTube – сугубо личный выбор. Мы рекомендуем обучение разработке игр на систематических курсах, которые дают представление о геймдеве в целом и разработке игр на Unity в частности.

Язык программирования C#

В Unity используется производительный язык программирования C#. Благодаря C# и Mono – кроссплатформенной реализации .NET, – Unity-проекты могут собираться и работать одинаково стабильно на разных операционных системах.

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

  • базовые конструкции;
  • объекты, типы и ссылки;
  • перечисления и коллекции;
  • объектно-ориентированное программирование;
  • обработка исключений.

Если вы планируете создавать сетевые игры, то крайне желательно знать ASP MVC – фреймворк для создания веб-приложений, который упрощает сетевое взаимодействие и работу с базами данных.

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

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

Большинство обучающих и справочных материалов написаны на английском языке, а потому мы советуем овладеть языком, как минимум на уровне Intermediate. Знание английского языка – не специфическое для Unity-программистов, а стандартное для IT требование.

Редактор Unity3D

Большую часть времени Unity-разработчики проводят в редакторе, так что его нужно изучить досконально. Кроме того, программные библиотеки Unity требуют дополнительного изучения – Unity-проект существенно отличается от обычного C#-приложения. Чтобы стать профессиональным Unity-разработчиком, нужно изучить следующее:

  • базовые манипуляции со сценой, объектами, assets и prefabs;
  • векторы, проекции и математика для 3D графики;
  • создание пользовательского интерфейса в игре;
  • работа с материалами;
  • модули физики для 2D и 3D;
  • система анимации Mecanim;
  • системы частиц;
  • работа с аудио;
  • свет и постобработка;
  • работа с разными графическими пайплайнами;
  • работа с искусственным интеллектом.

Инструменты командной работы

Игра редко делается в одиночку. Для эффективной работы нужно уметь пользоваться инструментами для командной работы. Прежде всего, это системы контроля версий. Официально поддерживаемые и рекомендуемые для Unity системы – Perforce и Plastic SCM. Можно встретить компании, которые используют более распространенный и бесплатный Git, однако, это требует дополнительных усилий по настройке Unity.

Нужно иметь представление о следующих инструментах:

  • cистемы управления задачами (Asana, Basecamp, JIRA, Redmine);
  • баг-трекеры (JIRA, Redmine, Bontq, YouTrack).

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

Обучающие материалы, курсы по созданию игр

Без качественного и всестороннего обучения стать востребованным Unity-разработчиком невозможно.

Официальная документация (анг)

Официальный портал по изучению Unity (анг)

Программирование

Книги. Не будем пугать вас списками, у нас уже есть подборка актуальных книг по C#.

Видеокурсы

Unity

Книги

  • Unity в действии. Мультиплатформенная разработка на C#. Хокинг Джозеф.
  • Unity и C#. Геймдев от идеи до реализации. Джереми Гибсон Бонд.
  • Разработка игр на Unity 2018 за 24 часа. Гейг Майк.
  • Геймдизайн. Как создать игру, в которую будут играть все. Шелл Джесси.

Видеокурсы

Обучение разработке игр, погружение в профессию и карьерные перспективы

Чтобы начать карьеру Unity-разработчика, нужно не только освоить язык и систему, но и иметь практические навыки.

Начинайте с несложных 2D-игр вроде тетриса или flappy bird. Простые игры легче реализовать в одиночку, но они дают навыки работы с базовыми функциями: загрузка сцен, создание интерфейса пользователя, работа с ресурсами. Далее можно переходить к 3D-играм. Здесь тоже лучше начинать с простого, постепенно внедряя новые функции и меняя архитектуру игры. Так вы составите портфолио, с которым в дальнейшем пойдете на собеседование.

По квалификации разработчики делятся на три условных уровня: Junior/Middle/Senior.

Junior – начинающий разработчик, работающий в команде под управлением более опытных коллег. Джуниору чаще всего поручают простые, некритичные задачи. На этом уровне работник обычно держится 1-1.5 года, после чего повышается до Middle. Junior Game Developer должен иметь следующие компетенции:

  • иметь хорошее знание C#;
  • иметь опыт разработки в Unity, портфолио не должно быть пустым;
  • базовые знания в линейной алгебре (пример);
  • базовые знания в 3D-моделировании.

Middle – опытный специалист, способный выполнить всю порученную работу. Решает как критически важные, так и рутинные задачи. Имеет достаточную квалификацию, чтобы управлять джуниорами. Все основные инструменты и технологии Unity должны быть известны middle-разработчику. Многие работают на уровне middle годами и десятилетиями. Чтобы стать сеньором, нужны большие и целенаправленные усилия.

Senior – программист с высочайшей квалификацией. Может выполнить любую задачу в рамках своего набора технологий. У сеньоров огромный опыт, широкий кругозор, часто – отличные управленческие навыки. Чтобы вырасти от джуниора до сеньора нужно от 6 до 8 лет.

Team Lead Unity Developer – программист уровня middle, который занимается преимущественно управленческой деятельностью. Именно тимлиды создают условия для продуктивной работы команды. Им платят не за написанный код, а за соблюдение сроков и качество проекта в целом.

Также выделяют Unity VR Developer – специалиста, работающего в сфере виртуальной реальности. Такой программист должен иметь специальные знания, связанные со специфическим оборудованием – очками и шлемом виртуальной реальности. Unity AR Developer – похожая специализация, но связана не с виртуальной, а дополненной реальностью.

Востребованность Unity-разработчиков растет, как и количество вакансий. С уверенностью можно говорить, что и через 3-5 лет профессия разработчика игр на этом движке будет перспективна.

Unity-разработчик в среднем получает 65 тыс. руб. в месяц. Минимальная зарплата – 40 тыс. руб. в месяц, максимальная – 135 тыс. руб. в месяц.

В мире ситуация следующая: без учета налогов минимальная зарплата – $6 750/мес., средняя – $11 000/мес., максимальная – $22 500/мес.

Где учиться на разработчика игр

Если вы только начинаете изучать разработку игр, мы рекомендуем обратить внимание на курс Факультета Разработки игр онлайн-университета Geekbrains. В этом курсе систематизирована вся основная информация, необходимая для того, чтобы стать профессиональным Unity-разработчиком.

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

17
Апр
2020

Сохранение игровых данных в Unity

Рассказываем с примерами кода на C# про два способа сохранения игровых данных в Unity: метод сериализации и PlayerPrefs для пользовательских предпочтений.

Одна из самых важных ве…

13
Апр
2020

Нейросети в помощь геймдев-художнику: машинное обучение для создания игрового пиксель-арта

О том, как генеративно-состязательные нейросети с Pix2Pix-архитектурой помогают художникам ускорить создание игрового дизайна.

Приведённые на заголовочной картинке спрайты взяты …

28
Ноя
2019

GameDev: с чего начать разработку игр?

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