bannerbannerbanner
Сделай видеоигру один и не свихнись

Слава Грис
Сделай видеоигру один и не свихнись

Полная версия

5. Чужой среди своих

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

У меня для вас есть две новости: плохая и хорошая. Плохая новость заключается в том, что человеку, с которым вы начнете беседу на сходке, будет плевать на то, чем вы занимаетесь, даже если за плечами у вас что-то воистину выдающееся. Хорошая новость заключается в выводах из плохой новости: если вы ничего не умеете, никому не будет до этого дела, а значит, вам нечего стесняться своего статуса «новичка».

Разработчики – точно такие же люди, и для каждого из людей самым важным и интересным является одна-единственная вещь – он сам. Каким бы неудачником или мастером вы бы ни были, вашему новому знакомому будет всегда интереснее говорить о себе, а не о вас.

Чтобы показаться отличным собеседником, вам достаточно просто внимательно слушать. Я часто начинаю знакомство на сходке с фразы «привет, а чем ты занимаешься?» В ответ я получаю «я 3D-моделлер», «я музыкант» или «я дизайнер уровней». Это уже дает возможность продолжить беседу, задавая дополнительные вопросы о том, где человек работает, как он научился тому, что умеет, и к каким проектам приложил руку.

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

Не стоит бояться, что в ответ на встречный вопрос «а ты чем занимаешься?» вам будет нечего ответить. Я часто встречаю на сходках людей, которые просто приглядываются к индустрии, но еще в ней не работают, и я ни разу не видел, как их кто-то унизил за стремление к знаниям.

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

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

Его пример вдохновляет: в истории этого парня я вижу возможность двигаться вперед без устали и менять свою жизнь согласно собственным желаниям. Помнить такое – это очень вдохновляет. И теперь вы знаете, где и у вас есть возможность приобрести запас вдохновения и заработать новое убеждение. Убеждение, что вы способны делать игры.

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

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

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

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

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

Чтобы сохранить в памяти все услышанное в такой обстановке, не нужно даже особо напрягать мозг. Во-первых, имея в своем распоряжении множество различных маркеров для запоминания, мозг растаскает текст лекций по бóльшему количеству ассоциативных цепочек. Во-вторых, у нас у всех есть еще одна интересная особенность: память человека работает лучше, если он обладает осознанием, что не сможет в любой момент вернуться к этому материалу. Вернуться к лекции в Интернете можно, казалось бы, когда захочется, и мозг сам принимает решение не фиксировать подавляющую часть информации. А вот отмотать время назад и попасть на лекцию, которую вы слушали вживую, – уже невозможно. Мозг воспринимает такую лекцию как «ускользающую» информацию.

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

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

Видео в Сети хороши только в том случае, если вы примените полученные знания здесь и сейчас. В ином случае доклад от местного разработчика мобильных приложений окажется куда полезнее, чем многочасовая лекция с YouTube-канала Game Developer Conference.

Не стоит оставлять без внимания и тот факт, что опыт местного разработчика будет проще применить в собственном проекте. Я слушал про разработку ААА-игр с многомиллионными бюджетами, и это было интересно. Но к чему мне знания о том, как потратить миллион долларов на целый штат сотрудников и выдать целое «ничего», с которым придется клянчить еще миллион долларов у инвесторов? Я не собираюсь таким заниматься!

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

6. Наши помощники в 3D

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

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

Так, например, крупные студии пользуются обеспечением Anima – оно позволяет создавать толпу управляемых компьютером персонажей, которые будут имитировать настоящую жизнь: прогуливаться по городу, останавливаться, чтобы поболтать, сидеть на скамейках и реагировать на неожиданные вещи. Вы думали, что создатели необъятных открытых игровых миров, где живут сотни NPC, писали код для каждого из них самостоятельно? Как бы не так – это была Anima или подобное ей программное обеспечение.

Но речь идет не о таких серьезных и дорогих решениях, а о чем-то попроще.

