Это перевод поста, автором которого является Derek Yu, также известный разработкой игр Aquaria и Spelunky. Я уверен, что данный текст представляет интерес как для новичков, мечтающих создать свою первую игру, так и для опытных разработчиков, за спиной которых немало как завершенных, так и оставленных на полпути проектов.
Несмотря на то, что я изо всех сил старался передать стиль изложения и суть мыслей, содержащихся в статье, перевод едва ли может быть лучше оригинала, поэтому, если вы свободно читаете по-английски, прочитайте лучше оригинальный пост оригинальный пост. Также он более читабелен благодаря тому, что в Тамблере ширина текста раза в 3 меньше.
Завершение игры
Двигаясь к релизу моей собственной игры, я много думал о доведении вообще каких-либо проектов до конца. Я заметил, что множество талантливых разработчиков испытывают сложности с завершением своих игр. Честно говоря, я и сам оставил длинный след из недоделанных игр в моем кильватере... думаю, у всех так. Не каждому проекту суждено быть успешным, по различным причинам. Но если вы заметили, что раз за разом бросаете разработку игровых проектов, поначалу казавшихся перспективными, возможно, пришло время немного отступить и задуматься о том, почему так выходит.
Мы все думали хотя бы об одной игре, книге, фильме, и т. д., которые были выпущены: «Ха, да я мог бы сделать гораздо лучше! И почему людям это может нравиться?» Но важно осознавать, что люди потратили свое время на то, чтобы довести проект до конца, а я — нет. Это уже как минимум один критерий, по которому они лучше меня, и, вполне возможно, именно это является причиной, по которой люди о них знают, а обо мне — нет. Если относиться к «заканчиванию» проекта именно как к умению, а не просто как к одной из стадий процесса, то вы не только осознаете, что вы можете совершенствоваться в этом умении, но и поймете, какие именно привычки и ошибки мышления мешают вам сделать это.
Я не думаю, что есть какой-то «правильный» способ делать игры. Это творческий процесс, поэтому тут не может быть железных правил, которые нельзя нарушать. Но как разработчику игр, который обсуждал эту проблему с другими разработчиками игр, мне кажется, что есть кое-какие грабли, на которые мы все время от времени наступаем, особенно когда мы еще неопытны. Знание о том, что это за грабли — отличный первый шаг к тому, чтобы что-нибудь завершить. (Между нами говоря, формулирование этих идей мне и самому не помешает, чтобы не повторять таких ошибок!)
(Между нами говоря, я тоже решил перевести этот текст во многом именно затем, чтобы приведенные здесь идеи как следует закрепились в моей голове — Прим. перев.)
Итак, не тратя более лишних слов, представляю вам список из 15 советов, которые помогут завершить игру:
1. ВЫБЕРИТЕ ПЕРСПЕКТИВНУЮ ИДЕЮ
Я обнаружил, что существуют три типа игр, разработкой которых я могу заниматься: игры, которые мне хочется делать, игры, о которых я мечтаю и наконец, игры, которые я хорошо умею делать.
Игры, которые мне хочется делать — это игры, в которых сам процесс разработки действительно интересен. Например, если в них есть механики, с которыми очень весело экспериментировать, или там есть персонаж, анимацию которого мне очень хочется нарисовать.
Игры, о которых я мечтаю — это игры, где мне интересен именно результат, а не процесс разработки. Возможно, это какой-нибудь совсем неправдоподобный концепт («ОМГ, гибрид GTA, Final Fantasy, Starcraft и чего-нибудь еще...») или просто неплохая идея, которую при этом не очень-то весело воплощать в жизнь.
Игры, которые я хорошо умею делать — это игры, которые хорошо подходят моему типу личности и в разработке которых у меня есть некоторый опыт. Наверняка у вас есть какой-нибудь жанр, к которому вас особенно тянет и принципы и механики которого вы особенно хорошо понимаете.
На мой взгляд, самые перспективные идеи (по крайней мере, с точки зрения вероятности быть завершенными) — это те, которые попали во все три категории, а также удовлетворяют дополнительному условию «у меня есть время и ресурсы для того, чтобы действительно сделать это».
2. НА САМОМ ДЕЛЕ НАЧНИТЕ ДЕЛАТЬ ГРЕБАНУЮ ИГРУ
Записать идею — это не то же самое, что и начать делать гребаную игру. Написать дизайн-документ — не значит начать делать гребаную игру. Собрать команду — не значит начать делать гребаную игру. Даже рисование арта или сочинение музыки все еще не значит, что вы начали делать гребаную игру. Подготовку к тому, чтобы начать делать гребаную игру очень легко перепутать с началом создания гребаной игры. Просто запомните: в гребаную игру можно играть, и если вы не создали ничего, во что можно играть — это не гребаная игра!
Так что, блин, даже создание игрового движка не обязательно означает, что вы начали делать гребаную игру. Что подводит нас к следующему совету...
3. НЕ ВЫКАТЫВАЙТЕ СВОЮ СОБСТВЕННУЮ ТЕХНИКУ, ЕСЛИ МОЖНО ЭТОГО НЕ ДЕЛАТЬ
В создании собственного движка есть как плюсы, так и минусы. Но задайте себе вопрос: оно вам действительно надо? Неужели то, что вы хотите сделать, невозможно при помощи уже созданных кем-то инструментов, или вам просто хочется изобрести велосипед? Конечно, если вы напишите свой собственный движок, вы сможете сделать его идеально подходящим для ваших целей. Но если быть честным, как часто вы переходите от создания движка к созданию самой игры? Не получается ли так, что вы создаете движки гораздо чаще, чем игры?
Я создал первоначальную версию Spelunky в Game Maker, и именно то, что я смог завершить ее хотя бы в таком виде, дало мне возможность работать дальше над версией для Xbox 360. Так что даже не думайте, что софт для создания игр или другие упрощенные инструменты — это что-то недостойное. Единственное, что имеет значение — это игра.
Этот совет дополняет пункт #2: всегда сперва создавайте прототип игры любыми доступными средствами. Иногда вы сразу поймете, что выбрали неудачную идею. Иногда в процессе вы можете додуматься до еще ЛУЧШЕЙ идеи. В любом случае, лично мне обычно очень сложно разобраться, что же я на самом деле хочу сделать, пока я не начну что-нибудь делать. Так что сделайте что-нибудь!
5. УБЕДИТЕСЬ, ЧТО ВАШИ ОСНОВНЫЕ МЕХАНИКИ ИНТЕРЕСНЫ
Найдите несколько основных игровых механик с которыми действительно весело играться. Самые обыденные игровые действия должны вызывать интерес и доставлять удовольствие, потому что именно этими действиями игрок будет занят бо́льшую часть игрового времени. В идеале, именно на базе этих основных механик должны основываться все фичи вашей игры. Это сильно облегчит вам жизнь в будущем, когда вам придется вырезать что-нибудь из игры (см. пункт #13): при необходимости вы всегда сможете постепенно вернуться к механикам, с которых начинали.
Вполне возможно, в процессе прототипирования вы откроете новую механику, которая окажется БОЛЕЕ захватывающей, чем та, которую вы изначально полагали одной из основных. В таком случае вам стоит серьезно задуматься о возможности заменить старую механику на новую.
6. ВЫБИРАЙТЕ ХОРОШИХ ПАРТНЕРОВ (ИЛИ РАБОТАЙТЕ В ОДИНОЧЕСТВЕ КАК МОЖНО ДОЛЬШЕ)
Поиск хорошего партнера для создания игры во многом похож на свидания. Возможно, вы думаете, что важны только умения: «О, круто, я — программист, а этот чел — художник... давайте СДЕЛАЕМ ЭТО!» Но нет, оказывается, есть еще куча вещей, которые имеют значение, например, личные качества, опыт, свободное время и взаимная заинтересованность. Как и в романтических отношениях, никто не хочет оказаться в ситуации, когда он или партнер в гораздо меньшей степени посвящает себя общему делу. Проверьте друг друга, попробовав создать вместе пару небольших проектов, потому что мало что может быть хуже, чем выход из игры важного члена команды после нескольких месяцев или лет разработки.
Кстати, еще один плюс завершенных проектов состоит в том, что ваши партнеры знают, что вы в принципе на это способны, и они будут чувствовать себя гораздо увереннее, работая с вами. Сложно убедить опытного разработчика работать с вами над голой идеей, учитывая, как мало идей на самом деле воплощаются в жизнь (и то, как сложно понять удачность некоторых идей до того, как они реализованы). Хорошие партнеры точно захотят увидеть ваши завершенные игры. Так что завершайте их!
Другой путь — найти в интернете бесплатный арт или музыку, хотя бы в качестве временного варианта (например, на Independent Gaming Source у нас был конкурс, во время которого создали кучу бесплатного арта и музыки). В крайнем случае, используйте ASCII. Как художник, я знаю, что гораздо с большим рвением присоединюсь к проекту, в котором уже все готово, кроме арта. А если вам нужен кодер...подумайте над тем, чтобы самому научиться кодить (если даже я справился, вы тоже сможете!) или поищите какую-нибудь среду разработки игр (см. пункт #3).
7. РУТИННАЯ РАБОТА — ЭТО НОРМА, УЧИТЫВАЙТЕ ЭТО В СВОИХ ПЛАНАХ
Немалая часть разработки игр состоит из скучной и однообразной работы. Это не игра, это работа (и поэтому вам следует придушить ЛЮБОГО, кто посмеет шутить на тему того, что вы «целыми днями играетесь в игры»). В какой-то момент вы внезапно осознаете, что вам нужно делать кучу фигни, которая вам даже в голову не приходила, когда вы планировали и прототипировали свою игру — например, меню, переход между экранами, сохранение и загрузка, и так далее. «Пристрелите меня! Я воображал себе этот чудесный мир, который я собирался создать, или эту захватывающую механику, с которой я собирался экспериментировать...Я не думал, что я буду неделями сидеть и пытаться создать интерфейс, который не выглядит как дерьмо!» Или, знаете, есть всякие штуки, которые довольно забавно делать в небольших количествах, например, анимировать персонажей, и которые становятся ночным кошмаром, когда вы понимаете, что вам надо анимировать 100 различных персонажей.
После того, как вы пройдете через это пару раз, вы осознаете, насколько важно планировать проект таким образом, чтобы вы не застревали слишком надолго в этом смертельном болоте («слишком надолго» означает «настолько долго, чтобы вы забросили проект»). Вы также осознаете, что многое из этой скукоты в результате дает вам ощущение завершенности игры. Например, вы не поверите, насколько сильно хорошее стартовое меню влияет на ощущение того, что перед вами — настоящая игра.
8. ИСПОЛЬЗУЙТЕ КОНКУРСЫ, ПРЕМИИ И ПРОЧИЕ ПОДОБНЫЕ СОБЫТИЯ В КАЧЕСТВЕ РЕАЛЬНЫХ ДЕДЛАЙНОВ
Когда Alec и я работали над Aquaria, крайние сроки подачи заявок на Фестиваль независимых игр заставили нас принимать сложные решения о том, в какую сторону нам следует двигаться, и смотреть на наши планы более реалистично. Если бы нас не поджимал тот дедлайн, я вообще не уверен, что мы бы когда-нибудь закончили! В конкурсах очень полезно участвовать, потому что, с одной стороны, их ограничения по срокам очень реальны, а с другой — выгода (известность, награды, иногда даже деньги) от участия тоже очень реальна. Также они могут помочь вам найти сообщество людей, имеющих схожие интересы.
Вам кажется, что вы застряли на чем-то? Прите вперед. Начните работу над следующим уровнем, над следующим монстром, над следующим хоть чем-нибудь. Это полезно не только с точки зрения мотивации, но и помогает вам лучше почувствовать свою игру в целом. Как и с написанием текстов — вам не нужно кропотливо продумывать предложение за предложением, переходя к следующему только после того, как предыдущее идеально. Ваша цель для начала — иметь цельный набросок.
10. ЗАБОТЬТЕСЬ О СВОЕМ ДУШЕВНОМ И ФИЗИЧЕСКОМ ЗДОРОВЬЕ
Когда вы сосредоточены на том, чтобы завершить игру, может оказаться на удивление сложно заботиться о себе. Но поверьте мне, вы оказываете своей игре медвежью услугу, жертвуя сном, физическими упражнениями или правильным питанием. В лучшем случае, вы просто не даете себе работать в полную силу и увеличиваете шанс того, что вы бросите делать игру. Испытывать некоторые сомнения по поводу вашего проекта — совершенно нормально, но не впадать из-за него в депрессию. Удивительно, насколько сильно вы можете возненавидеть работу над проектом вашей мечты, если ваше тело и разум при этом находятся в плачевном состоянии.
11. ПЕРЕСТАНЬТЕ ВЫДУМЫВАТЬ ПОВОДЫ НАЧАТЬ ВСЕ СНАЧАЛА
«Я наговнокодил. Но я уже многому научился. Если бы я начал все сначала, я смог бы переделать все гораздо лучше и быстрее, и потом доделать оставшуюся часть игры еще быстрее!»
СТОП. НЕТ. Это случается в определенный момент в процессе создания каждой игры. Вы всегда будете писать говнокод. Вы всегда будете многому учиться. Результат никогда не будет идеален. И если вы начнете сначала, в какой-то момент вы снова дойдете до этого момента, оказавшись в абсолютно такой же ситуации. Рассуждать подобным образом — чудовищная ошибка.
Вот вам анекдот: мужик всю жизнь работает над игровым движком, который будет настолько идеален, что в нем надо будет нажать одну кнопку и движок создаст идеальную игру. Ну, на самом деле, этот анекдот не очень смешной, потому что его соль заключается в том, что мужик этот никогда не доведет свою работу до конца. Нет такого движка и нет такой игры.
Если плохая организация кода действительно замедляет разработку, вернитесь чуть-чуть назад и поменяйте что-нибудь, чтобы почувствовать себя лучше. Если же код работает, но какой-то он не очень классный, то проявите храбрость и прите вперед!
12. ОСТАВЬТЕ ЭТО ДЛЯ СЛЕДУЮЩЕЙ ИГРЫ
Итак, в разгаре процесса разработки у вас появилась блестящая идея, которая снесет всем кукушечку, но вам нужно переделывать всю игру для того, чтобы реализовать ее? Оставьте ее для следующей игры! Правильно? Это же не последняя игра, которую вы делаете, я надеюсь. Оставьте ее для следующей... но сперва завершите эту!
13. ВЫРЕЖЬТЕ. ЭТО. НАФИГ.
Вот блин, вы неслабо отстали от расписания. У вас есть все эти крутые идеи, но человечество успеет колонизировать Марс раньше, чем вы реализуете хотя бы половину из них. Горе вам... НО ПОДОЖДИТЕ-КА!
Это же отлично! Потому что теперь вам придется решать, что на самом деле важно для вашей игры, а что можно выкинуть. На самом деле, если бы у нас у всех были неограниченные ресурсы и целая вечность на разработку наших игр, мы бы все делали одинаковые всеобъемлющие говноигры, а играть в них вообще не было бы смысла. Только благодаря тому, что наши ресурсы и время ограничены, нам приходится делать насыщенные игры, которые создают ощущение того, что в них есть какой-то смысл.
Если вы строили игру на каких-то простых механиках, которые интересны сами по себе, просто режьте до тех пор, пока у вас не останется это ядро. Все остальное, скорее всего, просто шелуха, без которой вы вполне могли обойтись. Или даже хуже: это шелуха, под которой люди могли бы не разглядеть лучших особенностей вашей игры.
14. ЕСЛИ ВЫ БРОСАЕТЕ ПРОЕКТ, УМЕНЬШАЙТЕ СВОИ АМБИЦИИ, А НЕ УВЕЛИЧИВАЙТЕ
Окей, иногда приходит время бросить игру. Может, у вас просто нет способа завершить начатое, а то, что у вас есть на руках — слишком большой бардак, чтобы пытаться что-то вырезать. Может, вся остальная команда уже развалилась. Я пишу этот список советов как раз в надежде на то, что он поможет читателям избежать подобной ситуации, но, эй, может быть, вы как раз только что бросили такой проект. К тому же, иногда... разная херня просто случается.
Если нет никакого способа восстановить работу над проектом, хотя бы убедитесь, что в следующий раз вы возьметесь за что-то более выполнимое. Очень легко наращивать масштабы своих проектов все выше и выше, несмотря на то, что они становятся все менее и менее завершенными. "Мои УМЕНИЯ улучшаются! Я учусь на своих ошибках" — популярная отмазка. Но я думаю, что именно поэтому к "завершению" важно относиться, как к одному из самых важных умений для разработчика игр.
Так что уменьшайте свои амбиции до того уровня, который даже может показаться вам недостойным вас. Например, вместо того, чтобы скакать от вашего глобального космического симулятора к вашему глобальному космическому симулятору В ТРИДЭ, попробуйте сделать отличную игру, которая построена на каком-то одном аспекте космических симуляторов. Ну а если вы не сможете завершить и это, попробуйте создать игру типа Астероидов. Возможно, в итоге это окажется куда сложнее, чем вы думали (и/или гораздо интереснее разрабатывать, чем вы думали)!
15. ПОСЛЕДНИЕ 10 ПРОЦЕНТОВ
Говорят, что последние 10 процентов — на самом деле 90 процентов, и в этом есть доля правды. Именно на детали уходит больше всего времени. Конечно, вы можете накодить неплохую боевую систему за неделю... но сделать ее реально крутой и сложной (и без багов)... это может занять месяцы. Правда в том, что вы будете думать, что вышли на финишную прямую, кучу раз до того, как на самом деле на нее выйдете.
Если это звучит удручающе, то вы неправильно меня поняли. Несмотря на то, что последние 10 процентов мучительны, я также заметил, что этот период разработки приносит наиболее глубокое удовлетворение. Потому что чаще всего, если вы все делали правильно, то разрозненные части игры начинают объединяться в единое целое. И это волшебное чувство — когда винегрет из отдельных идей и контента вдруг превращается в полноценную игру.
В общем-то, это все.
И НАКОНЕЦ...РЕЛИЗ!
Мать моя женщина, да вы сделали игру! Поздравляю, ваш уровень только что повысился. Бонусы включают в себя: повышение уверенности в себе, репутация разработчика, который умеет завершать проекты, а также понимание всего процесса разработки! Самое крутое, впрочем — это то, что у вас есть прекрасная игрушка, в которую я тоже смогу сыграть! А я люблю играть в игры, почти так же сильно, как я люблю делать их.
Никакого больше стояния в стороне, друг: ТЫ — РАЗРАБОТЧИК ИГР.