Pull to refresh

Набор инструментов инди-разработчика игр

Reading time7 min
Views19K
Доброго времени суток, начинающие игроделы!

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


Внимание: данный пост не рекламный, это лишь список программ, которые помогают мне в моих проектах.

Когда я задумался о разработке игры, передо мной встал ряд вопросов, а именно:

  • какой движок использовать;
  • в какой программе писать код;
  • в какой программе моделировать;
  • в какой программе рисовать;
  • в какой программе писать музыку;
  • стоимость продуктов;
  • и т.п.

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

Игровой движок




Для любой игры необходим игровой движок. Игровой движок, это сердце нашей игры, в нем мы концентрируем все наши идеи, прорабатываем логику игры и взаимодействие игровых объектов, поэтому, от удобства игрового движка зависит скорость разработки.

Рынок игровых движков наполнен множеством вариантов. Есть движки которые рассчитаны только для 2D игр, а есть которые только для 3D, но на мой взгляд более универсальными вариантами считаются Unity и Unreal Engine. В них есть все инструменты для выполнения рабочего процесса, также у них есть свои достоинства и недостатки. Я попробовал оба продукта, но для текущего проекта выбрал Unity. Возможно в будущем я попробую сделать что-нибудь на Unreal Engine. Какой движок нужен вам, выбор за вами.

Скрипты





Для каждой игры необходимо написание логики взаимодействия объектов таких как управление персонажем игрока, разговор с NPC, стрельба из оружия, открытие сундука и т.п. В каждом игровом движке есть встроенные инструменты описания логики объектов (написание скриптов).
В Unreal Engine для описания логики можно использовать два инструмента такие как blueprint и C++. Редактор блюпринтов встроен в Unreal Engine, достаточно открыть его и начать расставлять и соединять ноды. На счет встроенного редактора для C++ не знаю, не смотрел, напишите в комментариях как в Unreal Engine обстоят дела со встроенным редактором C++.

В Unity вся логика описывается C# скриптом (до версии помоему 2017.2.х можно было использовать JavaScript, но теперь его выпилили и оставили только C#), для этих целей используется встроенный редактор MonoDevelop, но даже в последних версиях Unity этот редактор имеет ряд неудобств и глюков, но для написания небольших скриптов он подойдет.

Для написания скриптов также можно использовать внешний редактор такой как Visual Studio. VS Community бесплатный, имеет мощный IntelliSense и как с Unreal Engine так и Unity он очень хорошо совместим. Microsoft недавно выпустили легковесную версию Visual Studio под названием Visual Studio Code. VSCode также хорошо интегрируется в Unity, но попробовав писать в нем код, мне приходилось постоянно под себя его настраивать, это и плюс и минус, поэтому, так как я пользуюсь старшей версией VS уже около 10 лет мне в ней привычнее. Выбор за вами.

В дополнение, позволю себе отступить от темы и немного поговорить о сравнении Unity и Unreal Engine. Когда я читаю посты и смотрю видео в которых сравниваются Unity и UE, многие ставят жирный плюс UE за возможность без знания языка  программирования писать визуальный код используя Blueprint. Мои мысли по этому поводу: да, несомненно писать код расставляя прямоугольники и соединяя их, это удобно, НО изучение языка программирования такого как C++ и C# не составляет труда и сводится чаще всего только к изучению ключевых слов, синтаксиса и понятия ООП.

Когда начинаешь писать какую-либо программу или игру необходимо изучать API того или иного продукта, например когда мы пишем программу для Windows, нам необходимы функции для загрузки и сохранения файла на диск, API работы с Network и многое другое, с игровыми движками все тоже самое, необходимо изучать API. Вот и с blueprint также никуда не уйти от изучения API Unreal Engine. До начала разработки игр я писал программы и на C/C++ и C# поэтому в unity мне было проще, но когда я решил попробовать blueprint для меня это был настоящий квест с поиском в документации нужных нодов. Да и названия ключевых слов имеют отличия от стандартного языка программирования например: в C/C++/C# ветвление выполняется с помощью «if( ) else» а в blueprint нод называется «Branch», логично но не привычно. Поняв, что на изучение API UE у меня уйдет некоторое время, я отложил эту затею и вернулся к Unity. Возможно новичкам скорее всего будет проще изучать UE.

Растровые изображения




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

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

Еще одно немаловажное преимущество программ от Affinity перед Adobe это невысокая цена и одноразовый платеж без ежемесячной подписки, купил и пользуйся.
Также есть бесплатный аналог Photoshop’a, GIMP, но он мне не зашел, уж больно у него замороченный интерфейс, но для кого-то это наилучший вариант. Выбор за вами.

Кстати! Все картинки к данному посту сделаны мной в Affinity Designer.

3D моделирование