Если вы собрались делать игру в 3D, то вашим верным другом станет Blender – он могуч, он бесплатен, в нем создаются невероятные вещи, а самое главное – на Blender можно установить колоссальное количество дополнений, расширяющих функционал этой программы. Так, например, многим может пригодиться MB-Lab – дополнение, позволяющее генерировать людей. Вам не придется прорабатывать каждый полигон человеческого лица и возиться с его «скелетом». Работа в MB-Lab больше напомнит создание персонажа в компьютерной игре, где в нашем распоряжении находятся различные ползунки для регулирования веса персонажа, его возраста и оттенка кожи. Отдельные программы, которые помогут вам сделать 3D-модель человека со всеми костями, – это MakeHuman или Mixamo Fuse; они представляют собой куда менее перегруженное ПО, нежели Blender, но и дальше работы с гуманоидоподобными сущностями вы в них на данный момент не продвинетесь.

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

 

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

Для того чтобы ваш персонаж двигался воистину впечатляюще, пускал молнии, огненные шары, а каждый его шаг поднимал в воздух столбы пыли – можно использовать Effekseer. Эта программа являет собой редактор частиц, а ведь именно с помощью частиц проще всего создать подобные визуальные эффекты (рис. 6).

Рис. 6

При создании этой модели скульптор не использовал отдельные полигоны для каждого камешка. Это просто куб с наложенной на него PBR-текстурой


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

Бесплатными помощниками в деле создания текстур могут стать такие программы, как Laigter, ArmorPaint, Materialize Image To Material Tool и Quixel Mixer. В этих приложениях вы сможете создать PBR-текстуры – они имитируют реально существующие материалы вроде камня, дерева, травы и т. п. Сколы на камнях, отдельные куски коры на деревьях или складки на статичных тканях не всегда в видеоиграх являются действительно многополигональными объектами. Иллюзию высокой степени детализации им создают именно PBR-текстуры.

Но что делать, если желания учиться моделировать и рисовать текстуры нет, а игры делать очень хочется? В наши дни даже это не означает, что двери в чудесный мир разработчиков игр для вас закрыты: существуют различные онлайн-магазины, именуемые маркетплейсами. Там вы можете купить ассеты – наборы различных уже смоделированных объектов, которые можно использовать в своей игре.

Ассет может включать в себя, например, десятки 3D-объектов на определенную тематику: бар, детская площадка, средневековая деревня. Если автор ассета указывает, что он не против использования этого ассета в коммерческих целях другими людьми, то вместо того чтобы моделировать целую деревню, вы можете ее просто купить на таких ресурсах, как Unity Asset Store, Envato, 3dmodelhaven или Unreal Marketplace.

Вы ошиблись, если вы подумали, что есть всего два варианта для создания 3D-игры – или сделать модели самостоятельно, или купить модели за деньги. Третий вариант заключается в том, чтобы пользоваться ассетами бесплатно. На Unreal Marketplace каждый месяц раздается весьма внушительный набор ассетов на самые разные темы и в самых разных стилях. Средняя цена всего раздаваемого набора в любое другое время составляет от 25 до 50 тысяч рублей, а в момент акции вам достаточно просто скачать то, что вам предлагают в этом месяце.

Более того, вы можете просто установить в поиске галочку FREE в разделе «цена» и выбрать что-нибудь из выложенных в общий доступ ассетов. Есть ресурсы, на которых вас вообще круглые сутки ждут бесплатные наборы 3D-объектов: Oyonale, Turbosquid и CGTrader.

Если вам кажется, что игра, созданная с использованием ассетов, всегда будет высмеяна игроками, то посмотрите на игру Bright Memory и почитайте отзывы к ней. Это проект, созданный одним человеком, который ни разу в жизни не занимался моделированием. Все, что вы видите, – это комбинация скачанных и купленных ассетов. Игрокам нет никакого дела до того, кто сделал 3D-модель главной героини или, например, нарисовал горы на заднем плане. Даже крупные студии используют собственные ассеты из проекта в проект. Так, например, в Red Dead Redemption 2 вы сможете найти точно такие же деревья, которые вы видели в GTA V.

Создателем 3D-моделей также на помощь могут прийти быстро развивающиеся нейросети вроде Instant NeRF от Nvidia, которая способна превращать в 3D-объекты целые улицы из реального мира путем обработки сотен фотографий. RealityScan от Epic Games позволит вам с помощью камеры мобильного телефона «сканировать» в 3D любой попавшийся под руку объект – достаточно будет побегать вокруг него, записывая видео или делая фотографии. Разумеется, нейросети сделают работу весьма грязно и неаккуратно, но кому-то подправить детали и заняться ретопом (уменьшение количества полигонов) будет куда проще, чем моделировать все с нуля.

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

