Для разработки даже небольшой игры может понадобиться достаточное количество различных инструментов. И современный мир встречает даже неопытного разработчика с распростертыми объятиями, стараясь облегчить ему жизнь настолько, насколько это возможно. Инструменты есть практически для всего, и единственное, чего они не могут, – это сами придумать и реализовать игру.
Так как мы рассматриваем разработку игр именно с точки зрения игрового дизайна, то начнем с главного для любого гейм-дизайнера инструмента: текстового редактора.
Для работы с текстами есть три инструмента разной сложности и распространенности.
• Программы типа Word, входящего в пакет MS Office, и его аналоги для работы с файлами, хранящимися на компьютере. Этого вполне достаточно при работе над игрой в одиночку, но надо помнить, что хранить файлы на компьютере небезопасно. Компьютер может сломаться и уничтожить труд всей жизни. Документация игры – это сложная структура, описывающая множество переплетенных друг с другом объектов, и работать с этой структурой в рамках одного или нескольких отдельных файлов может быть не очень комфортно.
• Сервисы типа Office 365 и Google Drive позволяют работать с файлами онлайн. Это удобно для работы в небольшой команде и позволяет иметь доступ к файлам в любое время с любого устройства, а также безопасно по сравнению с хранением файлов на своем компьютере. Но это также несет некоторые риски: требует подключения к интернету и ставит в зависимость от аккаунта в сервисе, который может стать по тем или иным причинам недоступным.
• Бизнес-приложения, предназначенные для отдельного ведения документации, или являющиеся частью более сложного комплекса сервисов. К первым относятся такие сервисы, как Notion и Confluence, – эти сервисы позволяют вести документацию в структуре, похожей на «Википедию». Есть также бесплатные сервисы для этого. Подобная структура значительно удобнее работы с отдельными файлами. Она позволяет создавать автоматические шаблоны разделов и ссылки внутри документов, а также часто имеет более глубокую интеграцию с сервисами, предназначенными для менеджмента проектов.
• К более сложным комплексам относятся сервисы типа GitHub или Azure, которые предназначены скорее для работы с программным кодом, чем с документацией, но тем не менее позволяют эту документацию вести. К особым преимуществам бизнес-приложений относится совершенно другой уровень безопасности. Некоторые сервисы можно самостоятельно запустить на собственном сервере, например расположенном в офисе, ограничив доступ к данным компьютерами, находящимися в офисной сети.
Единственным серьезным недостатком бизнес-приложений является то, что они крайне редко имеют достаточно развитый редактор таблиц уровня Excel (для работы с локальными файлами) или Google Sheets (для работы с файлами онлайн). Без табличного редактора практически невозможно ни рассчитывать баланс, ни хранить характеристики предметов. К сожалению, из-за этого недостатка часто необходимо вести работу с несколькими различными программами и сервисами одновременно.
Очень важной частью работы над документацией является создание различных схем – визуализация алгоритмов. И для этих целей могут использоваться как встроенные в текстовый редактор инструменты рисования, так и внешние. В профессиональном пакете MS Office есть программа Visio, а в комплексе Google Drive доступен сервис Diagrams.net.

