Индустрия видеоигр — это не только грандиозные проекты с огромными бюджетами на разработку и маркетинг и не только крупные компании с сотнями гейм-дизайнеров, художников и программистов. В этой отрасли есть маленькие студии и даже разработчики-одиночки, которые создают независимые игры (independent games, или инди-игры).
Бывает, что деньги на инди-игры собирают на краудфандинговых платформах вроде Kickstarter или Boomstarter, но чаще это любительские проекты, которыми их создатели занимаются в свободное время без внешнего инвестирования. Сегодня расскажем, как создают такие игры, что нужно, чтобы начать их делать, и стоит ли пробовать.
Кто делает инди-игры и зачем
Чтобы создать инди-игру, не нужно нанимать сотрудников или быть senior-разработчиком. Можно работать в одиночку и учиться по ходу дела. Инди-игры делают разные люди:
- программисты;
- художники;
- писатели;
- гейм-дизайнеры;
- тестировщики;
- инженеры.
В 1985 году советский программист Алексей Пажитнов занимался проблемами искусственного интеллекта и распознаванием речи, а свои идеи обкатывал на головоломках. Среди них была пентамино, суть которой в том, чтобы собрать одну фигуру из нескольких фигурок, состоящих из пяти квадратов.
Пажитнов хотел автоматизировать игру, добавив возможность вращать фигурки. Но мощностей для вычислений не хватало, и состав фигурок пришлось упростить с пяти квадратов до четырёх. Пентамино стали тетрамино, а сама игра получила название «Тетрис».
![Алексей Пажитнов на фоне компьютера с первым «Тетрисом»](https://thecode.media/wp-content/uploads/2024/07/unnamed-24-1.png)
Разработка игры Алексея имела прикладной характер для его работы. Но причины и мотивация делать инди-игры бывают самыми разными:
- заработать денег и славы;
- изучить новые технологии и устроиться в крупную геймдев-компанию;
- посмотреть на процесс создания игры изнутри и выбрать какое-то направление для углублённого развития;
- завести хобби;
- просто сделать игру, потому что всегда хотелось.
Шведский программист Маркус Перссон хотел переделать любимую игру и обязательно реализовать в ней концепции свободы действий и строительства. В 2009 году он разместил тестовую версию на одном форуме инди-разработчиков, и проект почти сразу заметили.
Уже через год, в 2010-м, Перссон с друзьями создали студию, которая продолжает заниматься разработкой игры даже после того, как её купила компания Microsoft. Сегодня практически все знают результат их работы — игру Minecraft, самую продаваемую в мире.
![Майнкрафт — живая классика компьютерных игр](https://thecode.media/wp-content/uploads/2024/07/unnamed-25-1.png)
Дальнейшее развитие «Тетриса» и Minecraft после создания первых успешных версий происходило по-разному. Для инди-игр это нормально, процесс разработки различается у каждого создателя-одиночки или студии. Но мы постараемся описать общую картину — какие бывают этапы разработки инди-игр и что нужно делать на каждом.
Ведение проектной документации
Инди-разработчик должен где-то вести учёт всего, что происходит с его проектом. Этот документ называется GDD (Game Design Document). Его можно вести в бумажном блокноте, Яндекс-документах, Notion, таск-трекере или любом другом удобном сервисе:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/unnamed-1.gif)
GDD выполняет 3 важные задачи:
- Сохраняет информацию. В него записывают все идеи, планы, новые функции в проекте, проблемы и их решения.
- Передаёт информацию. Тогда к проекту проще подключить нового человека и объяснить как всё устроено.
- Позволяет посмотреть на игру со стороны. Если просто задокументировать все идеи и посмотреть, как они работают в тексте или на схемах, можно увидеть нестыковки и просто ненужные части.
Выбор движка
Современные компьютерные игры состоят из сюжета, картинки и геймплея. Все эти части собираются в одной среде разработки, или игровом движке. Движок описывает игровые механики, физику предметов, графику.
Крупные компании пишут для своих игр специальные отдельные движки с нужными функциями. Инди-разработчики делают по-другому: набрасывают дизайн игры и выбирают подходящий готовый движок из тех, что есть, чаще всего из этих трёх:
- Unity,
- Unreal Engine,
- Godot.
У каждого из них свои особенности, разберём их по порядку.
Популярность. Ещё недавно Unity лидировал: он универсальный, в меру сложный, в нём много расширений, продуманная физика, его чаще используют небольшие игровые студии. Но с 2019 года руководство Unity Technologies приняло несколько решений, которые не понравились большинству разработчиков. В результате многие перешли на Unreal и Godot.
Сегодня по всем трём движкам достаточно информации, документации и уроков, чтобы при разработке найти ответ практически на любой вопрос. Но больше всего материалов всё-таки по Unity.
Возможности и мощности. Все три движка поддерживают 2D и 3D, и, если создавать игру в одиночку, для этого хватит возможностей любого из этих движков. Разница начинается, когда хочется сделать что-то сложное.
Самый простой из движков — Godot. Для него меньше наборов готовых решений и возможностей для реализации красивой 3D-графики. Поэтому на Godot чаще всего делают простые платформеры в 2D или игры в псевдо-3D. Один из примеров игр на движке Godot — Cassette Beasts:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/unnamed21-ezgif.com-optimize.gif)
На Unity можно делать всё. Большинство инди-игр создаются одним или несколькими людьми, поэтому в основном тут тоже делают что-то относительно простое. Но красивых игр на Unity больше, даже если это 2D-платформер. Один из примеров игр на Unity — Aerial_Knight’s Never Yield:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/image14-ezgif.com-optimize.gif)
На Unity можно делать и 3D-игры, если есть время или команда и движок позволяет. The Architect: Paris — прекрасный пример:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/image6-ezgif.com-optimize.gif)
Unreal Engine — самый сложный и самый мощный движок из тройки популярных. Его используют в больших компаниях, на нём можно сделать крутую высокобюджетную 3D-игру разряда AAA. Например, Black Myth: Wukong:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/unnamed-ezgif.com-optimize.gif)
Вот что творит сейчас UE5, самая последняя версия игрового движка. Иногда картинка кажется настолько фотореалистичной, что сложно поверить, что это игра. Но в одного потянуть такую разработку очень сложно:
Сложность и знание программирования. В Godot всё игровое взаимодействие построено на собственном языке программирования GDScript. Это высокоуровневый объектно-ориентированный ЯП. В справочнике по Godot написано, что он не основан на Python, но они очень похожи. Вот пример кода на GDScript для обновления цвета пикселей на картинке:
for x in range(width):
for y in range(height):
set_color(x, y, some_color)
Unity использует фреймворк языка C#. Он работает с уже готовыми конструкциями специально для создания игр: классами, методами, функциями. А всё стандартное — переменные, циклы, условия — осталось как в обычном C#. В документации и уроках по Unity используется C#, поэтому для разработки понадобится он. Получается так, что при разработке нужно параллельно работать в графическом редакторе игровых сцен и описывать в редакторе кода, как всё работает:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/unnamed-1-1.gif)
Unreal написан на C++, и если в игре нужно создать что-то нестандартное, знание этого языка пригодится. В идеале нужно и понимать Blueprints, и уметь немного писать на C++. Игровая логика в Unreal настраивается в визуальном редакторе Blueprints. Это выглядит как навороченный графический редактор вроде Photoshop или Figma:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/unnamed-1.png)
Платность. Все три движка бесплатны для использования. Но если написанные на Unity и Unreal игры начинают приносить доход выше установленной суммы, нужно будет заплатить процент от продаж компаниям — разработчикам движков.
Как выбрать. На любом из этих движков можно создать несложную красивую инди-игру — такую, как большинство инди-игр. Поэтому, если хотите сделать что-то своё, стоит сделать так:
- установить все движки;
- посмотреть несколько уроков по каждому и немного поработать во всех трёх;
- выбрать тот, который больше нравится.
Тем, кто серьёзно хочет стать профессиональным инди-разработчиком, стоит выбрать один вариант и развиваться в нём.
Если хотите увидеть, как выглядят игры на разных движках, посмотрите видео с короткими подборками самых зрелищных из них:
Наполнение игры готовыми материалами
В больших компаниях игру делают разные специалисты: художники, моделлеры, разработчики, музыканты. Начинающие разработчики иногда думают, что при создании своей игры нужно делать всё с нуля. Но это нереально: совмещать в себе художника, разработчика, музыканта и писателя способен один человек из миллиона.
В инди-разработке часто всё делает один специалист, которому лучше всего удаётся что-то одно, или небольшая команда. Для всего остального можно взять ассеты. Это такие же готовые решения, как те, которыми мы пользуемся каждый день. Например, в разработке есть фреймворки и библиотеки — это наборы готовых решений кода. В музыке есть сэмплы — небольшие фрагменты, которые можно использовать в своих композициях.
Даже если игра большей частью состоит из ассетов, это не значит, что она плохая и не может передать задуманную разработчиком идею. Можно взять готовые решения и сделать из них что-то своё, и это никак не помешает игре быть хорошей и популярной, зато сэкономит время и деньги:
![Наполнение игры готовыми материалами](https://thecode.media/wp-content/uploads/2024/07/unnamed2-ezgif.com-optimize.gif)
С несколькими наборами можно создать и окружение для игры, и персонажей, и звуковое сопровождение. Вот такой парк можно создать с готовым набором 3D-ассетов за 20 долларов в магазине Unity AssetStore:
![Наполнение игры готовыми материалами](https://thecode.media/wp-content/uploads/2024/07/unnamed-2-1.png)
В этот набор входят:
- 7 сосен и 6 клёнов;
- 10 брёвен и пеньков, 5 кустов, 8 веток и сосновых шишек;
- 2 заледеневших озера и 4 водопада;
- настраиваемые цвета деревьев и анимация при ветре;
- частицы тумана и снега для создания;
- облака и северное сияние;
- ещё 50 объектов, текстур и шейдеров.
Создание 2D- и 3D-графики
Самые распространённые 2D-редакторы для рисования — Photoshop, Krita и SAI Paint Tool. Photoshop — платный и доступен по подписке, для него есть много расширений и дополнений. Krita и SAI Paint Tool полностью бесплатные и чуть менее требовательны к железу. Для них создано не так много расширений, но рисовать это не мешает. SAI Paint Tool доступен только для Windows-систем.
В целом все они выглядят почти одинаково, поэтому разница только в индивидуальных предпочтениях и цене.
![Создание 2D- и 3D-графики](https://thecode.media/wp-content/uploads/2024/07/unnamed-3-1.png)
Для 3D в крупных индустриях стандартами считаются Maya и 3dsMax. Это большие и сложные программы с огромным количеством возможностей.
Для инди-разработки достаточно редактора Blender — он бесплатный, много умеет, по нему достаточно обучающих материалов.
![Создание 2D- и 3D-графики](https://thecode.media/wp-content/uploads/2024/07/unnamed-4-1.png)
Знать основы визуальных редакторов полезно всем, кто делает инди-игры. Тогда можно взять готовый ассет и немного изменить его под свою идею.
Ещё один важный инструмент для графики — это нейросети. Готовый для использования ассет нейросети пока создать не могут, но могут натолкнуть на идею или дать какое-то готовое решение, например по цветовой палитре.
Запись звука
Если не брать в расчёт программы для профессиональных музыкантов, для разработки хватит редактора Audacity. Ему 23 года, и за это время интерфейс как будто не изменился:
![Запись звука](https://thecode.media/wp-content/uploads/2024/07/unnamed-1.jpg)
Маркетинг
Мы рассказываем про маркетинг в конце и немного, потому что у нас журнал про технологии. Но на самом деле это первый инструмент инди-разработчика, потому что если про игру не рассказывать или рассказывать плохо, то её никто не купит. Иногда это неважно, а иногда важно.
Что можно делать для продвижения игры:
- собрать сообщество в Discord, создать каналы в соцсетях и на YouTube;
- выкладывать трейлеры, скриншоты и новости о рабочем процессе;
- запустить кампанию по сбору средств и что-то пообещать всем, кто вложится в игру: мерч, исходники материалов или копию игры в коробке и с автографом создателей.
Так выглядит канал разработчика Гэвина Айзенбайса, разработчика хоррора Choo Choo Charles. До выхода игры новое видео появлялось минимум раз в месяц:
![Как делают инди-игры](https://thecode.media/wp-content/uploads/2024/07/unnamed-5-1.png)
Как начать
Впервые делающий инди-игру человек не знает своих сильных сторон. Поэтому первоначальный план прост:
- установить на компьютер движки Godot, Unity и Unreal;
- попробовать работать с каждым и в итоге оставить один;
- посмотреть несколько видео, где делают небольшие игровые проекты с нуля;
- выбрать несколько простых игр и попробовать повторить их, чтобы разобраться в основных механиках и научиться решать несложные задачи;
- сделать максимально простую игру за 1–3 месяца.
Если вы дойдёте до конца этого списка, то будете знать, что вам нравится делать, что у вас получается и что вы можете сделать. После этого можно браться за первый небольшой проект.
Почему большинство инди-разработчиков не заканчивают проекты и не зарабатывают деньги
В инди-разработке один человек должен принимать тысячи решений, на каждом из которых что-то может пойти не так. Даже в проектной документации иногда сложно описать всё правильно. Нужно быть внимательным и уделять время каждому этапу создания игры:
- считать потраченные деньги и понимать, когда лучше работать самостоятельно, а когда взять готовый ассет;
- изучать авторские права на то, что используется в игре;
- делать игру в одной стилистике;
- принимать деловые решения и стараться делать игры, в которых разбираетесь;
- стараться строить сообщество и рассказывать о своей игре, чтобы появились потенциальные покупатели.
А ещё важно не пытаться сразу сделать классную игру. Первый проект, скорее всего, закончится провалом просто потому, что у вас пока мало опыта.
Так стоит или нет?
Если вы всегда хотели сделать свою игру, обязательно нужно попробовать. Возможно, с инди-играми и не получится, но это будет хороший опыт для любой другой будущей карьеры в IT. Например, знание Unity или Unreal Engine будет сильным преимуществом, если пойдёте устраиваться в компанию по разработке игр.
А если всё получится, то будет работа, которую вы всегда хотели.