Gamedev Андрей Верещагин
4 758

Проверка взаимодействия игровых систем с помощью таблиц

Простой инструмент, позволяющий держать всё под контролем.

В закладки

Журналист Vice Джастин Рив в своём блоге рассказал, как геймдизайнеры налаживают взаимодействие игровых систем на уровне концепта. Для этого используются простые таблицы, которые наглядно показывают, как разные механики работают друг с другом. Мы выбрали из материала главное.

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

По оси Y располагаются игровые объекты, а по оси X — их атрибуты. Работа дизайнера заключается в том, чтобы каждому объекту соответствовали какие-то атрибуты, а их сумма не менялась от перестановки.

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

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

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

Системам не обязательно взаимодействовать — вполне возможно создать игру, в которой механики не будут пересекаться между собой. Однако, как правило, разработчикам приходится делать так, чтобы системы работали вместе. Лишь изредка взаимодействие между ними происходит случайно (как в случае с рокет-джампом).

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

В качестве примера Джастин Рив предлагает рассмотреть The Legend of Zelda: Breath of the Wild. Он берёт две системы: боевую и Sheikah Slate, открывающую доступ к магии. Элементы боевой системы, такие как уворот, блок, скрытность, атака ближнего боя, атака дальнего боя, заряженная атака и прочность оружия помещаются на ось Y. На оси X расположены магнетизм, бомба, стазис, заморозка, камера, мотоцикл и Amiibo.

Автор отмечает, что не все клетки обязательно должны быть заполнены, потому что некоторые взаимодействия внутри игры просто невозможны. Впрочем, в случае с Breath of the Wild он намерено оставил некоторые области пустыми, предлагая читателям самим решить, что же должно находиться в них.

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

#опыт #геймдизайн

{ "author_name": "Андрей Верещагин", "author_type": "editor", "tags": ["\u043e\u043f\u044b\u0442","\u0433\u0435\u0439\u043c\u0434\u0438\u0437\u0430\u0439\u043d"], "comments": 17, "likes": 53, "favorites": 100, "is_advertisement": false, "subsite_label": "gamedev", "id": 26422, "is_wide": false }
{ "id": 26422, "author_id": 22254, "diff_limit": 1000, "urls": {"diff":"\/comments\/26422\/get","add":"\/comments\/26422\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/26422"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64954 }

17 комментариев 17 комм.

Популярные

По порядку

Написать комментарий...
26

В этот раз попали в таблицы и игры на своей доске вариантов для статей?

Ответить
12

У cd projekt red была более забавная идея насчёт таблиц.
Они просто выписывали все игровые объекты как по вертикали, так и по горизонтали, а в ячейках прописывали взаимодействие.
Причем "Бандит -> Ведьмак" и "Ведьмак -> Бандит" это разные взаимодействия.
Вся таблица нужна чтобы убедиться, что никакие взаимодействия не пропущены и всё учтено.
Я найду потом это видео, если вспомню.

Ответить
5

Бандит -> Ведьмак -> Пиздит
Ведьмак -> Бандит -> Пиздит

Гениальный геймдизайн на кончиках пальцев

Ответить
10

Ударения во взаимодействиях расставьте самостоятельно :D

Ответить
5

https://youtu.be/moW8-MXjivs
Вот здесь, начиная с 31:00 говорится об этом.

Ответить
0

Да, так и должно быть. А приведённая в статье таблица не будет работать полноценно. Видимо, очередной некомпетентный в вопросе журналист

Ответить
5

Самое главное не написанно - как определять веса/цифры для не количественных атрибутов. Если только член в доску метать, (из первого комментарии)

Ответить
0

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

Ответить
1

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

Как?

Ответить
5

Чёт дурацкая таблица по ботве. Она как минимум слабо читаемая, так местами ещё и неточная.

Ответить
0

Так и автор не геймдизайнер

Ответить
1

Чушь наверное сейчас напишу. Но подход cd red project мне нравится. Хоть это будет и мега таблица. Сколько в ведьмаке объектов (сущностей) 50 тысяч, сто тысяч? Главное расписать всё ,по иерархической лестнице. От сложных объектов, у которых уровень взаимодействия высокий, к простым сущностям ,у которых этот уровень стремится к нулю

Ответить
2

Был на лекции их главного ГД по игровой экономике Ведьмака 3. Он показывал постепенное иерархическое развитие раблиц от простых констант (1 урон = 1 здоровье = 1 броня) до глобальной сводки цен на товары в разных игровых регионах. Т.е. каждый последующий "слой" просто берёт данные из предыдущих таблиц и расширяет новыми константами и формулами.

Таким образом для балансировки нужно только один параметр менять в одном месте, а всё остальное пересчитается автоматически.

Ответить
3

Ммм, Ексель.

Ответить
2

Альфа и Омега геймдизайна :)

Ответить
0

Будем набирать в геймдизайнеры матёрых тёток-бухгалтерш в возрасте.

Ответить
1

Работал я когда-то давно эникеем-саппортом. Так вот, была у нас одна матёрая тётка-аналитик в возрасте, так она нас никогда не звала помочь с экселем. Сама писала формулы, запросы к БД, макросы и тому подобное. Мы только обтекали тихонько, когда это видели.
А в бухгалтерии тупые клуши сидели.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Игру с лучшим стелсом никто не заметил
Подписаться на push-уведомления