Системы менеджмента довольно тесно переплетены с сервисами ведения документации. Эти системы могут значительно отличаться по возможностям и целям.
• Trello – лишь один из множества, но необычайно популярный сервис для управления проектами по методике SCRUM или KANBAN. Он позволяет работать с доской, на которой можно наблюдать за статусом тех или иных задач, находящихся в разработке. Сама система Trello позволяет делать любые доски, распределяя задачи по приоритетности, типу, исполнителю и т. п.
• К более сложным системам относятся такие сервисы, как Asana и Jira. Они позволяют провести разделение на отдельные проекты внутри одного аккаунта, а также вести более сложную структуру работы с отдельными задачами. Начиная с объединения отдельных задач в группы пользовательских историй и фичей (например, задача создания монстра, для которой требуется работа дизайнера, художника и программиста) и заканчивая созданием собственных пайплайнов внутри сервиса (мы можем настроить автоматическую передачу задачи в тестирование при ее завершении или автоматическую передачу персонажа художнику по текстурам после завершения работы над моделью). В этом случае возможности контроля и автоматизации процессов на проекте практически бесконечны. Более того, Jira имеет прямую интеграцию с сервисом Confluence, так как они являются частью одной экосистемы.
При работе в компании есть сотрудник, ответственный за менеджмент проекта, но, если работать в одиночку, этим придется заниматься самостоятельно. Это необычайно сложно, ведь придется перенести все задачи из документации в отдельный сервис и поддерживать его в актуальном состоянии. Но в то же время это и необычайно важно – только так есть возможность объективно понимать, насколько проект готов и сколько еще осталось сделать. При этом выполнение маленьких задач позволяет чаще радоваться пусть и небольшим, но достижениям, ведь работа, не приносящая радости, может быстро надоесть.
Вопрос движка – самый сложный из всех в индустрии цифровых развлечений. Кетчуп или майонез? Кошки или собаки? Unity 3D или Unreal Engine?
Фаворитами гонки игровых движков на сегодняшний день являются Unity 3D и Unreal Engine. Традиционно считается, что первый выбирают инди-разработчики и те, кто собирается делать игру для мобильных устройств. Второй же считается выбором художников и тех, кто собирается делать игру для PC и консолей. Хотя и на Unity 3D делают игры для PC и консолей, и Unreal Engine используют инди-разработчики.
В современном мире огромное множество движков. Некоторые из них имеют специфические ограничения. Какие-то движки изначально стоят баснословных денег, другие предназначены для создания только 2D-игр. Есть Game Maker, Godot и даже RPG Maker, предназначенный исключительно для создания классических 2D ролевых игр. Многие компании в итоге приходят к разработке собственных движков, которые потом становятся открыто доступны другим разработчикам, как Defold, созданный компанией King, прославившейся своими играми в жанре match-3. Но, конечно же, на этом движке можно делать не только match-3-игры.
При выборе движка нужно прежде всего исходить из наших знаний и навыков: опыт в программировании, дизайне уровней, скриптовании, создании собственных инструментов под движок и т. п. Изучение нового движка и получение новых навыков требуют много времени, которое можно потратить на создание новой игры. Не говоря уже о том, что для выпуска игры может понадобиться довольно глубокое знание возможностей движка, для чего необходим многолетний опыт работы с ним.
Если же у нас вообще нет опыта работы с каким-либо игровым движком, нет опыта в программировании или дизайне уровней, то, наверное, лучше всего будет уделить время самым популярным движкам и пройти пару уроков для начинающих на учебных порталах, чтобы в итоге выбрать тот, который покажется наиболее удобным, ведь нам в этом движке еще работать и работать.

