Настольная книга игродела
Сделай видеоигру один и не свихнись
…Он был полон великих идей, но не работал в своей жизни ни дня.
Divinity: Original Sin, надпись на надгробном камне
0. Экран загрузки
Я знал множество людей, создающих видеоигры без поддержки команды. Они посещали сходки разработчиков видеоигр; кое-кто из них появлялся на конференциях, а иногда их можно было встретить на необъятных просторах Сети. Их очень много. Я и сам – разработчик-одиночка.
Я нередко участвовал в пылких спорах о том, возможно ли создать в одиночку нечто столь комплексное, как видеоигра? Она же состоит из графики, музыки, сценария, кода, анимаций, игрового дизайна! Способен ли всего один человек справиться с таким неизмеримым количеством работы?
Многие приходили в своих рассуждениях к положительному ответу: существуют примеры, когда старания соло-разработчиков порождали чудесные и целостные игровые миры. Stardew Valley, Undertale, Cave Story – за каждым из этих проектов стоит всего по одному человеку. Их пример вселяет в людей твердую уверенность, что сделать хорошую игру в одиночку – возможно. И, оглядываясь на эти примеры, люди воодушевленно берутся воплощать свои идеи в реальность, параллельно обучаясь всему и сразу.
Но спустя время знакомые мне разработчики-одиночки начинали пропускать мероприятия, конференции и сходки. Их социальные сети, где они гордо делились своими успехами, покрывались электронной пылью. И вот уже последней записи на странице их проекта исполняется год, а сами авторы удаляют меня из друзей, потому что я перестал входить в их круг общения. Некогда мечтательных и уверенных в себе разработчиков игр уносили с собой суета будних дней и совсем уже другая работа. Мечта выпустить идеальную игру так и осталась мечтой. Друзья-разработчики больше им не нужны.
Сформулировать программу действий, которая позволит вам освоить столь необычное ремесло, как создание игр в одиночку, не очень-то и сложно: мы займемся чем-то подобным на страницах этой книги. Но, наметив себе путь, начинающие разработчики неистово хватаются за рисование, написание кода, создание музыки, а спустя какое-то время, подобно старой лампочке, мигают пару раз и больше не светят в сторону видеоигр.
Ключевая ошибка всех, кто бросил свой проект, едва начав, заключается в том, что в самом начале пути был поставлен неправильный вопрос и велась работа лишь на одном фронте. Утвердительный ответ на «возможно ли разработать игру в одиночку?» побуждает новичков погружаться в техническую часть создания видеоигр, в то время как моральная и психическая часть остается нетронутой.
Правильный вопрос перед вступлением на красочный путь разработчика звучит так: «возможно ли создать игру в одиночку и не свихнуться?» Чтобы довести проект до ума, нам недостаточно накопить технических знаний и художественных навыков.
Нам нужно оставаться мотивированными. Нам нужно избегать эмоционального выгорания. Нам нужно запастись терпением, выдержкой и знать все о самодисциплине и силе воли. Работа по внезапному наитию едва ли будет доведена до конца, а если и будет, то этот процесс займет у вас немыслимо длительный период.
Инструмент для разработки видеоигр – это не только компьютер, но и наши нервы, голова, психика, установки и наше окружение. Именно они помогут не пасть духом; именно в них скрыты наши силы; именно там мы найдем способ не сойти с долгого и увлекательного пути.
Пути к игре своей мечты.
1. Раньше было лучше (?)
Когда в компаниях, где меня никто не знает, я говорю, что зарабатываю на жизнь разработкой игр в одиночку, я обязательно сталкиваюсь с убеждением, что моя деятельность почти фантастична, а сам я или лжец, или пришелец с другой планеты. Уверенность в том, что для разработки современной игры нужна огромная команда, слишком уж плотно укоренилась в массовом сознании. Студии по разработке видеоигр нанимают бессчетное количество людей. Титры в играх становятся все длиннее. Команды разработчиков перестают помещаться на одном фотоснимке. В игровой индустрии теперь очень много народа, и это почти никого не удивляет.
А меня – удивляет. И вас, надеюсь, это тоже удивит, когда мы познакомимся с некоторыми аргументами в пользу того, что «один в поле – вполне себе разработчик», и нечего удивляться, когда в компании кто-то говорит, что делает игры один. Я не занимаюсь волшебством.
За время существования такого искусства, как «создание видеоигр», было разработано множество великолепных проектов. И если о культовом статусе некоторых современных произведений множество людей пылко ругаются на форумах, то почетный статус таких вещей, как Mario и Final Fantasy, – неоспорим.
Давайте на короткое время вернемся в конец восьмидесятых, чтобы после такого путешествия свежим взглядом окинуть современную игровую индустрию и подумать о нашем месте в ней.
На заре становления индустрии видеоигр все платформеры или разворачивались на одном экране, или же вынуждали персонажа двигаться вверх. Но тут свершается революция – рождается такая легенда, как Super Маrio BROS. Миллионы игроков пускаются в оригинальное приключение «слева направо». Революционность Марио на NES (в России продавали клон этой приставки под названием Dеndy) заключалась не только в направлении движения, но и во многих оригинальных дизайнерских решениях, которые требуют куда более детального анализа, чем можно уместить на этих страницах. Сейчас же я просто к великому Марио добавлю еще один пример.
Жанр RPG зародился в мире настольных игр. На экраны мониторов он перекочевал в лице Wizardry и Ultima, но это были серьезные игры для взрослых высоколобых ребят. Идеи этих сложных и уникальных проектов, а также опыт коллег, создавших Dragon Quest, легли в основу самой первой части Final Fantasy. Именно FF популяризовала жанр JRPG на консолях и доказала, что японские игры могут быть интересны и западной аудитории всех возрастов, а жанр RPG не является нишевым и малопонятным развлечением.
Нужно целиком и полностью абстрагироваться от массовой культуры, чтобы ни разу в жизни не слышать имени Марио или названия Final Fantasy. Такие титаны не рождались уже очень давно. И можно было бы парировать тем аргументом, что в восьмидесятые создавалось не так много игр и выстоять в конкурентной борьбе с коллегами было проще, а значит, было проще и выделиться, но стоит иметь в виду, что до выхода Марио и Final Fantasy игровую индустрию уже хоронили: на рынке был переизбыток видеоигр. Тиражи нашумевшей E.T. для Atari утилизировали путем буквального захоронения в земле, а в успех приставки NES на западном рынке до конца не верил никто, так как Запад на тот момент уже «устал» от видеоигр после наплыва низкокачественных продуктов на приставки предыдущего поколения.
Позже, перед самым выходом консоли Nintendo 64, президент компании Nintendo Хироси Ямаути говорил, что «рынок уже сейчас зашел в тупик. Он завален новыми играми, 70 % которых не находят своих поклонников». Это высказывание было сделано в 1996 году. Игровую индустрию никогда не переставали считать перегруженной новыми проектами и мантру об избыточном количестве игр всю дорогу повторяют в средствах массовой информации и в наши дни.
Подобные беспочвенные утверждения не являются поводом обесценивать заслуги разработчиков прошлого, как и не должны стать причиной опускать руки перед выходом на «перенасыщенный» рынок в наши дни.
Рынок видеоигр абсолютно всегда называли перенасыщенным, но это ничего не значит. Здесь всегда есть место новым именам. В том числе и вашему.
Условия, в которых выходили на Западе Final Fantasy и Super Mario, были, напротив, гораздо катастрофичнее, чем условия для выпуска игр в наши дни: игровое сообщество не отличалось многочисленностью; количество проданных приставок не составляло десятков миллионов; игру приходилось продавать строго на физических носителях, в то время как сейчас вы можете распространять любое свое творение через Интернет, не заморачиваясь с поставками, логистикой и производством картриджей. В наши дни вы можете даже выпустить игру с ошибками, глюками и багами, а через какое-то время залатать все недоработки «патчем», скачивание которого многие пользователи даже не заметят. В былые же времена обнаружение серьезного бага в игре могло привести к отмене поставки картриджей, а значит, к колоссальным финансовым потерям.
Не только игровой рынок был негостеприимным для творчества: сами инструменты для разработки и жесткие требования к разработчикам создавали воистину спартанские условия для творцов.
Узнаваемый стиль Super Mario создавался с использованием 64 цветов; битвы с ордой монстров в Final Fantasy умещались на экране 256 × 240 пикселей. Ограничения в количестве возможных для отображения цветов вынуждали разработчиков FF использовать всего лишь три цвета на каждого отдельного персонажа, а часть монстров была раскрашена с использованием одинаковой палитры – только так NES могла отобразить их на одном поле битвы.
Отдельные двухмерные объекты на экране называются «спрайтами». В понятие «спрайт» входили и интерактивные объекты, и персонаж, и враги, и элементы окружения вроде кустов и деревьев. Любая отдельная двухмерная картинка у вас на экране – это спрайт. Спрайт может быть как анимированным, так и статичным. Если вы нарисуете в какой-нибудь программе дерево на прозрачном фоне и вставите это дерево в игру, то дерево смело можно назвать «спрайтом».
Чтобы понять, в каких суровых ограничениях работали Миямото и его команда, можно взглянуть на всю графику в Super Mario (рис. 1).
Почему же мы не видим здесь отдельного спрайта для Марио, отдельного спрайта для боссов и для окружения? Где облака, где кусты? Что это за каша такая? А дело в том, что на NES крупные спрайты состояли из множества квадратиков 8 × 8 пикселей, каждый из которых имел несколько вариаций, чтобы создать анимацию. Спрайт Марио складывался из двух квадратиков, последовательная смена которых создавала иллюзию движения.
Художники не могли просто нарисовать Марио во весь рост и отправить его в игру в таком виде.
Раскрашивались спрайты программно, потому в игру они вносились в черно-белом варианте. Это позволяло использовать один и тот же спрайт, например, для облаков и кустов достаточно было облако покрасить в белый цвет, а куст – в зеленый.
Модуль обработки изображений NES отрисовывал всего два слоя. На верхнем из них располагались спрайты. Отдельный спрайт не мог быть больше, чем квадратик 8 × 8 пикселей, и для достижения такой цели, как «создать крупный спрайт персонажа», художникам приходилось разбивать изображение на 4, 6 или еще большее количество квадратиков. Анимации для каждого квадратика создавались отдельно.
Рис. 1
Вся графика из игры Super Mario Bros.; NES, 1985
Не менее сложный подход распространялся и на дизайн уровней. Второй из слоев, отображаемых модулем обработки изображений, был фоном. Фон состоял из 960 плиток разрешением 8 × 8 пикселей, но лишь 256 из них могли быть уникальными, в то время как остальные 704 обязаны были быть их копией. Меньше одной четверти экрана могло быть занято уникальными объектами!
Хоть приставка и могла обрабатывать 256 цветов, фону конкретно в Final Fantasy отдавалось 13 цветов, один из которых и без того был занят базовой заливкой. Оставшиеся 12 цветов разбивались на четыре палитры, но и на этом ограничения не заканчивались: система объединяла каждые 4 плитки 8 × 8 в один блок, и использовать в этом блоке можно было только одну из заготовленных палитр.
Файл со всей графикой в Марио занимал 8 Кб памяти. Чтобы так умело распределить объекты и разбить все на кубики 8 × 8, художник был обязан мыслить так, как мыслит программист. Здесь не шло речи о «свободе творчества» и непринужденных мазках кистью. Для создания подобной графики не хватит одних лишь академических навыков классического рисования. Чтобы сделать картинку выразительной, читаемой, узнаваемой и красивой, требовалось множество умений и знаний из областей, не относящихся к изобразительному искусству.
Массивное количество суровых ограничений превращало работу над визуальным стилем в изнурительную игру в невероятно усложненную версию шахмат. Разработка игр в таких сковывающих условиях в наши дни кажется абсурдной и невыполнимой задачей (рис. 2).
Можно углубиться еще дальше в системные ограничения NES и ужаснуться тому, что весь код игры приходилось писать на низкоуровневом языке Assembler, внешний вид которого способен ввести в состояние ужаса любого современного программиста. Командам Миямото (Super Mario) и Сакагути (Final Fantasy) приходилось писать свой собственный рендер; качество графики в их играх зависело не только от художников, но и от программистов; ребята не могли даже поворачивать спрайты! В NES не было такой функции! Если вы видели в играх крутящийся спрайт, то такой эффект был достигнут рядом изобретательных и оригинальных решений, а не простой современной командой rotate to angle. А про всего лишь пять голосовых потоков, которые были доступны авторам музыки для NES, можно написать отдельную книгу – и она будет достойна внимания, ибо в эпоху NES начало зарождаться такое направление, как chiptune – «восьмибитная» музыка, у которой все еще есть поклонники и авторы.
Команды и Миямото, и Сакагути состояли всего из четырех человек. Четыре человека, находясь во внушительных ограничениях, обладая, казалось бы, неимоверно скудными возможностями, смогли создать нечто столь грандиозное и революционное, как Super Mario и Final Fantasy.
Рис. 2
Final Fantasy. NES, 1987
В восьмидесятые не было Youtube с его колоссальным количеством уроков. Не было книг и курсов. Не существовало понятия pixel-artist (тот, кто рисует изображения с помощью «пикселей» – самых крошечных объектов на экране), а ведь рисовать на уровне пикселей – это отнюдь не то же самое, что заниматься классическим изобразительным искусством. Разработчики не могли перенять опыт своих коллег, потому что со своими революционными идеями смелые и умные ребята выходили на абсолютно не истоптанную тропу, где они оставались со своими уникальными проблемами один на один.
Но что самое интересное – у них получилось создать нечто волшебное, удивительное, положившее начало целым культурам и вырастившее не одно поколение игроков. У них не было и десятой части тех инструментов, что есть сейчас у нас. Наши возможности – гораздо шире, чем были у разработчиков в конце восьмидесятых, и сделать мы можем в разы больше. Свою Final Fantasy у вас сейчас получится создать играючи.
Уделите внимание ретро-играм эпохи NES, Snes и Sega Mega Drive и сравните их с современными независимыми играми. Не собраны ли, на ваш взгляд, современные игры из точно тех же элементов, из которых создавали хиты прошлых лет?
Давайте поговорим о том, что именно мы имеем на текущий момент.
2. Идеальное время для одиночек: движки
Начнем с хороших новостей: вам больше не нужно изучать Assembler, чтобы сделать игру. Более того, можно вообще не знать никаких языков программирования и не получать образования программиста. Я, например, так и не удосужился этого сделать. По образованию я психолог.
Для разработки видеоигр в наши дни используются «игровые движки», коих развелось великое множество, но упоминания достойны единицы.
Игровой движок представляет собой программное обеспечение, запуск которого откроет вам такие возможности, которые не снились ни авторам Super Mario, ни авторам Final Fantasy. Представляете – в наши дни с помощью абсолютно любого современного движка можно крутить спрайты! Разработчики игр на NES и Sega MD о таком и мечтать не могли! А знаете, в каких современных движках сохранилось ограничение на вывод всего лишь 64 цветов на экран? Ни в каких! Такого ограничения больше не существует! Вы способны использовать все цвета, которые могут отобразить современные мониторы, а также сопроводить все это дело любыми звуками, которые вам приглянутся, – достаточно просто закинуть. wav или. mp3 файл в игру и не заморачиваться больше о пяти доступных каналах. Вам не нужно собирать спрайты из квадратиков 8 × 8 – вы можете нарисовать спрайт абсолютно любого размера и в любом соотношении сторон.
Перечисление таких возможностей в качестве «удивительных» может звучать саркастично и глумливо, но я отнюдь не ставлю перед собой цель высмеять инструменты прошлого. Я лишь хочу подчеркнуть, насколько доступнее и проще стала разработка видеоигр. Final Fantasy была создана, как уже говорилось, усилиями четырех человек, три с половиной из которых занимались тем, что за вас сейчас сделают движки и программы. Больше не нужно писать рендеры, больше не нужно пытаться уместить всю графику игры в смехотворные 8 Кб памяти. Шансов создать великолепное произведение у нас сейчас гораздо больше, чем было в свое время у Миямото и Сакагучи. Пока эти ребята двигались на ржавых телегах, мы сейчас будем выбирать свой истребитель среди десятка игровых движков.
«Лучшего» движка не существует. Каждый из них хорош по-своему. Потому сначала стоит хотя бы в общих чертах определиться с тем, что собой будет представлять ваш будущий проект. Будете ли вы использовать двухмерную или трехмерную графику? Планируете ли вы делать шутер, платформер или визуальную новеллу? Говорят, что ответов на эти вопросы хватит, чтобы выбрать себе игровой движок. На самом деле их хватит, чтобы лишь присмотреться к движкам, а самый главный вопрос мы зададим себе, когда поймем, какие движки вообще существуют и чем они отличаются друг от друга.
Первый актуальный движок, на который, возможно, упадет ваш взор, – это Unity. С помощью этого инструмента были созданы такие игры, как Genshin Impact, Rust и Cuphead. Он бесплатен для независимых разработчиков и, что важно, подходит для создания как двухмерных, так и трехмерных игр. Качество графики, которое вы получите, полностью зависит от вашего упорства – Unity ничем не уступает другим движкам по возможностям выдавать детализированное изображение. Но достоинства движка играют не такую важную роль, как ответ на вопрос «а может ли в нем разобраться разработчик, не обремененный лишними знаниями о программировании?».
Рис. 3
Интерфейс Unity
Unity поддерживает C#, и знание С# – огромный плюс, который ускорит обучение этому изумительному инструменту. По сравнению с Assembler, на котором создавались шедевры ушедших эпох, C# является весьма высокоуровневым языком, особенно с учетом того, что сам движок постоянно пытается угадать, что мы хотим написать, и пестрит красочными подчеркиваниями, автоисправлениями и предложениями по «правописанию» (рис. 3). Тем не менее в наши дни даже С# кажется суровым инструментом высоколобых программистов, в то время как те, кто не разбирается в C#, могут глянуть в сторону «визуального программирования» (рис. 4).
Рис. 4
Система Blue Prints в Unreal Engine
«Визуальное программирование» представляет собой не тот изнурительный процесс, в ходе которого вы пишете сложный код, используя выражения по памяти, а потом ищете, где вы пропустили закрывающую скобку или очередную маленькую запятую. «Визуальное программирование», несмотря на красивое и сложное название, являет собой перетягивание окошек и натягивание стрелочек. Для освоения «визуального программирования» не нужны знания, которые придется получать несколько лет в университете: чтобы совладать с этим «макаронным монстром», достаточно научиться понимать логику движка. Используя свойственный движку «метод мышления», вы будете «объяснять» ему, как должна работать ваша игра. Даже запоминать никаких выражений не придется: при создании «события» вы всегда будете видеть список возможных условий.
Я – не программист. С+, С# и Python для меня являются трудноотличимыми друг от друга иероглифами. Тем не менее моим основным заработком является разработка видеоигр, и три выпущенные игры сейчас полностью обеспечивают мое существование. Удалось мне это благодаря «визуальному программированию», которое легко освоить, даже не обладая техническим складом ума.
Мне часто приходится сталкиваться с критикой моего убеждения, что «визуальное программирование» – это легко и просто, а мои слова принижают таланты людей, которые создают игры, используя тот же инструмент, что использую я. Все, что я могу порекомендовать критикам, – это почитать еще раз о том, в каких условиях и какими инструментами создавалась Final Fantasy, и тогда сразу станет понятно, чья работа представляла собой вечный поиск оригинальных решений, а чья – больше напоминает прогулку по парку в теплый летний день.
Рис. 5
https://assetstore.unity.com/tools/visual-scripting
Не нужно выстраивать вокруг себя барьер из убеждений, что вы занимаетесь сложной и изматывающей работой. Напротив, чем сильнее ваша «работа» будет ассоциироваться у вас с чем-то легким и приятным, тем больше вероятность, что и утомляться вы будете меньше. Если вы научились получать от работы в движке удовольствие – возрастет тяга к тому, чтобы сесть наконец-то за рабочее место и начать делать игры.
К психологическим барьерам мы еще вернемся – других же барьеров перед нами на самом деле не выстроено. Время снова поговорить про Unity, который гордо выставлял грудь вперед на протяжении нескольких абзацев текста, а сейчас делает огромный шаг назад. Хоть инструменты для визуального программирования на Unity и существуют (один из них называется Bolt), они не являют собой основной способ взаимодействия с движком и развиваются скорее «параллельно ему». Помимо Bolt есть множество других надстроек на Unity, с которыми можно ознакомиться здесь по ссылке на рис. 5.
Каждый из них формирует внутри движка свою собственную среду для создания игр определенного плана: платформеров, новелл, шутеров. Помимо удобного инструментария эти надстройки «награждают» разработчика неповоротливостью и неспособностью использовать функционал Unity на полную мощь, вынуждая творца все-таки прибегнуть к изучению хотя бы каких-то аспектов С# в случае, когда его воображение выйдет за рамки, которые создают подобные надстройки.
Вторым титаном среди игровых движков выступает Unreal Engine, блистающий своей технологичностью и всегда словно опережающий свое время. На нем были созданы Fortnite, PUBG и Hellblade. Распространяется этот мощный и серьезный движок бесплатно, но в случае если ваши доходы превысят определенное значение, команда Epic Games попросит вас оплатить Royalty – процент со своего дохода. Этим «определенным значением» сейчас выступает миллион долларов, и я искренне буду рад за тех, кому придется платить Royalty, – ведь это означает, что ваша игра стала чрезвычайно успешна.
Я не побоюсь утверждать, что именно Unreal Engine стоит за популяризацией визуального программирования: его система Blueprints уже интегрирована в движок и доступна для понимания каждому, вне зависимости от навыков и склада ума. Epic Games щедро предоставляет своим пользователям доступ к куче исходников, которые можно использовать как обучающие материалы. Например, если вы собрались делать многопользовательскую игру, то исходник Lyra для Unreal Engine 5 сможет стать неплохой основой для воплощения в жизнь такой, казалось бы, трудной задачи.
Кругом витает убеждение, что использование любой технологии может стать ошибкой, если технология эта применена не в той отрасли. Так, например, создание 2D-игры на Unreal Engine для многих не выглядит разумным решением: этот могучий инструмент абсолютно не предназначен для работы с плоскими картинками. Вы же не будете использовать самолет для того, чтобы добраться в «магазин-через-дорогу», верно? Ровно как и использовать велосипед для того, чтобы перебраться на другой континент, вроде бы неразумно, но именно так для многих выглядит попытка создать нечто высокотехнологичное на движках RPGMaker, Construct, Gamemaker или Ren-py. Все они предназначены для работы только с 2D-графикой, а Ren-py так и вовсе разработан только для создания визуальных новелл.
3. Движки и ваши личностные особенности
Я только что рассказал про два могущественных движка, которые позволяют воплотить в жизнь любые по сложности идеи, но тем не менее на Unity и Unreal Engine создается лишь около половины игр, выпускаемых в Steam. Некоторые крупные ААА-студии продолжают использовать свои собственные закрытые движки, чтобы меньше зависеть от сторонних компаний, и к этим ребятам вопросов у нас не имеется. Но что же движет небольшими студиями и соло-разработчиками, которые выбирают себе в качестве основного инструмента другие, куда менее популярные и продвинутые продукты?
Unreal Engine и Unity, по сути, не сложнее в освоении, чем другие «мелкие» и «неповоротливые» движки. С одной стороны, научиться на них работать даже проще: у Unity есть официальный бесплатный курс для начинающих разработчиков, а уж количество обучающих материалов по Unreal Engine зашкаливает, в то время как найти толковый обучающий курс по какому-нибудь Construct – задача непосильная.
Люди, выбравшие инструментом для воплощения своих идей весьма примитивные программы, на мой взгляд, опровергают популярное убеждение, упомянутое мною выше: якобы самое важное – чтобы инструмент использовался по назначению.
Но главное в выборе движка – это ваши личностные особенности. От них-то и надо отталкиваться.
Если вам будет некомфортно работать на выбранном движке, то вы не будете на нем работать. При разработке игры в одиночку нам ничто не мешает опустить руки и бросить свои светлые начинания. Нам важно создать условия, в которых вероятность устать от создания игр будет минимальной.
Ключевым нюансом в выборе движка является то, насколько вам приятно и удобно с ним работать. Уделите по одному вечеру каждому из движков, выполните в них по одному уроку и определитесь с тем, где вам было приятнее работать.
Даже если вы собрались делать 2D-игру, но вас привлекают эстетика «высокотехнологичности», сияющая новизна и чувство причастности к чему-то очень продвинутому – выбирайте Unreal Engine. Если же вам неприятно работать в Unreal Engine и он кажется вам излишне перегруженным, то какой бы проект вы ни делали с помощью этого инструмента – он навсегда останется недоделанным.
Если у вас есть планы найти работу в среде разработчиков, делать мобильные приложения или устроиться в игровую студию, то Unity на данный момент является движком, навык владения которым быстрее всех поможет вам найти работу. Если же вы все время спотыкаетесь о C#, чувствуете, как написание кода вас тормозит и мешает воплощать идеи в жизнь, а использование 3D для имитации 2D кажется вам глупостью, то у вас не получится раз за разом возвращаться к интерфейсу Unity и создавать свой продукт.
Construct – движок для работы только с 2D-графикой. Именно он – мой личный выбор. Construct полностью основан на визуальном программировании и создает среду, в которой работа с неким подобием кода протекает невероятно быстро. Я человек абсолютно не технического склада ума. Меня не пугает, что я не могу заглянуть «под капот» движка и до конца понять все процессы, которые скрываются за аккуратными «блоками» с условиями. Мне это просто неинтересно. Я могу уделить больше внимания спрайтам и визуальной составляющей моей игры. Именно внешний вид создаваемых мной продуктов для меня является важнейшим аспектом: я одержим контролем над каждым спрайтом, над каждой тенью и каждым эффектом, оттого предпочитаю классическую анимацию и полное отсутствие программных спецэффектов и постобработки в своих проектах. Такие игры, как Hollow Knight, Cuphead и Hotline Miami, не были созданы на Construct2, но могли бы – движок позволяет создать все то, что мы видели в этих играх (рис. 6).
Рис. 6
Логика поведений в Constuct. Слева – условие (пуля коснулась игрока), справа – событие (игрок уничтожен)
Упомянутая Hotline Miami (рис. 7) была создана с помощью Gamemaker. Точно так же как и Construct, этот движок запирает разработчика в двух плоскостях, лишая его возможности создавать трехмерные игры. В Gamemaker используется собственный язык GML, который имеет и визуальное ответвление. GML отличается от языка Construct своей глубиной и сложностью, что делает Gamemaker инструментом, подходящим для людей с техническим складом ума. Если вас воодушевляет и дает силы работа именно с кодом, но при этом профильного образования у вас пока еще нет, то в создание игр на Gamemaker вполне можно втянуться.
Рис. 7
Hotline Miami 2: Wrong Number. Dennaton Games, 2015
Мне бы очень хотелось составить табличку в духе: если вам от движка нужно вот «это» и «это» – выбирайте «такой-то движок», но, во-первых, такие таблицы уже лежат на просторах Сети, а во-вторых (если вы правильно уловили мою мысль), существование такой таблицы не очень поможет вам выбрать инструмент.
Если при выборе движка отталкиваться только от технических требований к своей будущей игре, то велика вероятность, что вы натолкнетесь на программу, с которой не сможете «подружиться» и в среде, в которой не будете чувствовать себя комфортно. Если бы сотни моих вечеров, проведенных за работой в Construct, являли собой борьбу с логикой движка, его интерфейсом, а заодно с моим дискомфортом и ярым нежеланием возвращаться к работе, то я бы не довел до ума ни один из своих проектов. Именно соответствие Construct моим личностным особенностям помогло мне создать на нем три игры и провести в этой программе больше 6000 часов.
Работа с игровым движком напоминает общение между двумя людьми из разных стран. Вы очень плохо знаете язык приезжего, а если и заучите каждое слово, то вам все равно потребуются дополнительные годы, чтобы говорить на уровне носителя языка и понимать все культурные особенности своего товарища.
Каждый вечер вы будете пытаться объяснить этому иностранцу на ломаном подобии его наречия: «Я хочу, чтобы ты сделал „вот такую штуку“» (например, чтобы персонаж атаковал по нажатию на кнопку «Х»). Чтобы в понятной форме донести до движка ваши требования, вы должны быть терпеливы и внимательны. Сложно оставаться терпеливым и внимательным к продукту, который вызывает у вас только раздражение и ненависть.
Один мой знакомый был программистом веб-сайтов и неплохо знал такой язык программирования, как Java Script. Желание делать игры привело его к Unity – благодаря многочисленному сообществу и отличной маркетинговой кампании пути многих начинающих разработчиков упираются именно в Unity. В ходе разработки своего проекта с использованием всех предоставляемых Unity благ он начал спотыкаться о реализацию сложных и глубоких задач, вроде создания AI (искусственного интеллекта) или проработки поведения NPC. Знания Java Script едва ли помогали ему в этом деле. Скорее, напротив, они мешали освоить новую логику в новой среде.
Вместо удобного, раскрученного, многофункционального движка мой знакомый в итоге обратился к более низкоуровневому программированию и начал разработку проекта на «сухом» Java Script с использованием react-компонентов (готовой библиотекой некоторых шаблонов кода для реализации конкретных задач) и массово используемым готовым решением для корректно работающей физики под названием phaser.js. Работа над игрой стала для него куда менее утомительной, среда – куда более понятной и знакомой лично ему. Но набор его инструментов выглядит как что-то неповоротливое и сложное! Так почему ему не понравилось работать на Unity?
Его личный опыт, его склад ума и его знания поспособствовали тому, что работа на чем-то более, казалось бы, сложном и неудобном, протекала быстрее и приносила больше удовольствия.
Надеюсь, никто не забыл предисловия к этой книге и не ждет, что я четко скажу вам в одном предложении, какой движок вам выбрать? Я не могу этого сделать – проблема выбора движка лежит на вас, я уже перечислил, на что нужно опираться в своем решении. Но я могу дать еще две подсказки.
Во-первых, никто не запрещает вам попробовать каждый из популярных движков. Зайдите на сайт одного из них, посмотрите на игры, которые созданы с его помощью, взгляните на пару вводных уроков и прислушайтесь не к своему разуму, а к более глубоким ощущениям – цепляет ли вас хоть чем-нибудь эта программа? А продукты, созданные на ней? У некоторых игр на Unity есть некое неуловимое сходство, отличающее их от игр на Unreal. А какое ощущение оставляет беглый просмотр форума сообщества? Вы почувствуете, как что-то внутри в определенный момент щелкнет и даст ответ на вопрос: «А для меня ли эта программа?»
Если прислушаться к себе окажется чрезвычайно трудной задачей, то скачивайте все подряд движки и пытайтесь в каждом из них выполнить хотя бы один урок. Так вы точно поймете, выполнение какого урока принесло вам удовольствие и на каком движке стоит остановиться. Без удовольствия от работы вы ни за что не заставите себя провести месяцы, а может быть, и годы свободного времени за созданием видеоигр.
Второй совет – общайтесь с разработчиками. Никто лучше человека, работающего на Game Maker, не ответит вам на вопрос «а легко ли на нем будет сделать „вот-такую-то-игру“».
Лучше, конечно, общаться в реальной жизни – так вы уловите больше их личных свойств и характерных манер.
На мой взгляд, существуют некоторые неуловимые качества, объединяющие тех, кто выбрал себе в «коллеги» тот или иной движок. Эти незримые сходства и трудноуловимые качества и должны стать еще одним вашим помощником в выборе движка – кто из разработчиков окажется ближе к вам по своим манерам, взглядам и убеждениям?
4. Мы не одни
Поиск живого общения с будущими коллегами по цеху должен увенчаться прекрасным открытием: во множестве городов России регулярно проводятся как формальные, так и неформальные сходки разработчиков. Если их не бывает в вашем городе, то помните, что поезда все еще ходят и, потряхивая ваши косточки в купе или плацкарте, доставят вас до места встречи разработчиков.
Наши сходки условно можно разделить на три формата.
Первый из них является самым легким и непринужденным и подразумевает встречу в специально арендованном зале какого-нибудь бара, где можно пересаживаться из-за одного столика за другой и коротать время в беседах с людьми из игровой индустрии.
Второй формат – чуть более деловой, и помимо необузданного и хаотичного общения он подразумевает наличие в программе доклада от одного из участников сходки. Во время выступления местный разработчик будет рассказывать про свой опыт, отвечать на вопросы и делиться полезной информацией.
Если вы живете в Петербурге или планируете его посетить, то поиск мероприятий должен привести вас к «Индикатору» – площадке для разработчиков видеоигр, где лекции сочетаются с необузданным общением. Чтобы только послушать доклады, стоит обратить внимание на сообщество игровых разработчиков Braindie, а провести время в совсем уж легкой обстановке можно с GamedevHouse – сообществом, которое организует сходки еще и в Москве. В поисках площадок, где читают лекции для разработчиков игр в столице, можно присмотреться к мероприятиям от ВШБИ, а гостям и жителям других городов – прибегнуть к помощи Интернета и социальных сетей, потому что я, разумеется, не могу перечислить все мероприятия во всех городах.
Третий формат, самый, казалось бы, серьезный из всех, – это конференции. Одно слово «конференция» рисует перед глазами серьезную встречу угрюмых дядечек в пиджаках, которые говорят только о будущих сделках, а за могучими плечами каждого из них стоит как минимум одна ААА-игра.
Я же предпочитаю описывать конференции как «бизнеспраздники», в которых «бизнес» вполне можно отодвинуть на задний план. Чаще всего конференция проходит в красочно обставленном зале, где и крупные компании, и маленькие независимые разработчики вроде нас демонстрируют свои проекты, участвуют в конкурсах, ищут коллег, а главное – общаются, делятся опытом и весело проводят время (рис. 8).
Причины посещать эти мероприятия кроются далеко не в контактах, связях и знакомствах, без которых, честно говоря, разработчик-одиночка теоретически может обойтись. Как и все самое важное, причины приехать в другой город на сходку или конференцию кроются у нас в голове.
Рис. 8
Конференция Игропром. Автор снимка Максат Иветков, 2023
Мы все – социальные животные. Общение и социализация для нас жизненно необходимы. Даже если мы работаем в гордом одиночестве, потребность в общении никуда не пропадает. Ее не обязательно чувствовать, но поверьте – такая потребность существует.
Я уверен, что на свете есть индивиды, которые действительно способны прожить счастливую жизнь без взаимодействия с другими людьми, но с очень малой вероятностью именно вы являетесь одним из них. Когда каждый на этом свете считает себя интровертом (а уж человек, который избрал путь разработчика-одиночки, скорее всего убежден в таком качестве своей натуры), я чувствую на себе ответственность за рассказ про некоторые вещи, скрытые внутри нашей черепной коробки.
Во-первых, ваши социальные инстинкты будут постоянно требовать от вас быть «подключенным» к стае. Такая механика работы нашего мозга выработалась в связи с тем, что в первобытные времена в одиночку человеку выжить было крайне сложно. Те, у кого отсутствовала зудящая потребность стать частью общества, пытались в одиночку охотиться, строить себе жилье и обеспечивать себе безопасность. Совершенно очевидно, почему они не смогли передать свои инстинкты и свой подход к существованию дальше, – такие люди просто умерли, потерпев неудачу в своем начинании выжить в одиночку.
Десятки тысяч поколений передавали друг другу тягу к объединению в стаю не для того, чтобы современный человек решил, что он «интроверт» и попытался существовать, ни с кем не общаясь. За десятки тысяч лет психика человека не изменилась никаким образом. Наш мозг все так же адаптирован на жизнь в пещере, а не в мегаполисе.
Сейчас мы можем не ехать на сходки в другие города – мы можем пообщаться с другими разработчиками в Сети, не подозревая о том, что это – всего лишь иллюзия настоящих разговоров. Во время живого общения с людьми у вас задействуются совсем иные области мозга, нежели те, которые мы используем при анализе информации в Интернете. (Орбитофронтальная кора активизируется, когда вы общаетесь с настоящими людьми, а височные доли – когда вы взаимодействуете с экраном телефона.)
Тут возникает парадокс: вам кажется, что вы общаетесь с людьми достаточно много – в ходе переписки или просмотра роликов в Интернете. Но никакого удовлетворения социальных инстинктов такое «общение» вам не принесло. Мы подвергаем свою эмоциональную стабильность огромному риску, изолировавшись от других людей за экраном телефона.
Мозг любого из нас не приспособлен к существованию в изоляции. Если мы не будем чувствовать, что мы – часть чего-то большего, то социальный инстинкт так и останется неудовлетворенным. Вы, скорее всего, этого даже не осознаете: мозг просто без вашего ведома решит, что вы несчастны; химические процессы в голове поменяются, дофамина и серотонина станет вырабатываться меньше, у вас начнутся депрессия и упадок сил. Такое унылое состояние очень пагубно скажется на способности разработать игру в одиночку, а мозг так и не сообщит вам: «А давай-ка махнем на сходку!» – вам нужно догадаться, каков выход из сложившейся проблемы, самостоятельно.
Посетите сходку разработчиков. Почувствуйте, что вы часть чего-то большего. Это необходимо для удовлетворения ваших социальных потребностей.
Вторая скрытая причина, по которой сходки разработчиков стóят того, чтобы выбираться из уютной квартирки и ехать в далекие дали, заключается в том, что общение с другими людьми формирует в нашей голове некие образы.
Мы не способны познать ни одного человека до самого конца, до всех мелких деталей его мышления. Нам может казаться, что мы чудесно понимаем людей, осознаем все, что они нам говорят, и улавливаем смысл каждого их действия. Только стоит задуматься: а существует ли на свете кто-либо, кто на 100 % понимает нас самих?
Так если нет ни одного человека, который понимает нас на 100 %, то как мы можем быть уверенными, что существуют люди, которых мы поняли на 100 %?
При общении с людьми формируются и обрастают деталями их образы у нас в голове. Именно эти образы, скомпонованные нами самостоятельно, мы и можем понять. Как сильно отличается этот образ от реального человека, зависит от нашей внимательности и особенностей восприятия, но образ этот никогда не будет полностью соответствовать самому человеку. Особенно если знакомство с ним поверхностно.
Наше представление о других людях никогда не соответствует действительности. Наше представление о них – это то, как мы их воспринимаем.
На сходках разработчиков формируются именно поверхностные образы, но они-то нам и нужны! Мы сами наделим образы разработчиков бóльшим количеством личностных качеств, которые будем потом трактовать как качества, необходимые для разработки успешных игр.
На мероприятиях я нередко встречаю людей, творчеством которых я восхищаюсь. Когда мне удается пообщаться с разработчиком, который был причастен к созданию игры, что мне полюбилась, это формирует в моей голове образ человека, достигшего того, чего хотел бы достичь я. Тут и приходит важное понимание, что разработчики видеоигр – это далеко не сверхлюди.
Раньше мне казалось, что человек, делающий игры (особенно в одиночку!), представляет собой некое многорукое сверхсущество, которое 20 лет училось рисовать, 20 лет училось писать код и еще 30 лет изучало все тонкости самодисциплины. Такой образ очень сильно отличался от того, каким я видел сам себя.
Мне начинало казаться, что для того чтобы делать игры, я должен очень сильно преобразиться. Перестать быть тем, кем я являюсь сейчас. Стать дисциплинированным чудовищем. Наш мозг не особо-то любит перемены и всегда будет стараться избегать того, что угрожает представлению человека о себе. Процесс «избегания» будет состоять из бесконечного поиска причин, почему нам не стоит заниматься разработкой видеоигр. Имея в голове представление о разработчике как о многоруком чудовище, мы вечно будем располагать оправданиями, чтобы ничего не делать: у нас всегда не будет хватать на разработку времени, сил, вдохновения, мотивации или чего-нибудь еще.
Объективной причиной бездействия в нашем случае станет естественное нежелание вашего мозга настолько кардинально менять свое «я» для достижения цели. Даже если разумом вы будете понимать, что приобретение новых качеств и изменение собственного «я» сделает вашу жизнь лучше и краше, ваш мозг продолжит сопротивляться и отказываться работать.
Но вот вы на сходке разработчиков. Или на конференции. И вы видите не многоруких монстров с тремя головами и многолетним стажем за спиной, а обычных молодых ребят, распивающих напитки, экономящих на закуске и отпускающих шутки на отдаленные от разработки темы.
Образы этих людей потеряют ту «монструозность», которая провоцирует ваш мозг принимать защитную позу и воспринимать новое увлечение как угрозу вашей идентичности. Путь от образа «я-сейчас» к образу «я-разработчик» перестанет казаться вашему мозгу длинным, тернистым и ведущим к такому огромному количеству изменений, в ходе которых от вашего нынешнего «я» не останется и следа.
Очеловечивание образа разработчика поможет вам избавиться от некоторых оков, что мешают вам развиваться как профессионалу.
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 (рис. 9). С ее помощью вы сможете создавать чрезвычайно реалистичные анимации: программа самостоятельно, без вашего участия, учтет центр тяжести персонажа, инерцию движения и параболические траектории. Еще более простой путь анимирования 3D-персонажей лежит через онлайн-сервис Mixamo, в каталоге которого вы сможете найти невероятное количество уже созданных анимаций, скачать любую понравившуюся лично вам и применить ее на своем персонаже.
Для того чтобы ваш персонаж двигался воистину впечатляюще, пускал молнии, огненные шары, а каждый его шаг поднимал в воздух столбы пыли – можно использовать Effekseer. Эта программа являет собой редактор частиц, а ведь именно с помощью частиц проще всего создать подобные визуальные эффекты.
Что касается создания окружения, то и здесь у нас найдутся помощники. Проблемой для начинающего 3D-скульптора может стать не сам процесс моделирования какого-нибудь дерева или колонны, а такой процесс, как текстурирование. Без текстуры ваше дерево будет выглядеть как серый столб, а с текстурой любой серый столб начнет выглядеть как дерево.
Рис. 9
Интерфейс программы Cascadeur
Бесплатными помощниками в деле создания текстур могут стать такие программы, как Laigter, ArmorPaint, Materialize Image To Material Tool и Quixel Mixer. В этих приложениях вы сможете создать PBR-текстуры – они имитируют реально существующие материалы вроде камня, дерева, травы и т. п. Сколы на камнях, отдельные куски коры на деревьях или складки на статичных тканях не всегда в видеоиграх являются действительно многополигональными объектами. Иллюзию высокой степени детализации им создают именно PBR-текстуры (рис. 10).
Но что делать, если желания учиться моделировать и рисовать текстуры нет, а игры делать очень хочется? В наши дни даже это не означает, что двери в чудесный мир разработчиков игр для вас закрыты: существуют различные онлайн-магазины, именуемые маркетплейсами. Там вы можете купить ассеты – наборы различных уже смоделированных объектов, которые можно использовать в своей игре.
Рис. 10
При создании этой модели скульптор не использовал отдельные полигоны для каждого камешка. Это просто куб с наложенной на него PBR-текстурой
Ассет может включать в себя, например, десятки 3D-объектов на определенную тематику: бар, детская площадка, средневековая деревня. Если автор ассета указывает, что он не против использования этого ассета в коммерческих целях другими людьми, то вместо того чтобы моделировать целую деревню, вы можете ее просто купить на таких ресурсах, как Unity Asset Store, Envato, 3dmodelhaven или Unreal Marketplace.
Вы ошиблись, если вы подумали, что есть всего два варианта для создания 3D-игры – или сделать модели самостоятельно, или купить модели за деньги. Третий вариант заключается в том, чтобы пользоваться ассетами бесплатно. На Unreal Marketplace каждый месяц раздается весьма внушительный набор ассетов на самые разные темы и в самых разных стилях. Средняя цена всего раздаваемого набора в любое другое время составляет от 25 до 50 тысяч рублей, а в момент акции вам достаточно просто скачать то, что вам предлагают в этом месяце.
Рис. 11
Bright Memory. FYQD-Studio, 2020
Более того, вы можете просто установить в поиске галочку FREE в разделе «цена» и выбрать что-нибудь из выложенных в общий доступ ассетов. Есть ресурсы, на которых вас вообще круглые сутки ждут бесплатные наборы 3D-объектов: Oyonale, Turbosquid и CGTrader.
Если вам кажется, что игра, созданная с использованием ассетов, всегда будет высмеяна игроками, то посмотрите на игру Bright Memory (рис. 11) и почитайте отзывы к ней. Это проект, созданный одним человеком, который ни разу в жизни не занимался моделированием. Все, что вы видите, – это комбинация скачанных и купленных ассетов. Игрокам нет никакого дела до того, кто сделал 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 (рис. 12).
Рис. 12
Fearmonium. Slava Gris, 2021
Высота моего персонажа – 167 пикселей. Если вы создадите в GIMP или Krita холст высотой 167 пикселей, то в попытке прорисовать мелкие детали вы сможете изобразить только неразборчивую кашу. Несмотря на то что в игре этот персонаж присутствует как объект высотой в 167 пикселей, нарисован он был в размере, куда более высоком.
Я рисую все объекты в размере вдвое больше, чем мне необходимо, и уже только перед самым экспортом уменьшаю размер с выбранными мною настройками интерполяции, т. е. с настройками сглаживания при изменении размера картинки. Я советую вам поэкспериментировать с разными настройками интерполяции в программе, которую вы выберете, и решить «на глаз», какой алгоритм изменения размера изображений вам нравится больше. Определившись с выбором, не отступайте от него – изменяйте размеры ваших рисунков для одного проекта с одними и теми же настройками.
Если же вы хотите погрузиться в атмосферу ретроигр и ваш будущий шедевр планируется быть выполненным в pixel-art, то вышеперечисленных проблем у вас не возникнет: ваш единственно правильный выбор – рисовать объекты таким образом, чтобы квадратный пиксель являлся самым мелким объектом на экране.
Для Catmaze я выбрал разрешение 480 × 270 пикселей. Вся игра рисовалась под этот размер без всяких уменьшений и увеличений: главный персонаж, Алеста, заняла всего 44 пикселя в высоту (рис. 13).
Рис. 13
Спрайт Алесты из Catmaze высотой в 44 пикселя
Для рисования я использовал всего один инструмент – «карандаш» с твердыми краями и размером 1 пиксель. Каждый «квадратик» на этой картинке был кликом мышки. Когда вы видите один экран Catmaze – вы видите приблизительно 129 600 кликов мышкой.
Изображения в пиксель-арте – это все те же растровые изображения, но нарисованные на уровне пикселей, а не появившиеся в процессе размашистой работы кистью с неточными краями.
Несмотря на то что такой инструмент, как «карандаш», есть и во всем известной программе Paint и даже в некоторых движках, позволяющих вам рисовать текстуры, изобретено множество программ, чтобы 129 тысяч кликов мышкой протекли менее утомительно.
Самым мощным помощником в рисовании с помощью пикселей станет Aseprite. Программа хоть и платная, но ее цена крайне мала и на момент написания этой книги составляет около 500 рублей. Aseprite будет помогать вам не громоздить лишних пикселей при рисовании линий, а также предоставит кучу инструментов для работы с анимацией, изометрией и интерполяцией. Помимо Aseprite можно присмотреться к Pyxel Edit – тоже весьма недорогой программе для работы с пиксель-артом. В отличие от Aseprite, Pyxel Edit больше предназначен для рисования окружения, нежели для работы над персонажами.
Если же вам принципиально, чтобы решение было бесплатным, можно посмотреть в сторону того же GIMP или же GraphicsGale – обе эти утилиты предоставят вам необходимый для нашей работы инструментарий.
Но для 2D-графики у нас остается еще и третье решение – забытое, игнорируемое, но не менее интересное, чем растровая графика или пиксель-арт. Я говорю про вектор! Я не предлагаю делать вам Flash-игры, потому что эта технология уже нигде не поддерживается, речь идет об использовании редакторов векторной графики с целью создания растровых изображений. Процесс этот выглядит так: вы рисуете что-либо в векторе, а экспортируете уже в. png (один из форматов для растровых картинок) и в таком виде добавляете в игру.
В векторных редакторах изображение состоит не из пикселей, а из математических формул. Главным плюсом такой структуры является то, что, пока вы не отрендерели изображение (не нажали «сохранить как. png») вы можете манипулировать размером картинки как угодно – на качестве рисунка это не скажется никаким образом (рис. 14).
Современное привлекательное платное решение для вектора предоставляет Adobe Animate, а бесплатное – программа Inkscape. Плюсом работы в векторе является возможность рисовать мышкой и не чувствовать себя сумасшедшим: мы размещаем на холсте прямую линию, а затем с помощью курсора «гнем» ее в выбранных местах. Таким образом, линия всегда остается аккуратной, а не «дрожащей», как штрихи мышкой, выполненные в Photoshop.
Недостатком векторной графики является огромная трудность в создании переходов между цветами или рисовании нечетких контуров: вектор не подразумевает наличия «мыла», тут нет мягких кистей, а использование градиентов усложнено до безумия. Я очень часто довожу свои рисунки «до ума» уже в программах для работы с растровой графикой.
Рис. 14
Сильно приближенное растровое изображение vs сильно приближенный рисунок того же размера, но в векторе
Чтобы не рисовать вовсе, вы можете найти бесплатные 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-специалистов, объединит работа со звуком.
8. Я не слышу, дети…
В классическом процессе создания музыки замешано множество людей: и музыканты, и композиторы, и звукорежиссеры. Создание музыки представляет собой сферу, не менее сложную, интересную и глубокую, нежели создание игр.
Нельзя недооценивать влияние музыки на вашу игру. Качество звука в игровых проектах во многом формирует атмосферу и общее настроение. Музыка может даже определить то, чем будет заниматься ваш игрок: например, если в игре внезапно спокойная мелодия сменится эпичным военным маршем, то игрок начнет суетиться и искать угрозу, а когда стихнет последняя звонкая скрипка и зазвучит умиротворенная сельская мелодия, игрок поймет, что битва закончена.
Есть несколько вариантов по решению проблемы с музыкой. Можно создать ее самому, как это сделал автор Cave Story, автор Iconoclasts и автор Undertale. Мы с вами легких путей не ищем, потому я остановлюсь на этом варианте подробнее – лично я написал несколько композиций самостоятельно и попробовал парочку программ.
Самой популярной и простой в освоении является, конечно же, FL Studio, известная «старичкам» как Fruity Loops. Но так же как и от Photoshop, FL Studio отпугивает сумасшедшей ценой на лицензию. Наш взор придется сначала обратить на бесплатные аналоги.
Первым достойным упоминания программным обеспечением для написания музыки является LMMS. Очень многое в нем схоже с FL Studio, так что освоение этой бесплатной программы поможет вам в будущем разобраться и с более профессиональными приложениями. SunVox предоставит немного более ограниченные возможности, но когда вам нужна музыка лишь для заднего плана, местные ограничения только сыграют вам на руку, вынуждая останавливаться на весьма незамысловатом звучании.
Если вы делаете игру в ретростиле, то можно пойти очень интересным и неординарным путем: установить себе эмулятор портативной приставки GameBoy и запустить на нем Little Sound DJ – так вы получите аутентичный 8-битный звук из ушедших эпох, а заодно познакомитесь со всеми ограничениями, в которых приходилось работать в самом конце восьмидесятых.
Неплохими приложениями являются FamiStudio и Bosca Ceoil, которые позволят вам поработать с «чиптюн»-музыкой и имитировать звучание старых консолей, но уже используя современные методы.
Посмотрите на YouTube уроки обращения с каждой из перечисленных программ и определитесь с тем, в какой из них звучание наиболее соответствует вашей задумке.
Для того чтобы написать композицию, играющую в главном меню Catmaze, мне потребовались знание о том, что такое «минор» и «мажор», две недели и добрые советы моего хорошего другамузыканта Expecte Amour, на которого я свалил обязанности по написанию всех остальных композиций к своим играм.
В решении делегировать написание музыки другому человеку и заключается второй подход к обеспечению вашей игры звуковым наполнением: вам не обязательно использовать музыку, которую создали вы сами. У нас есть несколько способов обеспечить свою игру музыкой, не притрагиваясь к нотной грамоте.
Первый способ заключается в том, чтобы на ресурсах вроде того же opengameart найти бесплатную музыку. Обращайте внимание на лицензию, под которой распространяется композиция, и обязательно следуйте всем требованиям по указанию авторства. Я рекомендую присмотреться к лицензии «cc-by 4.0», разрешающей коммерческое использование композиции при условии, что где-либо в вашем проекте будет упомянут автор, а также редкой удачей будет найти что-то подходящее под лицензией «СС-0», предоставляющей вам безграничные возможности по использованию и изменению композиции.
Второй способ: купите нужную музыку на сайтах вроде уже упомянутого Envato. С одной стороны, выбор платных композиций значительно шире, чем бесплатных, а значит, и вероятность подобрать что-то более подходящее вашему продукту куда выше. Но, с другой стороны, даже с наличием лицензии на использование находящейся в общем доступе композиции вы можете попасть в очень глупую ситуацию: композиция продается на стоках, а значит, что ее приобрели не только вы. Если другой покупатель включит ее в саундтрек своей игры и решит опубликовать этот саундтрек отдельно на каком-нибудь сервисе вроде Spotify, то ему придется обращаться к специальным дистрибьюторам, которые обеспечивают появление музыки на подобных интернет-площадках. Для распространения композиции и борьбы с конкурентами дистрибьютор закрепит права на трек за собой, и случится страшное: всем, кто использовал эту композицию в своих видео на YouTube или Twitch, придет оповещение, что с их ролика с этой музыкой теперь исчезает монетизация. Чудовищность такого исхода событий заключается в том, что YouTube и Twitch – это очень массивные площадки для раскрутки вашей игры. Если блогеры при попытке загрузить видео с обзором или прохождением вашего проекта будут лишаться монетизации, то мотивации распространять информацию об игре у них не будет никакой.
Лучше подумайте о том, чтобы прибегнуть к самому интересному способу придать вашей игре уникальное звучание: можно найти непопулярных музыкантов на просторах Сети и предложить им сотрудничество. Подавляющему большинству музыкантов будет даже приятно предоставить вам свои композиции или бесплатно, или за символическую сумму. Для них участие в вашем проекте может стать символом признания, а выход игры в свет вполне может открыть им новые двери и предложения к уже коммерчески выгодному сотрудничеству.
Мое лихое описание того, как все на этом свете просто и что в наши дни студию из каскадеров с дорогим оборудованием заменит Cascadeur, штат из десятка аниматоров уместится в ярлык Spriter Pro, а целый оркестр поместится в LMMS, вполне может обидеть тех, кто работает с одной из перечисленных мною программ и твердо убежден, что его дело – сложное и уважаемое. И в этой обиде кроется кое-что очень плохое и неправильное…
9. Разрушительное самолюбие
Что же в итоге отличает нас от Сакагучи и Миямото, задавших направление развития ключевых игровых жанров в конце 80-х? Почему, имея в распоряжении такие удобные программы и вычислительные мощности, современные студии состоят из сотен людей?
Можно было бы сказать, что Final Fantasy и Super Mario – технически куда более простые игры, нежели то, что мы разрабатываем в наши высокотехнологичные дни, и мое сравнение некорректно. Только стоит иметь в виду, что технологии, которые сейчас кажутся простыми и примитивными, в конце восьмидесятых являлись таким же чудом, коим в наши дни является, например, Ray Tracing (система реалистичного отражения лучей). Через 30 лет вещи, которые в данный момент вызывают у нас трудности, будут казаться такой же мелкой и незначительной проблемой, как, к примеру, размещение на карте более 25 % уникальных спрайтов.
Те, кто не согласен, что в настоящее время разработка игр протекает чуть ли не играючи и не требует высоколобости, являются одной из серьезных проблем для успешного создания игр.
Я как-то переводил статью моего товарища и выкладывал ее на англоязычный Reddit. Он был автором весьма успешного ужастика от первого лица, разработанного на Unreal Engine. Игра называлась Never Again, а в статье описывался его тернистый путь «от идеи до выпуска».
Объясняя, почему он решил работать именно на Unreal Engine, мой знакомый разработчик использовал фразу «я не программист, никогда на программиста не учился, потому мой выбор пал на Unreal Engine с его системой Blueprints». И это хорошая фраза, емкое объяснение и отличная мотивация: я не уверен, что каждый из читателей этой статьи являлся программистом, но в том, что многие хотели бы сделать игру того же уровня и добиться того же успеха, – сомневаться не приходилось. Я вижу в этой фразе луч надежды для тех, кто очень хочет делать игры, но абсолютно не знаком с программированием.
После публикации статьи стали появляться первые комментарии. Один из комментариев столкнул меня с самым ужасным, деморализующим, высокомерным и претенциозным мнением, которое максимально разрушительно и вопиюще абсурдно. Автор этого комментария написал: «So I ask you to withhold from discrediting people using blueprints», что дословно можно перевести как: «Я попрошу вас воздержаться от дискриминации людей, использующих Blueprints».
В более развернутом объяснении своей позиции автор рассуждал о том, какими высокими знаниями, навыками и опытом нужно обладать, чтобы уметь перетягивать мышкой квадратные окошки. Я не буду спорить, что знания, сообразительность и опыт для освоения визуального программирования все-таки нужны. Просто количество требований к навыкам и умениям для создания игр сейчас смехотворно мало по сравнению с тем, что требовалось от разработчиков раньше.
Считать «ущемлением» своих навыков высказывание, что работа с Blueрrints подойдет не только программистам, – нелепо и разрушительно. Такая позиция вредна.
Чем выше мы оцениваем свои достижения, тем сильнее мы довольны собой и тем сильнее нам хочется себя наградить. Чаще всего наградой выступает безделье или хотя бы приостановка получения новых знаний, потому что «я ведь и так сделал достаточно». Горделивое самодовольство – это не то, что может послужить двигателем как в работе, так и в познании. У вас будет очень комичный вид, если вы освоите простой навык и после этого мысленно поставите себя на один уровень с теми, кто потратил несколько лет на изучение чего-то более низкоуровневого, чем визуальное программирование. С таким подходом возможность стать настоящим специалистом сведется на нет. Вы так и останетесь парнем с Reddit, который будет обижаться на фразы вроде «blueprints – это не программирование».
Людям, которые далеки от разработки видеоигр, достаточно бегло глянуть на Fearmonium и услышать, что я в этой игре не отвечал только за создание музыки, как они видят во мне многорукого волшебника, обладающего вагоном знаний и опыта. Безусловно, приятно, когда тебя воспринимают высококвалифицированным специалистом. Но важно понимать, что в нашей ситуации это – ложь.
Те, кто хотя бы чуть-чуть погружен в разработку видеоигр, прекрасно понимают, какой ерундой я на самом деле занимаюсь: я вожусь с детским движком Construct и сгибаю векторные линии мышкой, когда рисую. Это и рядом не стояло с тем титаническим трудом, которым занимались наши «предки» в лице гениальных Сакагучи и Миямото. У меня нет и одной сотой знаний и навыков, что были у них.
Но, безусловно, поощрять себя нужно. Я не предлагаю отказываться от гордости за свои успехи. Освоить Blueprints – это все-таки далеко не пятиминутное дело. Есть условия, при которых гордость и высокое мнение о собственных навыках не наносят вреда. В перечень таких условий нужно обязательно включить понимание предела своих возможностей. Когда перед нами встает новая задача, мы оцениваем ее сложность, ориентируясь на свое прошлое. Поверьте, когда вы только учились ходить, принять решение «дойти до мамы» давалось с трудом, потому что ваш опыт ходьбы заключался в бесконечных падениях, шишках и фрустрации. Куда проще доползти до мамы на четвереньках. Но ходить вы все-таки научились, и теперь это действие не представляет проблемы. Ваш опыт подсказывает вам, что ходить не так уж и трудно. Теперь это даже проще, чем ползти!
В пример можно привести и катание на велосипеде, и игру в видеоигры: любое действие, которое уже завершалось успехом хотя бы один раз, дается нам куда легче в следующий. К нам приходит осознание собственных возможностей, мы обретаем нужный опыт и уверенность, что у нас все получится и в следующий раз.
Представьте, что вы уже изучаете движок и проходите курс, разбитый на несколько равных по сложности видеоуроков. Если в течение первого дня обучения уже завершен аж один видеоурок, то появляется объективная причина порадоваться и передохнуть. Но в случае если вы уже давно занимаетесь прохождением курса и в вашей жизни значится день, когда успешно было пройдено 19 видеоуроков, то такое достижение, как «я завершил один видеоурок», перестает восприниматься поводом для гордости: у вас уже есть осознание, что можно делать больше. Вы познали свой лимит.
Достижения из прошлого чертовски сильно влияют на то, каким вам видится горизонт возможного в настоящем.
Я встречался с маркетологами, которые тратят весь день на написание двух-трех маркетинговых писем. Они твердо убеждены, что выполняют трудную работу и делают действительно много. Именно преждевременное чувство удовлетворения от своей деятельности мешает им делать больше. Я отправлял по 30 маркетинговых писем за день, каждое из которых не было точной копией предыдущего. И я даже не устал. Потому что за день до этого я отправил 40 таких писем.
На то, какими перед нами предстают наши возможности, влияют и достижения других людей, которые мы очень внимательно и вдумчиво проецируем на себя. Спортсмен по имени Томас Берк в 1896 году пробежал 100-метровку за 12 секунд, установив мировой рекорд. За прошедшее время люди не отрастили себе дополнительных ног, никаким образом не мутировали, не начали бегать на руках, но в наши дни пробежать 100 метров за 12 секунд уже не означает взять золото на Олимпийских играх. Это теперь норматив для всего лишь третьего спортивного разряда. И знающие люди могут бросить в меня аргументом про ручные и автоматические секундомеры, но погрешность в вычислениях не была столь уж значительна, чтобы оспорить мою мысль – Томас Берк продемонстрировал лимит в 12 секунд. Позже это значение спустилось до 9 секунд, и тогда прежний результат перестал выглядеть как суровый невыполнимый вызов. Задача, растеряв свою грозность и ореол невыполнимости, становится просто проходной рутиной.
Человек, знающий, на что он способен, делает намного больше.
Между пределами, которые поставил перед собой парень с Reddit и лимитами, которые установил себе Сакагучи, – неимоверно глубокая пропасть. И мне хотелось бы грубо и грозно отрезать, что пропасть эта состоит из жалости к себе, слабой воли, отягощающей лени и вопиющего лицемерия, но все не так однозначно. Причины, по которым мы работаем мало, плохо и медленно, лежат куда глубже.