Jusper Jusper

По требованию Яндекса, разбили на 2 отдельные странички.
Вторая часть переехала сюда: https://devtribe.ru/p/indie-kitchen/podcast_devgamm_volume_2

Jusper Jusper

Вообще, я делал замер производительности, но вот этот застрявший в мече мужик сделал мой вечер.

Jusper Jusper

Мелочь, но - новая поза персонажа в главном меню. Да, он даже чешет себе задницу.

...
Dreaman Dreaman

IDALGAME,

Действительно оригинально и интересно игра выглядит ;)

Rummy_Games Rummy_Games

Saturated Outer Space #saturdayscreenshot

...
Razz Razz

Мясной шторм в исполнении Юрия Маркова

Stabilitron Stabilitron

Метроидвания в мире славянских сказок. Разбойникам тоже нужно отдыхать.
https://twitter.com/SlavaniaGame/status/1292048996115120128

TheDarkestRed TheDarkestRed

Заброшенный город - концепт арт The Darkest Red 🎮 🕸 🏚
https://vk.com/the_darkestred

IDALGAME IDALGAME

Геймплей беты и создания кофейных пятен.

Следите за разработкой игры: https://vk.com/pt_game

...
Jusper Jusper

У издателей инди-проектов как раз берут либо готовую команду, либо соло-разработчика. Потому что там чем больше хард-скиллов у тебя есть, тем лучше. Я не умею в арт, я не умею в толковый оптимальный код...

Jusper Jusper

GenElCon,

HypeTrain издают в основном инди-разрабочиков, а мне там особо делать нечего, потому что я на данном этапе не инди (точнее инди-мобильник).

GenElCon GenElCon

Ну вот, например, если бы ты в какую-нибудь игру вписаться типо тех, что выходят из под издательского крыла TinyBuild или HypeTrain Digital (такие типичные небольшие крепкие и не очень ПК проекты), как думаешь...

GenElCon GenElCon

Jusper,

А ты пробовал в такие подобные места идти: это были прям гиганты или не только? Просто если это что-то акромя этих гигантов, например, какая-нибудь студия делающая крпепкие не ААА, например Endless Space...

alexprey alexprey

GenElCon, ну это почти тоже самое, что сказать, что я сверх спец по юнити, т.к. C# знаю уже 9 лет, но опыт веб разработки на нем не тоже самое, что скрипты под юньку писать. Тоже самое и с мобилками, там немного другие задачи решаются...

...
Jusper Jusper

GenElCon, в большинстве мест крупных типа Blizzard прямо написано: опыт разработки игры AAA PC проекта, поэтому мобилка там нерелевантна, меня несколько раз развернули.

По личным ощущениям приходится делать конкретное усилие...

GenElCon GenElCon

Jusper,

Хм, а были конкретные кейсы? Ты просто не первый знакомый, кто про это говорит. Любопытно..

Jusper Jusper

Xakkar, lol

Логотип проекта Slash Polygon: Tournament

Баланс боевой системы на примере Slash Polygon

Баланс боевой системы на примере Slash Polygon

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

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

Инструменты

Лучший друг любого геймдизайнера - таблицы. Google Sheets, Microsoft Excel, Apple Numbers - все это инструменты для математического представления вашего видения прогрессии и формул расчетов игрового баланса.

Базовые правила боя

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

Итак, основные базисы:

  • 4 класса брони: косметическая, легкая, средняя, тяжелая.
  • 3 типа урона: колющий, режущий, рубящий.
  • 3 типа защиты: vs колющий, vs режущий, vs рубящий.
  • Каждый доспех обладает всеми 3-мя типами защиты.
  • Каждое оружие обладает всеми 3-мя типами урона.
  • Каждый класс брони (кроме косметики) обладает как минимум 1 сильным преимуществом против 1 типа урона.
  • Каждое оружие обладает явным лидирующим типом урона.
  • Неэффективная защита брони не дает явного преимущества урону (бонуса от опр. вида урона), но дает меньше защиты от него соответственно.
  • Формула гашения урона за ед. брони: 1 - ((0.052 × защита) ÷ (0.9 + 0.048 × |защита|)).
  • Прогрессия эффективности брони должна быть выстроена таким образом, чтобы в начале игрок чувствовал разницу примитивно - надел доспех тяжелее - защита стала ощутимее. На поздних этапах должна быть важна комбинация против определенного типа урона.

Пример оружия: Двуручный меч будет наносить 3/6/2 урона колющим, режущим и рубящим типами урона соответственно. Суммарный урон будет равен 11.

Пример доспеха: Тяжелая кираса будет гасить 10/10/2% урона от колющего, режущего и рубящего типа урона соответственно.

Таблица игровых констант и коэффициентов

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