Для написания кода программ так же, как и для создания документации, необходима специальная программа – среда разработки (Integrated Development Environment, IDE). Тут выбор не такой большой, как среди других сервисов, но он может серьезно повлиять на работоспособность, так как каждая среда разработки имеет особенности, свой набор подсказок, автогенерацию программного кода, набор горячих клавиш.
• Visual Studio – среда разработки от компании Microsoft, поддерживающая работу со всеми распространенными языками программирования. Существует бесплатная версия, имеющая некоторые ограничения.
• VS Code – тоже среда разработки от компании Microsoft, имеющая широкую поддержку дополнений, позволяющих работать со множеством языков программирования для множества игровых движков. VS Code бесплатный.
• Программы от компании Jet Brains имеют отдельные IDE для разных языков программирования, а также надстройки для Visual Studio. Не имеют бесплатных версий.
• Xcode – среда разработки компании Apple, которая предоставляет инструменты для создания приложений для устройств и операционных систем компании Apple. Она платная и запускается только на компьютерах с OS X.
Microsoft – это одна из самых влиятельных мировых IT-компаний и один из лидеров по созданию программного обеспечения, компьютеров и аксессуаров к ним, консолей, мобильных телефонов, разработке и изданию видеоигр. Одно из главных ее достижений – создание операционной системы Windows. Компания основана в 1975 году Биллом Гейтсом и Полом Алленом, когда они занялись разработкой интерпретатора языка BASIC для компьютера Altair 8800. Это был лишь старт, а триумфальное шествие началось с сотрудничества с IBM в 1981 году. В 1983 году Аллен покинул компанию. В то же время была представлена компьютерная мышь Microsoft Mouse для работы с текстовым редактором Word. В 1984 году появился один из знаковых продуктов – интерфейс Windows, оболочка для MS-DOS, а уже к 1989 году был укомплектован пакет приложений программ MS Office, включающий, помимо Word, еще и Excel, и PowerPoint. Теперь без Windows сложно представить себе работу на компьютере. Там есть и встроенные казуальные игры: «Солитер», «Косынка», «Паук», «Червы», «Сапер», «Свободная ячейка», «Пинбол» и другие.
В игровой индустрии Microsoft в данный момент занимает одну из лидирующих позиций. Компания создала семейство игровых приставок Xbox, владеет собственной студией разработки Microsoft Game Studio, а также издает многочисленные эксклюзивы для своих платформ. В 2014 году корпорация поглотила компанию Mojang, разработчика Minecraft, в 2018 году купила сервис, облегчающий разработку многопользовательских игр PlayFab, а также сервис для хранения исходного кода и совместной разработки GitHub.
Число игр, разработанных и изданных Microsoft, огромно, вот только некоторые знаменитые тайтлы: серии игр Age of Empires, Close Combat, Microsoft Flight Simulator, Monster Truck Madness, Project Gotham Racing, Fable, MechAssault, Forza Motorsport, Jade Empire, Alan Wake, Ori, ReCore, Quantum Break, Halo и другие.
Как и в других областях, для программистов необычайно важны удобство и привычки. Но в отличие от других инструментов, инструменты программистов практически не зависят ни от языка программирования, ни от игрового движка, для которого они будут писать код.
Для создания и проверки математических моделей можно использовать два типа инструментов: таблицы и программы.
• Табличные редакторы – это привычные нам Excel (входящий в комплект MS Office) и Google Sheets (входящий в комплект Google Drive). В основе табличных редакторов находится система формул, которая позволяет генерировать, масштабировать и распределять данные в удобном для работы виде.
• Программы – это либо разработанные специально для нашей игры алгоритмы, позволяющие проверить или создать математическую модель, либо сервисы, позволяющие создавать алгоритмы управления ресурсами: например, сервис Machinations.io.
Собственных инструментов для дизайна интерфейсов у разработчиков игр нет, но можно использовать инструменты, созданные для дизайнеров мобильных приложений и веб-сайтов.
Эти инструменты позволяют не только создать макет интерфейса приложения или игры, но и собрать небольшое демо того, как этот интерфейс будет работать. Это демо можно использовать как интерактивную подсказку для художников и программистов, а также для исследования пользовательского опыта еще до того, как программисты приступят к реализации интерфейсов.
• Среди отдельных программ можно отметить 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 – они дешевле в обслуживании, но требуют больше времени и навыков для разработки.
Аналитические и рекламные сервисы являются одними из самых развитых сервисов, связанных с разработкой игр, благодаря росту рынка мобильных игр, которым свойственны одновременно рекламная монетизация и короткие итерации разработки, позволяющие тоньше анализировать влияние обновлений на игровые показатели. Конечно, аналитические сервисы можно подключать не только к мобильным играм, но и к играм для PC и консолей.
Самые крупные компании часто предоставляют и сервис-аналитики, и сервис-рекламы, так как аналитика помогает этим компаниям лучше работать с рекламой. Подобное сочетание есть и у Google, и у Facebook. Также собственные сервисы аналитики и рекламы есть у движка Unity 3D. Но есть множество сервисов, предоставляющих либо аналитику, либо рекламу. У всех есть преимущества и недостатки.12
Эта проблема в большей степени относится к разработчикам-одиночкам, чем к студиям. Тем не менее вопрос источника материалов – ассетов персонажей, интерьеров, анимаций и даже программного кода – стоит очень остро для многих разработчиков.
Одним из главных преимуществ современных движков типа Unity 3D и Unreal Engine являются магазины ассетов к этим движкам. Там можно найти почти все что угодно: модели, анимации, звуки, готовые системы и проекты, позволяющие без написания дополнительного кода создать игру. Также хорошим источником ассетов является сервис Humble Bundle, где продающиеся ассеты обычно не привязаны к какому-либо игровому движку.
У компании Adobe есть сервис Mixamo, который можно использовать как источник анимаций.
В интернете есть ответы практически на все вопросы. Движки Unity 3D и Unreal Engine имеют довольно развитые учебные центры, позволяющие познакомиться с движком при нулевом опыте работы с ними или развить свои знания в различных областях работы с движком.
Практически все социальные сети и мессенджеры имеют группы, посвященные той или иной области разработки игр: начиная все с той же работы с движками и заканчивая дизайном игр в определенных жанрах и стилях. В этих группах и чатах можно не только задавать вопросы, но и искать единомышленников и помощников.
Есть множество учебных сервисов, которые имеют курсы, посвященные движкам и отдельным областям разработки игр: дизайну, графике, менеджменту.