Game development
21 May 2011

Как доделать игру

Original author: Derek Yu
Translation
На блоге одного из создателей Aquaria и Spelunky есть любопытный пост с советами для тех, кто испытывает проблемы с доведением до конца своих игровых проектов. Этот список советов оказался для меня своего рода «зеркалом», в котором отражены многие проблемы, с которыми сталкивался я сам, и я был удивлен тем, насколько хорошо автору удалось уловить суть этих проблем и предложить свои решения, зачастую бескомпромисные.
image
Приближаясь к заключительной стадии разработки моей игры, я много думал о том, как завершать выполнение проектов в целом. Я заметил, что вокруг много действительно талантливых разработчиков, у которых возникают проблемы с доведением до конца игровых проектов. По правде говоря, я и сам оставил позади себя ряд незавершенных игр… Думаю, у многих та же ситуация. Не всякий проект удается, по разным причинам. Однако если вы стали замечать, что постоянно забрасываете проекты, которые имеют неплохой потенциал, вероятно, стоит оглянуться назад и изучить тому причины.

Когда выходила новая игра, книга, фильм, и т.д., каждому в голову когда-нибудь приходила мысль «Эй! Я бы сделал это гораздо лучше! Это явно переоценено». Важно остановиться и понять, что создатели вложили своё время в проект и завершили его, а я — нет. Это как минимум одна причина, по которой они лучше меня, почему они получили признание, а я — нет. Если вы расцениваете доведение дела до конца скорее как навык, чем как этап некоторого процесса, значит вы подтвердите, что это то, в чем можно совершенствоваться, и вероятно вы в курсе, какие привычки и мыслительные процессы сопровождают разработчика во время завершения проекта.

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

Итак, далее следуют 15 советов для тех, кто хочет успешно довести до конца свой игровой проект:

1. Выбирайте идею, имеющую потенциал


image
Есть три типа игр, которые вызывают во мне интерес: игры, которые я хочу делать, игры, которые я хотел бы, чтобы были сделаны, и игры, которые я хорошо делаю.

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

Игры, которые я хотел бы, чтобы были сделаны — это игры, в которых меня интересует именно результат, а не процесс его достижения. Это может быть игра с невероятной концепцией («ОМГ, GTA + Final Fantasy + Starcraft + ...»), или просто с классной идеей, воплощать которую в жизнь может быть далеко не весело.

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

По моему мнению, игры с наибольшим потенциалом (достаточным по крайней мере для того, чтобы довести дело до конца) принадлежат одновременно ко всем трем категориям и удовлетворяют требованию «у меня есть время и ресурсы, чтобы действительно сделать это».

2. Начинайте наконец делать эту чертову игру


Оформить и выписать идею игры не значит начать делать игру. Описать в документе дизайн игры не значит начать делать игру. Собрать команду не значит начать делать игру. Даже делать музыку и визуальную составляющую не значит делать игру. Очень легко спутать «готовиться начать делать игру» и «начать делать игру». Просто запомните: в игру можно играть, а если вы не сделали ничего, во что можно играть, значит это ещё не игра!

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

3. Не воротите свой движок без необходимости


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

Оригинальную версию моей игры Spelunky я сделал в Game Maker'е, и эта по-настоящему завершенная игра позволила мне продолжить работу над версией уже под XBOX360. Поэтому не воспринимайте программное обеспечение для создания игр и прочие инструменты, упрощающие работу, как нечто противозаконное. Главное — игра.

4. Делайте прототипы


Совет вслед за #2: делайте прототипы всего, что имеете. Иногда плохие идеи обнаруживаются тут же. Иногда идеи развиваются и становятся ещё лучше. Так или иначе, я обычно с большим трудом могу понять, куда вкладывать усилия, пока не начну наконец что-то делать. Поэтому делайте что-нибудь!

5. Убедитесь в том, что игровая механика интересна


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

В процессе прототипирования может случиться так, что откроется новая механика, интереснее задуманной изначально — рассмотрите вариант использования этой новой механики вместо старой!

6. Выбирайте хороших партнеров (или работайте один так долго, как только сможете)


image
Поиск хорошего партнера для разработки игр во многом напоминает ухаживание. Можно подумать, что умение — это все, что нужно: «Ох круто, я программер, а этот парень — художник… давай сделаем это!». Но нет, есть другие вещи, которые надо принимать в расчет, такие как личные качества, опыт, свободное время и степень заинтересованности. Как и в романтических отношениях, вряд ли вы хотите оказаться в ситуации, когда партнер заинтересован гораздо меньше вас. Присмотритесь и проверьте друг друга на нескольких мелких проектах, поскольку бывает действительно разрушительной такая ситуация, когда ключевой человек уходит из разработки после нескольких месяцев или даже лет с момента ее начала.

Ещё одно преимущество наличия завершенных проектов в том, что партнеры будут знать, на что вы способны, и им будет удобнее с вами работать. Очень сложно убедить кого-то опытного работать с вами, имея в наличии одну единственную идею, учитывая то, как мало таких идей выживают (и как тяжело увидеть значимость какой-то идеи до тех пор, пока она не реализована). Хорошие партнеры захотят увидеть ваши завершенные проекты. Так что доделывайте их!