модификаторы от слота — Баланс боевой системы на примере Slash Polygon — Slash Polygon: Tournament — DevTribe: инди-игры, разработка, сообщество (GameDev, slash polygon, геймдизайн, игровой баланс)
модификаторы от слота

Объяснение:

  • Каждый эффективный слот персонажа имеет модификатор, на который умножается расчетное значение. Например если базовое значение брони на предмете 10, то для шлема (слот head) значение будет = 6.
  • Каждый эффективный слот влияет на модификатор скорости передвижения в рамках здравого смысла. Так, например доспехи будут сильнее аффектить скорость передвижения, в то время как шлем будет это делать с пониженным вполовину значением.
  • Слот Mob - виртуальный и нужен для расчета значений NPC.
модификатор от класса брони — Баланс боевой системы на примере Slash Polygon — Slash Polygon: Tournament — DevTribe: инди-игры, разработка, сообщество (GameDev, slash polygon, геймдизайн, игровой баланс)
модификатор от класса брони

Объяснение:

  • Каждый класс брони имеет 3 значения защиты против урона и базовый расчетный модификатор замедления персонажа.
  • Пример: Класс брони Heavy имеет 2 эффективные позиции защиты и 1 неэффективную (модификаторы защиты 1.5 от колющего и режущего, но 0.5 от рубящего).
  • Пробелы между столбцами нужны для функции Google Sheet - LOOKUP (поиск значения по типу) для дальнейшей работы.

Самый главный коэф.

Для того, чтобы не придумывать каждый раз какие-то значения используется базовый расчетный коэффициент, который я обозвал в честь значения уровня экипировки в World of Warcraft - iLevel. За единицу уровня предмета мы будет умножать базовое значение на коэф. (1+iLevel) формируя прогрессию. Главное - определить границы, в рамках которых эти значения будут жить для разной классификации предметов.

качество экипировки и границы значений iLevel — Баланс боевой системы на примере Slash Polygon — Slash Polygon: Tournament — DevTribe: инди-игры, разработка, сообщество (GameDev, slash polygon, геймдизайн, игровой баланс)
качество экипировки и границы значений iLevel

Пример: Уровень предмета Необычный варьируется от 20 до 29. Таким образом при придумывании какого-то либо нового предмета - я должен ориентироваться на эти значения, чтобы соблюдался баланс качества экипировки.

Cводный баланс экипировки

Перейдем к самому интересному - созданию экипировки в таблице.

баланс экипировки — Баланс боевой системы на примере Slash Polygon — Slash Polygon: Tournament — DevTribe: инди-игры, разработка, сообщество (GameDev, slash polygon, геймдизайн, игровой баланс)
баланс экипировки

Объяснения:

  • Все, что выкрашено в цвет использует формулу, основывающуюся на базовой величине (указанной в самом верху) и рассчитывающую свое значение исходя из заданных параметров (Slot, Type, iLevel).
  • Все предыдущие модификаторы используются в расчете через функцию LOOKUP и поиск значения в соответствующей колонке. Так, например, значения защиты у шлема автоматически домнажаются на 0.6, так как в поле Slot написано head.
  • Суммарный абсорб брони дает представления сколько урона от среднего оружия будет гасить данный предмет экипировки.

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

В заключении о прогрессии

Экипировка в Slash Polygon прокачивается и имеет 5 уровней. Для расчет прогрессии используется отдельная таблица.

прогрессия экипировки по уровням — Баланс боевой системы на примере Slash Polygon — Slash Polygon: Tournament — DevTribe: инди-игры, разработка, сообщество (GameDev, slash polygon, геймдизайн, игровой баланс)
прогрессия экипировки по уровням

Объяснения:

  • Не путайте уровень предмета и iLevel, это разные величины.
  • 1 уровень предмета это 10 iLevel.
  • Armor ID - это место для ввода идентификатора предмета из предыдущей таблицы. Все остальное заполняется автоматически.
  • В среднем у каждого предмета на данный момент по 5 уровней прокачки, но как вы понимаете, можно сделать хоть 10000.

Резюме

Собственно, резюмирую свои рекомендации:

  • Используйте таблицы для наглядного представления баланса игры.
  • Используйте таблицу модификаторов и функцию LOOKUP в сводном балансе, чтобы ускорить свою работу с огромным количеством контента.
  • Минусом функции LOOKUP является требование обязательной сортировки по А-Я для таблиц, в которых происходит поиск.
  • Документируйте свою работу, иначе через 2 месяца перерыва ничего не поймете.
  • Для расчета баланса оружия используется похожий принцип, с некоторыми дополнениями, но об этом в следующей статье.

А что вы используете для балансировки игр? Быть может баланс-на-глаз (что, кстати называется интуитивный баланс)? Расскажите о своем опыте, мне интересно.

Смотрите также:


Комментарии

Здесь еще никто не оставил комментарий

Справка