Dreaman Dreaman

Jusper, спасибо! Рад, что понравилось :)

Dreaman Dreaman

В новом помещении космической станции появилось очень важное устройство. По своей сути оно является энергетическим реактором, снабжающим станцию энергией.

...
iRediKurou iRediKurou

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

Блюпринтами можно реализовать самую элементарную логику. В проекте на С++ можно делать ноды для блюпринтов...

...
Jusper Jusper

С учетом того, каждая поделка на Unreal лагает как тварь если у тебя не топ PC, я бы тут поспорил. Без скиллов оптимизации все это графонистое будет играться только на топовом железе, а поверь, владельцы топового железа будут играть в блокбастеры...

...
iRediKurou iRediKurou

Jusper, если коротко: Unity ушла не туда по развитию.

Если подробнее:

  1. XYZ на курсе GameDesing на обучении используется UE. Потому, что он на много удобен для прототипирования (очень много из коробки).
  2. ...
Jusper Jusper

iRediKurou,

А чем, кстати, Unity не пошла?

iRediKurou iRediKurou

Ynomomento, Добрый день. Переносим игру с Unity на UE4. Потестировать прототип без сервера можно будет всем. Сейчас переписываются игровые механики и делается OutBlock. Подробнее на странице группы в ВК...

Ynomomento Ynomomento

Здравствуйте! можно ли уже поиграть в этот шедевр?) какими либо способами

Jusper Jusper

6 ударов в колокол и 1 крик Вильгельма.
Slash Polygon снова с вами.

Jusper Jusper

Я не до конца уверен, но, вероятнее всего, у тебя каждый раз определяется переменная enemy_hp = 100, потом ты от нее отнимаешь 20 и получаешь всегда на выходе 80. Оператор отрабатывает каждый раз, но при это значение переменной берет дефолтное ...

ternox92 ternox92
Мой новый интерфейс
Мой новый интерфейс
...
ondadesign ondadesign

Я купил, ща буду проходить))))))))))))))))
Если честно, привлекла музыка из трейлера)

Dreaman Dreaman

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

TheDarkestRed TheDarkestRed

Позвали дракона на вечеринку 🎮 🥳 🔥 🐉

https://vk.com/the_darkestred

TheDarkestRed TheDarkestRed

Поработали над окружением 🎮 🏛
https://vk.com/the_darkestred

Zemlaynin Zemlaynin

alexprey, не, все на Java у меня.

alexprey alexprey

Концепты очень хорошо выглядят!

Так, я думал у вас плюсы)

Логотип проекта 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 месяца перерыва ничего не поймете.
  • Для расчета баланса оружия используется похожий принцип, с некоторыми дополнениями, но об этом в следующей статье.

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

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


Комментарии

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

Справка