Ни одна 3D игра не обходится без 3D моделей. Нам нужны: персонажи, NPC, оружие для них, дома, закрытые коридоры, деревья, предметы окружения да и всякий мусор. Но как это все сделать? Возможно многие сразу подумают, качай 3DS Max и лепи сколько влезет, и возможно будут правы. 3DS Max и Maya это мощнейшие инструменты для 3D моделирования. С помощью них сделано множество красивейших игр и фильмов. НО мы же инди-разработчики и у нас не так много денег, а если вы загляните на страницу оформления подписки, то увидев цену, вы сразу будете искать альтернативы им. Конечно, если вы студент, то для вас есть бесплатная лицензия, но что делать если вы обычный человек, который работает на «дядю» и решил попробовать себя в разработке игр с целью в будущем получать за это кэшбэк? Здесь есть более дешевые варианты: MODO и Cinema4D в них также есть все для рабочего процесса, но у них тоже ценник кусается, но более подъемный нежели у Autodesk.

На мой взгляд, самый лучший выбор для инди-разработчика это Blender! Blender’ом я пользуюсь на постоянной основе и в нем есть все для создания игровых моделей это: полигональное моделирование, моделирования высокополигональных моделей аля zBrush, ретопология, UV развертка, рисование по модели, риггинг, анимация, запекание текстур по модели и многие полезные плюшки. Правда, когда я первый раз открыл Blender я нифига не понял как им пользоваться, пришлось смотреть обучающие видео и читать книги, благо сообщество у него огромное и на каждую мелочь можно найти туториал, после этого пальцы сами нажимают на кнопки при моделировании очередного камня или унитаза для своего проекта. Выбор за вами.

Текстуры




Итак! Вы слепили крутые модели, сделали UV развертку, анимировали, но модель получилась вся серая, а хочется чтобы у персонажа были глаза и рот, а на рубашке пуговицы. Конечно в Blender’е есть встроенный редактор рисования по модели, но он подходит только для простых моделей не требующих хорошей детализации. Обычно в LowPoly стиле так и делают, заливают грани нужным цветом и все, моделька готова.

Но как быть если нужно сделать качественную текстуру, да еще и с картой нормалей, картой затенения, картой отражения и т.п. Опять же в блендере это все можно сделать, но это не очень удобно. Нужные программы мне пришлось долго гуглить и нашел два варианта а именно: Quixel и Substance Painter. Quixel мощный инструмент для создания текстур но он идет как плагин к Photoshop и если вы, в разделе Растровые изображения данной статьи, выбрали фотошоп как основной инструмент создания спрайтов для вашей игры, то этот вариант точно для вас, но лично я выбрал пакет от Substance.

Substance Painter идет как отдельная программа в которой можно скрафтить качественные карты текстур для вашего персонажа рисуя материалами прямо по модели. В пакете с программой поставляется огромное количество заготовленных материалов таких как камень, дерево, металл, кожа, пластик. Любой материал можно изменить и настроить по вашему желанию, а также составить комбинацию материалов например: покрасить бочку краской, сделать потертости и выступы ржавчины. Но если материалов не хватает или необходимо создать свой оригинальный материал, то на помощь придет вторая программа Substance Designer в которой с помощью нодовой системы можно создать шедевр. Очень хорошей плюшкой данных программ это то, что эти программы отлично встраиваются в Unity и Unreal Engine. Создав материал какого-нибудь«золотистого бетона» просто перенесите в Unity и повесьте на объект. Также для Unity есть плагин с помощью которого можно при рисовании на модели в Substance Painter видеть все изменения на модели в игровом движке с настроенным освещением.

И еще, самая главная плюшка Substance, это возможность в Steam приобрести инди-пакет по низкой цене в который входят сразу три программы с поддержкой на год: BitmapToMaterial, Substance Painter, Substance Designer. BitmapToMaterial позволяет создать сразу несколько карт текстур из обычной растровой текстуры.

Впрочем, выбор за вами!

Музыка и звуки





Ну вот вы все сделали, нарисовали спрайты, сделали 3D модели, разукрасили их, написали логику для игры, нажали играть и …. тишина! Все работает, но ни одного звука, стрельба из автомата как в вакууме, ничего не слышно. Пришла пора создать звуки и написать классный трек ради которого будут покупать вашу игру закрывая глаза на унылый геймплей :)

Вот если со звуками еще более менее все просто, достаточно креативно что-то нащелкать в микрофон, потом в бесплатной Audacity подправить и звук стрельбы из инопланетного мега бластера готов, то с музыкой все немного сложнее. Если есть слух и желание написать свой трек, то хорошим выбором будет FL Studio. Цена у FL Studio конечно не маленькая, но реальная. Можно конечно использовать бесплатную музыку которой полным полно в сети. И как всегда, выбор за вами!

Краткий список программ используемых в данной статье


  • Игровой движок: Unity, Unreal Engine;
  • Скрипты: Visual Studio, Visual Studio Code, Встроенные средства;
  • Растровые изображения: Photoshop, Affinity Designer, Affinity Photo, GIMP;
  • 3D моделирование: Blender, 3DS Max, MODO, Cinema4D;
  • Текстуры: Quixel, Substance Painter, Substance Designer, Substance B2M;
  • Музыка и звуки: Audacity, FL Studio;

Всем спасибо, кто осилил чтиво!
Tags:
Hubs:
+1
Comments17

Articles