С другой стороны, можно найти бесплатную музыку и графику в интернете, по крайней мере на время (на The Independent Gaming Source мы участвовали в соревновании, на котором было создано очень много бесплатной музыки и графического наполнения для игр). Используйте ASCII, если нужно. Как художник, я знаю, что внесу вклад скорее в проект, который почти завершен и нуждается только в графической составляющей. А если вам нужен программист… попробуйте научиться программировать сами (если я смог, сможете и вы!), или найдите соответствующий софт (см. #3).

7. Тяжелая работа — это нормально, включите в свой план


Создание игр во многом утомительно и совершенно невесело. Это не игра, это работа (поэтому затыкайте всех, кто шутит, что вы «играете в игры весь день»). В какой-то момент вы осознаете, что есть вся эта фигня, о которой вы не думали, когда планировали проект и делали прототипы — игровые меню, экраны переходов, загрузка и сохранение, и т.д. «Надо же! Я представлял себе потрясающий мир, который буду создавать, и этот прикольный геймплей, с которым буду экспериментировать… Я не думал, что буду тратить недели, делая функциональные меню, которые бы не выглядели как дерьмо!». Или, например, есть вещи, такие как анимация персонажей, которые интересны в определённых дозах и становятся кошмаром, когда понимаешь, что этих персонажей штук 100.

Как только вы пройдете все это несколько раз, придет понимание того, как важно масштабировать проект, чтобы не проводить слишком много времени в этой неизбежной трясине («слишком много» означает количество времени до того момента, когда вы забросите разработку). Вы также осознаете, что все эти детали на самом деле придают игре завершенный вид! Даже симпатичный стартовый экран может творить чудеса.

8. Используйте соревнования и другие мероприятия как реальные дедлайны


Когда Алек и я работали над Aquaria, дедлайн подачи заявок на Independent Games Festival заставил нас принимать тяжелые и радикальные решения насчет направления нашей деятельности и пересмотреть наш график. Если бы не этот дедлайн, не думаю, что мы вообще закончили бы! Участие в соревнованиях очень полезно, поскольку там реальные дедлайны и реальные награды (признание, возможно деньги). Также это способ познакомиться с единомышленниками.

9. Двигайтесь вперед


Ощущаете, что застряли? Идите дальше. Начните работу над новым уровнем, новым врагом, новым чем угодно. Это полезно не только для повышения мотивации, но и помогает ощутить, как в целом будет выглядеть игра. Это как сочинять — никто не пишет предложение за предложением, придавая каждому идеальный вид, прежде чем двигаться дальше. Сначала составляют план.

10. Следите за своим умственным и физическим состоянием


image
Может оказаться на удивление трудно следить за своим состоянием, когда вы так сосредоточены на том, чтобы доделать игру. По правде говоря, отказываться от сна, физических упражнений и правильного питания значит делать самому себе медвежью услугу. В лучшем случае, вы снижаете свои возможности работать на полную мощность и повышаете свои шансы забить на проект. Сомневаться и волноваться насчет своего проекта естественно, но впадать из-за этого в депрессию или болеть — нет. Удивительно, как сильно можно не хотеть работать над игрой своей мечты, когда чувствуешь себя как тряпка.

11. Прекратите оправдывать начинание «с нуля»


image
«Мой код — сплошной хаос. И ещё я многому уже научился. Если я начну заново, я сделаю все гораздо лучше и быстрее, и дальнейшая разработка тоже пойдет быстрее!

Стоп. Нет. На каком-то этапе так бывает во всех игровых проектах. В вашем коде всегда будет неразбериха. Вы многому научитесь. Оно никогда не будет идеальным. И если вы начнете все сначала, то придете к тому же состоянию, от которого ушли. Мыслить таким образом — ужасная ловушка.

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

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

12. Оставьте это для следующей игры


Итак, в разгаре разработки у вас родилась идея, которая взбудоражит умы всех, но для реализации которой придется переделывать всю игру? Оставьте её для следующей игры! Верно? Надо полагать, не последнюю игру делаете. Оставьте новую идею для следующей игры… и завершите текущую!

13. Вырезать. Это. Полностью.


image
Вот черт, поджимают сроки. В голове все эти идеи, которые успеют колонизировать Марс, прежде чем удастся реализовать хотя бы половину из них. Вот беда… Но подождите!

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

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

14. В случае неудачи уменьшайте масштабы


Что ж, иногда бывают провалы. Может быть, нет никакого пути вообще когда-нибудь завершить проект, или в вашем распоряжении слишком большой хаос наработок, чтобы что-то отсеивать. Может быть, остальная часть команды уже забила. Я составляю этот список в надежде помочь людям избежать подобных возможностей, но эй, может вы уже пришли с развалившегося проекта. А иногда… shit just happens.

Если нет возможности что-либо спасти, по крайней мере уменьшите масштабы следующего проекта. Очень просто хотеть все больше и больше, даже если проекты становятся все менее и менее завершенными. „Мои навыки повышаются! Я учусь на своих ошибках“ — типичное оправдание. Именно поэтому я считаю, что умение доводить проект до конца надо тоже трактовать как навык.

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

15. Последние 10 процентов


Говорят, последние 10 процентов — на самом деле 90, и в этом есть доля правды. Это детали, которые отнимают много времени… Действительно, может вы закодили мощную боевую систему за неделю… но сделать ее действительно качественной и отлаженной… на это могут уйти месяцы. Бывает и так, что этот финальный круг будет повторяться раз за разом, прежде чем наступит настоящий финальный круг.

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

Это все, что касается деталей.

И наконец… релиз!


image
Невероятно, вы выпустили игру! Поздравляю, вы повысили свой уровень, это успех. Среди призов: увеличенная уверенность в себе, репутация за навык доведения проектов до конца, а также понимание всего процесса разработки игр! Хотя лучшим моментом является то, что теперь у вас есть небольшая прикольная игра, в которую я могу играть и наслаждаться. А я люблю играть в игры, практически так же, как люблю их делать.

Больше никакого простаивания в кулуарах, друг: теперь ты — разработчик игр.

+128
25.9k 423
Comments 54
Top of the day