7. Наши помощники в 2D

Если вам, как и мне, 3D неинтересно и чуждо, а свой путь к успеху вы планируете проложить плоскими спрайтами вместо трехмерных фигурок, то встанет вполне резонный вопрос: в какой же программе начинать творить?

Самой раскрученной программой для рисования является Photoshop, но его цена словно устанавливалась с одной простой целью – отпугнуть новичков. Поиск бесплатного аналога может привести вас к программе GIMP, которую, опять же с помощью бесплатных плагинов, можно вполне развить до точно такого же функционала, которым хвастается Photoshop. Помимо GIMP я рекомендую обратить внимание на программу Krita, примеры анимации в которой я советую вам посмотреть на YouTube: эти работы у многих вызывают восторженный душевный трепет.

Krita и GIMP прекрасно годятся для создания растровых изображений. Растровое изображение – это файл, представляющий собой мозаику из цветных пикселей (самых маленьких точек, которые может отобразить ваш экран). Откройте фотографию вашего товарища в VK, сделайте свой собственный снимок или нарисуйте и сохраните что-нибудь в Paint – перед вами предстанет «растровое» изображение.

О смену размера картинок обжигаются многие начинающие разработчики, которые не могут определиться с тем, в каком же размере и формате им рисовать объекты для своей игры. Чтобы не обжечься о «мыльные» рисунки, я могу дать весьма точную рекомендацию. Для начала выберите, в каком максимальном разрешении вы хотели бы видеть свою игру. Я бы рекомендовал адаптировать всю графику под fHD – т. е. рисовать все объекты под размер экрана 1920 × 1080 точек. Но тут возникнет проблема, свойственная растру: взгляните, например, на Fearmonium (рис. 7).


Рис. 7

Fearmonium, Slava Gris, 2021 год


Высота моего персонажа – 167 пикселей. Если вы создадите в GIMP или Krita холст высотой 167 пикселей, то в попытке прорисовать мелкие детали вы сможете изобразить только неразборчивую кашу. Несмотря на то что в игре этот персонаж присутствует как объект высотой в 167 пикселей, нарисован он был в размере, куда более высоком.

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

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

Для Catmaze я выбрал разрешение 480 × 270 пикселей. Вся игра рисовалась под этот размер без всяких уменьшений и увеличений: главный персонаж, Алеста, заняла всего 44 пикселя в высоту (рис. 8).


Рис. 8

Спрайт Алесты из Catmaze высотой в 44 пикселя


Для рисования я использовал всего один инструмент – «карандаш» с твердыми краями и размером 1 пиксель. Каждый «квадратик» на этой картинке был кликом мышки. Когда вы видите один экран Catmaze – вы видите приблизительно 129 600 кликов мышкой.

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

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

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

Если же вам принципиально, чтобы решение было бесплатным, можно посмотреть в сторону того же GIMP или же GraphicsGale – обе эти утилиты предоставят вам необходимый для нашей работы инструментарий.

Но для 2D-графики у нас остается еще и третье решение – забытое, игнорируемое, но не менее интересное, чем растровая графика или пиксель-арт. Я говорю про вектор! Я не предлагаю делать вам Flash-игры, потому что эта технология уже нигде не поддерживается, речь идет об использовании редакторов векторной графики с целью создания растровых изображений. Процесс этот выглядит так: вы рисуете что-либо в векторе, а экспортируете уже в. png (один из форматов для растровых картинок) и в таком виде добавляете в игру.

В векторных редакторах изображение состоит не из пикселей, а из математических формул. Главным плюсом такой структуры является то, что, пока вы не отрендерели изображение (не нажали «сохранить как. png») вы можете манипулировать размером картинки как угодно – на качестве рисунка это не скажется никаким образом (рис. 9).


Рис. 9

Сильно приближенное растровое изображение vs сильно приближенный рисунок того же размера, но в векторе


Современное привлекательное платное решение для вектора предоставляет Adobe Animate, а бесплатное – программа Inkscape. Плюсом работы в векторе является возможность рисовать мышкой и не чувствовать себя сумасшедшим: мы размещаем на холсте прямую линию, а затем с помощью курсора «гнем» ее в выбранных местах. Таким образом, линия всегда остается аккуратной, а не «дрожащей», как штрихи мышкой, выполненные в Photoshop.

