Эти инструменты позволяют не только создать макет интерфейса приложения или игры, но и собрать небольшое демо того, как этот интерфейс будет работать. Это демо можно использовать как интерактивную подсказку для художников и программистов, а также для исследования пользовательского опыта еще до того, как программисты приступят к реализации интерфейсов.
• Среди отдельных программ можно отметить Adobe XD, Axure и Balsamiq.
• Из онлайн-сервисов можно обратить внимание на сервисы Figma и Sketch. Одним из главных преимуществ онлайн-сервисов является возможность совместной работы над макетами.
Среди инструментов для работы с двухмерной графикой есть безоговорочный лидер – компания Adobe с ее знаменитыми программами Photoshop (для растровой, пиксельной графики) и Illustrator (для векторной графики). Но существует довольно много альтернатив, в том числе бесплатных: например, Gimp. Очень популярны также Paint Tool Sai, Krita и Clip Studio Paint.
Для создания анимации в 2D с использованием методики скелетной анимации можно использовать программу Spine.
Для работы с трехмерной графикой есть инструменты универсальные и предназначенные для работы над отдельными аспектами 3D-графики.
• Универсальные инструменты – это программы компании Autodesk: Maya, 3ds Max, а также Cinema 4D, бесплатный Blender и другие. Эти программы позволяют заниматься и созданием моделей, и текстурированием, и анимированием.
• Для создания моделей и текстурирования существуют отдельные довольно популярные инструменты: Substance Painter 3D, Substance Designer, Marvelous Designer, 3D Coat, ZBrush и другие.
• Некоторые программы для работы с 3D-графикой имеют довольно глубокую интеграцию с популярными игровыми движками: например, Houdini.
• Для создания анимаций, основанных на реалистичной физике, можно использовать программу Cascadeur.
Контроль версий – необычайно важный инструмент, он обеспечивает безопасность и сохранность наших наработок. Но основная цель систем контроля версий – облегчение одновременной работы над проектом большому количеству разработчиков. Главной сложностью при работе с системами контроля версий является объединение наработок различных специалистов в единый продукт.
Самой распространенной системой контроля версий на сегодня является Git. Можно запустить Git на собственном сервере, например в офисе, либо воспользоваться услугами других сервисов типа уже упомянутых GitHub, GitLab, Azure и BitBucket (который имеет прямую интеграцию с уже упомянутыми Confluence и Jira). Существуют и другие системы контроля версий, например Plastic SCM, который, в свою очередь, имеет прямую интеграцию с движком Unity 3D и отличается от Git тем, что позволяет работать в том числе с тяжелыми файлами графических и звуковых ассетов.
Внешние сервисы, кроме хранения версий исходного кода (репозиториев), также предоставляют дополнительные услуги и сервисы, способные облегчить и автоматизировать процесс разработки: например, автоматическую сборку новых версий игры при попадании нового кода в хранилище.
В современных играх используется очень много сетевых механик. Начиная простой идентификацией через социальные сети и выводом списка друзей и заканчивая расчетами важных для игры событий на стороне сервера для борьбы с читами, которые игроки могут использовать на своем игровом устройстве.
Для реализации этих механик необходим некий сервер и работающая на сервере программа, обеспечивающая ту самую идентификацию, хранение инвентаря игрока, его прогресса. Эту серверную программу можно целиком написать самостоятельно, а можно воспользоваться одним из сервисов, который облегчит разработку.
Самые простые варианты на сегодня – это PlayFab от Microsoft и Unity Gaming Services от Unity. Эти сервисы непосредственно предназначены для создания игр и позволяют автоматизировать множество функций типа начисления энергии или подбора противников для PvP-арены. Более сложные сервисы: Firebase от Google, Azure от Microsoft и AWS от Amazon – они дешевле в обслуживании, но требуют больше времени и навыков для разработки.