Эффективный Level Design — как создавать хорошие уровни с первого раза. Доклад для DevGamm 2013

Доклад, с которым я выступал на киевском DevGamm 2013.

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

[kml_flashembed publishmethod=»static» fversion=»9.0.0″ movie=»http://xitri.com/wp-content/uploads/2013/12/devgamm2013.swf» width=»634″ height=»450″ targetclass=»flashmovie»/]

Чтобы тратить на разработку уровней меньше времени, а если повезёт, вообще делать их с первого раза, нужно держать в уме несколько простых правил:

5 принципов, которые всегда нужно держать в уме:

Игрок должен всегда понимать, куда ему нужно идти

LevelDesignSlide1

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

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

Не говорите игроку, как это делать, а говорите что нужно делать

LevelDesignSlide2

Этот принцип можно применить не только к геймплею, но и к обучалке. Игроки не будут читать несколько текстов, где описано что нужно сделать. Лучше делать призыв к действию: в месте где нужно прыгнуть, нарисовать кнопку прыжка вверх и написать: «Нажми UP чтобы прыгнуть» и т.д. Это хороший способ познакомиться с управлением — лучше чем читать перед началом игры страницу «Управление», которую многие просто пропускают.

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

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

Постоянно обучайте игрока

LevelDesignSlide3

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

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

Уровни должны быть лёгкие, средние и сложные одновременно

LevelDesignSlide4

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

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

Ещё можно апгрейдить уровень после прохождения. Так сделано в игре Rayman:Fiesta — как только вы прошли локацию в простом режиме, открывается ещё одна, такая же по форме, но с дополнительными противниками.

Дизайн уровней должен быть эффективным

LevelDesignSlide5

Игровые объекты должны быть многофункциональными. Например, возьмём деревянный ящик, который можно двигать. Он одновременно служит для нескольких целей: нажать собой кнопку; его можно использовать как ступеньку, чтобы запрыгнуть на высокую платформу; он может остановить собой противника; его можно сбросить противнику на голову и нанести урон; его можно поломать и он перестанет быть препятствием; его можно поджечь и он будет освещать местность или поджигать противников. Чем больше возможностей будет у каждого объекта, тем «глубже» будет геймплей.

То же самое можно сказать о локациях. Почти всегда они используются один раз и игроку скучно рыскать там повторно, особенно если он уже собрал все бонусы. Лучшее решение — это поменять режим игры: например, если первый раз вы проходили локацию как пазл, где нужно было запустить сложные механизмы и открыть двери, то повторно её можно пройти, уничтожая толпы монстров. Или пройти локацию «туда» налегке, а потом взять артефакт (тяжелый) и «обратно» идти с половинной скоростью и прыгая не так высоко. Главное, чтобы игровой опыт отличался от того что было раньше.

Наращивание сложности — системный подход

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

Раньше я делал уровни интуитивно — рисовал столько разных вариантов, сколько мог придумать, потом по многo раз переигрывая, дорабатывал детали. Далее сортировал их по сложности и оставлял как есть. Нормальный подход, только требует много времени и тяжело контролировать общее развитие игры. Сейчас я работаю немножко по-другому — если можно так сказать, использую системный подход.

Разбиваем игровую механику на кусочки

LevelDesignSlide6

Важно понимать какие игровые механики основные в вашей игре. Например в игре «Супер Марио», основная механика — это прыжок, в Match3 — поменять местами 2 элемента, в гонках — повороты + скорость…

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

  1. Запрыгнуть на одинарную платформу
  2. Запрыгнуть на двойную по высоте платформу
  3. Перепрыгнуть небольшое препятствие
  4. Перепрыгнуть несколько препятствий подряд
  5. То же самое, но ещё нужно уклониться от выстрелов

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

Когда список составлен, нужно отсортировать их по сложности (мой уже отсортирован). Для удобства нумеруем каждый вариант, например для прыжка (JUMP) — J1, J2, J3…..

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

Составляем план уровней

LevelDesignSlide7

Тут нужно составить таблицу взаимодействия объектов и на её основе придумать (записать) различные игровые ситуации. Их тоже нужно упорядочить по сложности.

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

  • Когда в игру вводятся новые объекты
  • В каких уровнях какие объекты используются (чередуем чтобы не было скучно)
  • Какие есть режимы игры — опять же, чередуем
  • Какие игровые ситуации где будут применяться
  • Сложность каждого уровня
  • Общий прогресс нарастания сложности

Создаём и тестируем уровни

LevelDesignSlide8

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

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

Отдельно стоит сказать о случае, когда уровни создаются динамически и рандомно. Так как у нас возможные препятствия и игровые ситуации имеют своё число сложности, можно без труда создать, скажем первый уровень на сложность 10, второй на сложность 13 и т.д. Начальные уровни будем строить только из элементов с низкой сложностью и по мере нарастания будем расширять диапазон.

На этом всё.
Благодарю всех, кто пришёл послушать доклад на DevGamm!
Если у вас есть вопросы по этой теме, с удовольствием на них отвечу.

По следам киевского DevGamm 2013

Я не пропустил ни одного флешгама девгама, который проходил в Украине. Конференция развивается и в этот раз я это ощутил, как никогда прежде. Количество участников было около 1300 человек и половину докладов мне пришлось выслушивать стоя, так как на всех не хватало стульев. Стоит ли говорить о том, что пустых залов не было вообще. Лично мне, в этот раз доклады показались более интересными, чем на прошлых конференциях. По крайней мере, в каждом я находил что-то полезное для себя. Даже атмосфера была какая-то другая. Наверное потому, что разработчиков было гораздо больше, чем спонсоров и это реально ощущалось.

Для меня всё интересное началось с доклада Якуба Дворски, разработчика известной флеш-игры Machinarium. Это был интересный рассказ о том, как рождалась идея игры, как создавался контент и какими принципами они руководствовались при разработке. Оказалось, что художник, будучи правшой, специально рисовал весь арт левой рукой, чтобы придать ему неповторимый стиль (говорит, что под конец он научился рисовать левой рукой так же хорошо, как и правой). Озвучку ребята делали сами, «цокая» и «дзынькая» металлическими деталями друг по другу возле микрофона.   Мои выводы после этого доклада: не нужно гнаться за деньгами и идти на поводу у рынка — нужно делать то, что нравится и делать это очень хорошо!Якуб Дворски — чешский гейм-дизайнер, художник и основатель небольшой инди-студии «Amanita Design»

На докладе ToonGuru (о разработке ярких и запоминающихся персонажей) поймал себя на мысли, что сегодня все делают «няшных», милых и симпатичных персонажей. А смешных и придурковатых почти нет . Это на самом деле странно, потому что когда я много лет назад работал в организации, которая продавала поздравительные флеш-открытки, у нас почти все персонажи были такими. По-моему игровая мода просто ещё не раскусила эту фишку.

Потом меня удивил тот факт, что сегодня можно запускать социальные игры серьёзного уровня всего за 2-3 месяца! Конечно, нужна хорошая команда и ребята из RocketJump Games это делают. Главный секрет в том, что они запускают не до конца готовый продукт. Сначала есть только основной функционал, а всё остальное «допиливают» по ходу дела и уже с учётом реального фидбека от игроков.

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

Я окончательно убедился в том, что флеш уверенно уходит на пенсию. Собственно это ни для кого не секрет, даже конференция была переименована чтобы соответствовать современным реалиям. Adobe за последние несколько лет не уделяет флешу достаточного внимания, а AIR на мобилках уступает по производительности лидерам рынка. Конечно, народ ещё делает игры на флеше и процесс расставания не будет резким, но задуматься нужно было ещё вчера. На мой взгляд, сейчас самый лучший вариант- это Unity3D. Инди-версия бесплатна, а с новой поддержкой 2D режима, делать игры (в том числе физические) будет нагляднее и проще. Alternativa3D, например, тоже переводит свои игры на Unity и на их стенде можно было видеть рабочие демки — выглядит круто. И это правильно — сила в алгоритмах, а не в технологиях.

[notice noticeType=»attention» ]Кстати, Антон Волков задумал очень амбициозный проект, который позволит группе в 5-6 человек, создавать игры на технологиях Альтернативы в рекордно короткие сроки. И сейчас он собирает спецназ разработчиков, готовых взяться за это дело. Удалённый вариант не подходит, поэтому, если это ваш случай и вы живёте в Перми или желаете туда переехать, звоните по номеру +7 (912) 07-09-204. В ближайшем будущем будет больше информации по этой теме.[/notice]

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

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

А ещё мне понравилось нововведение под названием GAMM:Play, где разработчики выставляли свои игры на обзор и собирали отзывы. Всё таки, как легко оценивать чужие игры со стороны и как тяжело замечать собственные ошибки. Например, подхожу к одному столику, вижу что графика и анимация выполнены хорошо, а игра скучная. Так и хочется сказать: «Ну что же ты время зря тратил на оформление, если у тебя геймплей не доработан?» А потом понимаю, что сам много раз на эти грабли наступал. В общем, раннее тестирование решает.

Особый ажиотаж вызвали разработчики игры SteamBot, которые привезли с собой очки виртуальной реальности Oculus Rift. К ним выстроилась такая очередь, что выстоять её было нереально и пришлось их потом отдельно отлавливать, чтобы протестировать эту технологию. Это очень сильная штука. Несмотря на то, что это это была лайт-версия (development kit) и разрешение там не супер, в какой-то момент я начал терять ощущение реальности и был близок к тому, чтобы чтобы матрица меня «засосала».oculusRift

Всем огромная благодарность за мероприятие. Организаторам — за то, что его сделали, остальным — за то что приехали и с вами было интересно. За эти два дня я получил сильный заряд и желание что-то делать. Если бы у меня был с собой ноутбук, я бы в поезде до утра клепал бы игровые прототипы. Хотел бы ещё кто-то после девгамма устроить ночь разработки игр? В первую очередь ради опыта. Чтобы любую идею можно было обсудить публично, спросить совет, послушать что придумали другие, может быть подключиться к ним…

P.S. В зале многие фотографировали и если я у кого-то попал в кадр, прошу, отметьте меня на фото в соцсетях или киньте ссылку в личку.