Недостатком векторной графики является огромная трудность в создании переходов между цветами или рисовании нечетких контуров: вектор не подразумевает наличия «мыла», тут нет мягких кистей, а использование градиентов усложнено до безумия. Я очень часто довожу свои рисунки «до ума» уже в программах для работы с растровой графикой.

Чтобы не рисовать вовсе, вы можете найти бесплатные 2D-ассеты на просторах Интернета, но их узнаваемость будет куда выше, чем узнаваемость 3D-объектов, чей внешний вид во многом обусловлен постпроцессингом в движке и вашим вмешательством в структуры объектов. Вмешаться в уже нарисованный 2D-объект куда сложнее, а высокая узнаваемость бесплатных 2D-спрайтов крайне негативно скажется на индивидуальности вашей игры.

Но взять некоторые объекты за основу для своих экспериментов с кистью или найти готовое решение, например, для интерфейса или эффектов, кажется не такой уж плохой идеей. Для покупки 2D-ассетов вам подойдут все уже перечисленные «маркетплейсы»: 2D-ассеты есть как и в Unreal Marketplace, так и в Unity Asset Store и на том же Envato. А вот за бесплатными 2D-ассетами можно заглянуть на itch.io (в раздел assets), kenney или на OpengameArt.

 

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

Другим способом сэкономить ресурсы на рисовании может стать использование нейросетей. Упоминания достойны три из них: платная MidJourney, доступная только по приглашению Dalle-2, и непростая в освоении, но зато полностью бесплатная нейросеть Stable Diffusion. Все они работают по единому принципу: вы задаете текстовый запрос, который принято называть prompt, и на основе ваших слов нейросеть пытается создать изображение. Иной раз работы выглядят очень неплохо, но для того чтобы найти им применение, вам придется подключить всю вашу фантазию, потому что нейросети эти пока что неповоротливы и понимают ваши просьбы или слишком уж буквально, или, напротив, в качестве результата выдают весьма абстрактные рисунки. Нарисовать, например, одного персонажа с нескольких ракурсов или с разными выражениями лица с помощью нейросети у вас на данный момент не выйдет.

Для анимирования можно освоить массивную науку покадровой анимации, которая используется во всех ретроиграх, двухмерных мультфильмах Disney и некоторых независимых проектах вроде всем известного Hollow Knight. Я и сам предпочитаю анимировать изображения по кадру, несмотря на то что это занимает огромное количество времени, но если вы спешите доделать свою первую игру (что является абсолютно правильным решением), я бы рекомендовал присмотреться к «скелетной анимации».

«Скелетная анимация» представляет собой процесс, для которого вам необходим персонаж, состоящий из мелких частей. Ноги, стопы, голова, волосы, глаза, руки, предплечья и т. д. должны быть нарисованы отдельно. Все эти кусочки собираются в скелет, и вам дается возможность манипулировать ими отдельно. Для того чтобы персонаж, например, поднял руку, вам не нужно рисовать кучу кадров анимации, а достаточно просто потянуть его за кисть. Примеры такой анимации вы можете посмотреть в играх студии Vanillaware – 13 Sentinels: Aegis Rim, Odin Sphere и Dragon’s Crown. Из платных приложений, позволяющих работать со скелетной анимацией, лидирующей по функционалу является программа Spine, а из бесплатных – Dragon Bones и, как ни странно, игровой движок Unity, предоставляющий достаточно массивный набор инструментов для работы со скелетной анимацией прямо внутри движка.

Вам самим решать, к чему больше предрасположен ваш склад ума и с каким типом графики вам будет проще работать: если, как и у меня, ваше мышление в 3D оставляет желать лучшего, а инженерная мысль не блещет искрами гениальности, то выбирать плоский холст для выражения своих идей – не худший вариант. Множество отличных современных игр делается в 2D.

Как научиться рисовать, моделировать и работать на движках – мы еще разберемся, но какой бы способ выражения своих мыслей вы ни выбрали, нас всех, и 3D-, и 2D-специалистов, объединит работа со звуком.

1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16 
Рейтинг@Mail.ru