Как создать ощущение, что противники в шутерах действуют слаженно?
За что я люблю игры, так это за то, что это, по сути, шоу. А в шоу очень много трюков. Трюки, в свою очередь, создают у игрока нужные ощущения. Один из таких трюков — барки в шутерах: они создают ощущение, что противники действуют слаженно.
Барк (bark) — это короткая реплика NPC, которая срабатывает по событию, а не по сценарию. Заметил игрока, ранен, перезаряжается, идёт в укрытие, остался один — на каждое такое событие висит пул строк, и система выбирает одну. В отличие от диалога, барк ничего не спрашивает у игрока и ответа не ждёт: он просто вслух помечает, что ИИ только что решил. Отсюда и название.
Барки используются не только в шутерах, но именно в них им нашли красивое применение. Один из ярких примеров — NPC в F.E.A.R. Это описано в докладе Оркина.
У каждого солдата F.E.A.R. конечный автомат всего с тремя состояниями: Goto (дойти до точки), Animate (проиграть анимацию), UseSmartObject (воспользоваться объектом уровня: перевернуть стол, перелезть через окно). Больше ничего. Вся «умность» вынесена из автомата наружу.
У солдата есть цели с приоритетами: убить врага, дойти до укрытия, выжить, патрулировать. И есть набор действий, у каждого — предусловия и эффекты: «стрелять» требует, чтобы оружие было заряжено и враг был виден, «перезарядить» требует наличия патронов. Планировщик (GOAP, отголосок STRIPS) берёт самую приоритетную цель и обратным поиском собирает цепочку действий, которая к ней ведёт. Цепочка скармливается тому самому автомату из трёх состояний. Мир изменился, предусловие сломалось — и план пересобирается заново. Так солдат сам находит, что перед перезарядкой стоит зайти за стену, а если путь перекрыт — перевернуть стол и спрятаться за ним.
Поверх одиночек стоит координатор. Он собирает NPC, стоящих рядом, в отряд и выбирает для него одно из четырёх поведений: Get-to-Cover, Advance-Cover, Orderly-Advance, Search. Поведение раздаёт каждому бойцу цель, скажем, «займи вот это укрытие ближе к игроку», а дальше каждый планирует свой маршрут сам. Клещи получаются из Advance-Cover сами собой: укрытия стоят по разные стороны коридора, маршруты расходятся.
Когда координатор назначил поведение и раздал роли, он же выдаёт реплики под уже принятое решение. Advance-Cover запустился, боец А пошёл в обход стены, и в этот момент звучит «обхожу». Решение принято, движения ещё не видно, слово уже прозвучало. Игрок слышит план, потом видит движение, которое ему соответствует, и достраивает тактику сам.
Так работает атрибуция намерения: услышанная фраза становится гипотезой о плане врага, а любое совпавшее действие — подтверждением. Отрядный ИИ в F.E.A.R. довольно простой, всего с четырьмя поведениями, ИИ каждого юнита относительно сложный (GOAP как-никак), но именно барки создают ощущение сложной скоординированной тактики у группы NPC.
#devmath #gamedesign #gamefeel #shooter #bark
За что я люблю игры, так это за то, что это, по сути, шоу. А в шоу очень много трюков. Трюки, в свою очередь, создают у игрока нужные ощущения. Один из таких трюков — барки в шутерах: они создают ощущение, что противники действуют слаженно.
Барк (bark) — это короткая реплика NPC, которая срабатывает по событию, а не по сценарию. Заметил игрока, ранен, перезаряжается, идёт в укрытие, остался один — на каждое такое событие висит пул строк, и система выбирает одну. В отличие от диалога, барк ничего не спрашивает у игрока и ответа не ждёт: он просто вслух помечает, что ИИ только что решил. Отсюда и название.
Барки используются не только в шутерах, но именно в них им нашли красивое применение. Один из ярких примеров — NPC в F.E.A.R. Это описано в докладе Оркина.
У каждого солдата F.E.A.R. конечный автомат всего с тремя состояниями: Goto (дойти до точки), Animate (проиграть анимацию), UseSmartObject (воспользоваться объектом уровня: перевернуть стол, перелезть через окно). Больше ничего. Вся «умность» вынесена из автомата наружу.
У солдата есть цели с приоритетами: убить врага, дойти до укрытия, выжить, патрулировать. И есть набор действий, у каждого — предусловия и эффекты: «стрелять» требует, чтобы оружие было заряжено и враг был виден, «перезарядить» требует наличия патронов. Планировщик (GOAP, отголосок STRIPS) берёт самую приоритетную цель и обратным поиском собирает цепочку действий, которая к ней ведёт. Цепочка скармливается тому самому автомату из трёх состояний. Мир изменился, предусловие сломалось — и план пересобирается заново. Так солдат сам находит, что перед перезарядкой стоит зайти за стену, а если путь перекрыт — перевернуть стол и спрятаться за ним.
Поверх одиночек стоит координатор. Он собирает NPC, стоящих рядом, в отряд и выбирает для него одно из четырёх поведений: Get-to-Cover, Advance-Cover, Orderly-Advance, Search. Поведение раздаёт каждому бойцу цель, скажем, «займи вот это укрытие ближе к игроку», а дальше каждый планирует свой маршрут сам. Клещи получаются из Advance-Cover сами собой: укрытия стоят по разные стороны коридора, маршруты расходятся.
Когда координатор назначил поведение и раздал роли, он же выдаёт реплики под уже принятое решение. Advance-Cover запустился, боец А пошёл в обход стены, и в этот момент звучит «обхожу». Решение принято, движения ещё не видно, слово уже прозвучало. Игрок слышит план, потом видит движение, которое ему соответствует, и достраивает тактику сам.
Так работает атрибуция намерения: услышанная фраза становится гипотезой о плане врага, а любое совпавшее действие — подтверждением. Отрядный ИИ в F.E.A.R. довольно простой, всего с четырьмя поведениями, ИИ каждого юнита относительно сложный (GOAP как-никак), но именно барки создают ощущение сложной скоординированной тактики у группы NPC.
#devmath #gamedesign #gamefeel #shooter #bark
🔥6✍3
Как Hades прячет ускорение в ровной шкале
Мы немного отвлеклись от рогаликов. Вернемся к разным интересным механикам в них. Сегодня взглянем на God Mode в Hades.
Это режим для тех, кто хочет дойти до конца истории. Правило одно. Игрок получает 20% сопротивления урону, и после каждой смерти прибавляется ещё 2%. Потолок 80%.
Выглядит как небольшая прибавка: умер, получил свои два процента. На деле каждая следующая смерть даёт больше, чем предыдущая, и в конце сильно больше, что сильно упрощает геймплей. Давайте посчитаем на ударах.
Пусть у вас 100 здоровья, а враг бьёт на 25. Без режима вы держите 4 удара.
С 20% сопротивления удар режется до 20. Это 5 ударов.
После 15 смертей сопротивление 50%, удар режется до 12.5. Это 8 ударов.
После 30 смертей потолок 80%, удар режется до 5. Это 20 ударов.
Первые пятнадцать смертей купили вам три лишних удара. Следующие пятнадцать купили двенадцать. Шкала в настройках ползёт ровно, по 2% за смерть, а запас прочности под ней разгоняется. И это неочевидно для игрока. У всех всё в целом сложно с процентами.
Почему так. Сопротивление r оставляет от удара (1 − r), значит число ударов, которые вы держите, растёт как 1/(1 − r). Это гипербола: на малых процентах она почти прямая, а к концу шкалы взлетает. Про эту формулу мы уже говорили в ролике про броню и убывающую отдачу.
Судя по интервью Касавина, так и задумано. Стартовые 20% должны ощущаться сразу, «immediately palpable», а шаги по 2% «aren't as noticeable»: они дают время выучить того, кто тебя убил. Ослаблять врагов не хотели, идея звучала как «What if we just make you a little bit tougher?».
Вывод для тех, кто делает своё. Не стоит просто так брать и добавлять игроку проценты. Любая помощь игроку, которая считается в процентах, будь то сопротивление, уклонение или скидка на урон, живёт на этой же гиперболе. И это нужно помнить когда вносите какие-то изменения в баланс. Чтобы не сделать игру слишком сложной или слишком простой.
В общем, самый простой на вид режим помощи считается той же формулой, что броня в MOBA, только там процент затухает, а тут его крутят напрямую.
#devmath #gamedesign #gamefeel #hades #godmode
Мы немного отвлеклись от рогаликов. Вернемся к разным интересным механикам в них. Сегодня взглянем на God Mode в Hades.
Это режим для тех, кто хочет дойти до конца истории. Правило одно. Игрок получает 20% сопротивления урону, и после каждой смерти прибавляется ещё 2%. Потолок 80%.
Выглядит как небольшая прибавка: умер, получил свои два процента. На деле каждая следующая смерть даёт больше, чем предыдущая, и в конце сильно больше, что сильно упрощает геймплей. Давайте посчитаем на ударах.
Пусть у вас 100 здоровья, а враг бьёт на 25. Без режима вы держите 4 удара.
С 20% сопротивления удар режется до 20. Это 5 ударов.
После 15 смертей сопротивление 50%, удар режется до 12.5. Это 8 ударов.
После 30 смертей потолок 80%, удар режется до 5. Это 20 ударов.
Первые пятнадцать смертей купили вам три лишних удара. Следующие пятнадцать купили двенадцать. Шкала в настройках ползёт ровно, по 2% за смерть, а запас прочности под ней разгоняется. И это неочевидно для игрока. У всех всё в целом сложно с процентами.
Почему так. Сопротивление r оставляет от удара (1 − r), значит число ударов, которые вы держите, растёт как 1/(1 − r). Это гипербола: на малых процентах она почти прямая, а к концу шкалы взлетает. Про эту формулу мы уже говорили в ролике про броню и убывающую отдачу.
Судя по интервью Касавина, так и задумано. Стартовые 20% должны ощущаться сразу, «immediately palpable», а шаги по 2% «aren't as noticeable»: они дают время выучить того, кто тебя убил. Ослаблять врагов не хотели, идея звучала как «What if we just make you a little bit tougher?».
Вывод для тех, кто делает своё. Не стоит просто так брать и добавлять игроку проценты. Любая помощь игроку, которая считается в процентах, будь то сопротивление, уклонение или скидка на урон, живёт на этой же гиперболе. И это нужно помнить когда вносите какие-то изменения в баланс. Чтобы не сделать игру слишком сложной или слишком простой.
В общем, самый простой на вид режим помощи считается той же формулой, что броня в MOBA, только там процент затухает, а тут его крутят напрямую.
#devmath #gamedesign #gamefeel #hades #godmode
🔥6✍2
Anonymous Poll
79%
Статьи
21%
Короткие ролики
58%
Посты про игры
58%
Инфографики, карусели и чек-листы
47%
Интерактивы
37%
Топы игр
11%
Другое
Мы же всё таки о том зачем нужна математика. И пока сидим в теме рогаликов возьмём формулы относящиеся к этому жанру. Конечно больше математики в тайкунах и айдл играх, но тут тоже есть свой набор формул.
Я выделил 10 формул связанных с балансом, с дропрейтом, с боями с врагами, с балансом забега и с работой предметов, чтобы они были под рукой когда потребуются.
Думаю завтра вернуться немного к теме брони, напишу небольшую заметку на воскресенье, чтобы в выходные сильно вас не грузить. И пока размышляю о чём таком интересном написать в следующей статье.
Есть идея написать статью как пользоваться этими формулами с более подробными примерами. Давайте так, собираем на этом посте 20
#devmath #balance #roguelike #math
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Forwarded from Григорий Дядиченко
This media is not supported in your browser
VIEW IN TELEGRAM
Немного бекстейджа и ляпов. Но я выпал) Почему и зачем я объяснять не буду — это спойлеры к грядущему ролику) Но я поугарал)
Получилось не то, что было нужно) Я просто не хочу делать уникальный ролик на каждую реплику и думал как персонажа в кадре просто заставить двигаться и открывать рот, чтобы вео пропустило
Получилось не то, что было нужно) Я просто не хочу делать уникальный ролик на каждую реплику и думал как персонажа в кадре просто заставить двигаться и открывать рот, чтобы вео пропустило
😁4
Зачем нужна броня, если есть здоровье
Закроем тему брони в играх. Мы разобрали как она работает и на каких формулах. Но зачем она нужна?
Возьмите любую игру с бронёй и посчитайте эффективное здоровье: сколько урона персонаж выдержит до смерти. Получится одно число. И тут резонный вопрос: если всё сводится к одному числу, зачем два стата? Дайте игроку здоровье и не морочьте голову.
Ответ: броня отличается от здоровья не тем, сколько EHP даёт, а тем, против чего и вместе с чем.
Против чего. Броня в LoL режет физический урон по 100/(100+R). Магию не трогает, true damage проходит насквозь. Значит, у одного и того же персонажа EHP против одного противника одно, против другого другое, и появляется выбор, что покупать. У здоровья выбора нет: оно одинаково хорошо против всего.
Вместе с чем. Хил на 100 при 50% снижения урона восстанавливает 200 эффективного здоровья. Броня умножает каждое лечение и каждую регенерацию, здоровье не умножает ничего. Xypherous из Riot ещё в 2013 писал, что резисты «magnify the effect of your other self-healing, resistance and regeneration effects». Это и есть разница между толстым и танком: танка дешевле держать живым.
А здоровье ещё и кормит противника. Против Warwick'а 4000 здоровья не помогают, а 100 магического сопротивления помогают: «Your health pool is becoming their health pool». Броню можно пробить, и это отдельный слой контрмер. Здоровье пробить нельзя.
Плоская броня добавляет ещё одну ось. В Overwatch она не делит, а вычитает по 10 с каждого попадания. Пулемёт с мелкими пулями теряет половину урона, снайпер почти ничего. Тут EHP зависит не от суммы урона, а от того, как он нарезан.
В общем, EHP это итог, а не стат. Броня делает итог зависимым от контекста. Если контекста нет, один тип урона, нет лечения, нет пробития, то броня и правда лишний шаг, и её спокойно выкидывают, оставляя здоровье и щит.
#devmath #balance #gamefeel #gamedesign #armor
Закроем тему брони в играх. Мы разобрали как она работает и на каких формулах. Но зачем она нужна?
Возьмите любую игру с бронёй и посчитайте эффективное здоровье: сколько урона персонаж выдержит до смерти. Получится одно число. И тут резонный вопрос: если всё сводится к одному числу, зачем два стата? Дайте игроку здоровье и не морочьте голову.
Ответ: броня отличается от здоровья не тем, сколько EHP даёт, а тем, против чего и вместе с чем.
Против чего. Броня в LoL режет физический урон по 100/(100+R). Магию не трогает, true damage проходит насквозь. Значит, у одного и того же персонажа EHP против одного противника одно, против другого другое, и появляется выбор, что покупать. У здоровья выбора нет: оно одинаково хорошо против всего.
Вместе с чем. Хил на 100 при 50% снижения урона восстанавливает 200 эффективного здоровья. Броня умножает каждое лечение и каждую регенерацию, здоровье не умножает ничего. Xypherous из Riot ещё в 2013 писал, что резисты «magnify the effect of your other self-healing, resistance and regeneration effects». Это и есть разница между толстым и танком: танка дешевле держать живым.
А здоровье ещё и кормит противника. Против Warwick'а 4000 здоровья не помогают, а 100 магического сопротивления помогают: «Your health pool is becoming their health pool». Броню можно пробить, и это отдельный слой контрмер. Здоровье пробить нельзя.
Плоская броня добавляет ещё одну ось. В Overwatch она не делит, а вычитает по 10 с каждого попадания. Пулемёт с мелкими пулями теряет половину урона, снайпер почти ничего. Тут EHP зависит не от суммы урона, а от того, как он нарезан.
В общем, EHP это итог, а не стат. Броня делает итог зависимым от контекста. Если контекста нет, один тип урона, нет лечения, нет пробития, то броня и правда лишний шаг, и её спокойно выкидывают, оставляя здоровье и щит.
#devmath #balance #gamefeel #gamedesign #armor
❤🔥5✍3
Новый формат роликов
https://youtube.com/shorts/sBWPJmyMqKg?si=GqUfUyLol_ahrRsK
Возможно первый блин комом, но я люблю экспериментировать. Хочется сделать серию таких интервью. Поинтереснее и повеселее. Часть про детство мне показалось не такой заезжанной, как общая тема. В общем мне нравится делать что-то новое, а там будем посмотреть как пойдет.
Конечно подозреваю, что и этот формат лучше делать без липсинка или поискать другой инструмент. Не Veo Lite. Так как не уверен, что анимация прикольная чтобы так смотреть :)
#fun #interview #devmath
https://youtube.com/shorts/sBWPJmyMqKg?si=GqUfUyLol_ahrRsK
Возможно первый блин комом, но я люблю экспериментировать. Хочется сделать серию таких интервью. Поинтереснее и повеселее. Часть про детство мне показалось не такой заезжанной, как общая тема. В общем мне нравится делать что-то новое, а там будем посмотреть как пойдет.
Конечно подозреваю, что и этот формат лучше делать без липсинка или поискать другой инструмент. Не Veo Lite. Так как не уверен, что анимация прикольная чтобы так смотреть :)
#fun #interview #devmath
YouTube
Интервью N1 #devmath #interview #gamedev #fun
Решил попробовать новый формат. Так сказать первая проба пера. Став...
🔥4
Покажите свою игру
https://dev-math.ru/indie-review/
Думал думал и наконец-то придумал новую рубрику. Короче, друг. Я в благородство играть не буду. Скинешь мне игру, а я её разберу и расскажу об этом. На кой ляд тебе сидеть без фидбека я не знаю, но если что я дам и может кто-то из подписчиков подключится.
В общем решил я это всё обозвать SCOPE по принципам разбора.
Session (сессия) — сколько длится один заход, чем открывается, чем закрывается и что оставляет незакрытым, чтобы вернуться.
Core (кор-луп) — в чём заключается геймплей, в чём заключается игра. На сколько она реиграбельна и декмпозиция по ключевым психологическим аспектам.
Onboarding (посадка) — сразу ли понятно как в игру играть. Понятность и читаемость геймплея, а куда лучше вставить туториал.
Pitch (обещание) — необязательный шаг, при наличии. Что говорит игра до запуска. Скриншоты, описание, страница магазина (если есть, если нет то и неважно). И какие обещания игра выполняет.
Economy (экономика) — как работает экономика и монетизация игры. В платных играх это про петлю удержания. В веб (яндекс игры) и фри ту плей ещё про монетизацию.
Вот такое я придумал. Так что присылайте небольшие, большие, то что вы просто делали на яндекс игры для эксперимента. Пообсуждаем, по разбираем, думаю будет прикольно.
#devmath #gamedesign #scope
https://dev-math.ru/indie-review/
Думал думал и наконец-то придумал новую рубрику. Короче, друг. Я в благородство играть не буду. Скинешь мне игру, а я её разберу и расскажу об этом. На кой ляд тебе сидеть без фидбека я не знаю, но если что я дам и может кто-то из подписчиков подключится.
В общем решил я это всё обозвать SCOPE по принципам разбора.
Session (сессия) — сколько длится один заход, чем открывается, чем закрывается и что оставляет незакрытым, чтобы вернуться.
Core (кор-луп) — в чём заключается геймплей, в чём заключается игра. На сколько она реиграбельна и декмпозиция по ключевым психологическим аспектам.
Onboarding (посадка) — сразу ли понятно как в игру играть. Понятность и читаемость геймплея, а куда лучше вставить туториал.
Pitch (обещание) — необязательный шаг, при наличии. Что говорит игра до запуска. Скриншоты, описание, страница магазина (если есть, если нет то и неважно). И какие обещания игра выполняет.
Economy (экономика) — как работает экономика и монетизация игры. В платных играх это про петлю удержания. В веб (яндекс игры) и фри ту плей ещё про монетизацию.
Вот такое я придумал. Так что присылайте небольшие, большие, то что вы просто делали на яндекс игры для эксперимента. Пообсуждаем, по разбираем, думаю будет прикольно.
#devmath #gamedesign #scope
🔥9
Forwarded from Менеджмент игровых проектов
Высшая школа бизнеса НИУ ВШЭ проводит онлайн День открытых дверей программы «Менеджмент игровых проектов»
Многие воспринимают игровую индустрию как закрытую тусовку для гиков. Но сегодня геймдев — это жесткий технологичный бизнес, где на вес золота ценятся сильные менеджеры, продюсеры и предприниматели, способные превратить творческий хаос в прибыльный системный продукт.
Если вы хотите запустить свою инди-студию, сменить сферу деятельности и развиваться в игровой индустрии — приходите
Из презентации программы вы узнаете:🔴 Траектории развития: какие карьерные пути открыты в индустрии для управленцев и инди-команд🔵 Бизнес-модели: как довести проект от идеи до коммерческого релиза или защиты перед инвесторами🟢 Дистанционный формат: как эффективно учиться, проходить практику и собирать команду из любой точки России
Эта встреча — не скучный формат презентации, а живой диалог с академическим руководителем программы Вячеславом Уточкиным, генеральным продюсером Geeky House, и командой преподавателей-практиков:
Интенсив приурочен к запуску знакового, юбилейного 20-го потока программы переподготовки Вышки «Менеджмент игровых проектов»
Участие полностью бесплатное. Нужна предварительная регистрация
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Хороший роглайк заставляет выбирать
Давайте для начала подумаем — а что такое выбор? Вы пришли в магазин предметов между уровнями и все предметы стоят одинаково, но среди них есть легендарный меч с очень крутыми характеристиками. У вас есть выбор? Нет. Допустим легендарный меч стоит больше, чем вы успели собрать ресурсов, а два других предмета одинаковые, у вас есть выбор? Не совсем. Допустим в магазине щит на резист от магии, лук атакующий по трем целям и ботинки ускорения с разной ценой? Это уже похоже на выбор, но это ещё не всё.
Настоящая система выбора работает, когда перед игроком стоит больше одной задачи и решить их разом нельзя. Игрок вынужден расставлять приоритеты и чем-то жертвовать. Если в предложении есть вариант, лучший при любом прошлом и будущем колоды, дизайнер провалился.
Задач у игрока всегда больше одной. В Slay The Spire их две: довести врага до нуля и самому дожить до следующего боя. А энергии на обе не хватает, и враги растут быстрее, чем колода. Поэтому каждая карта из награды закрывает одну задачу и оставляет дырку в другой. Взял Carnage? Бьёшь больно, но обязан играть агрессивно. Взял Footwork? Защита растёт считай бесплатно, но до выплаты надо дожить.
Поэтому и ключевой вывод для перков. Если в предложении есть вариант, который хорош при любом раскладе и любом будущем, выбор мёртв, а дизайнер провалился. У каждого варианта должен быть свой минус: отложенная отдача, долгосрочная цена или плохая пригодность в части ситуаций. Игрок должен что-то отдать сейчас ради выигрыша потом, либо сохранить сейчас и заплатить больше позже.
В общем, перк или карта в роглайке ценятся не силой, а тем, от чего ради них отказываешься. Если отказываться не от чего, это апгрейд из идл-игры.
У CloudFallStudios есть прикольный разбор на эту тему.
#devmath #roguelike #gamedesign #perks #choice
Давайте для начала подумаем — а что такое выбор? Вы пришли в магазин предметов между уровнями и все предметы стоят одинаково, но среди них есть легендарный меч с очень крутыми характеристиками. У вас есть выбор? Нет. Допустим легендарный меч стоит больше, чем вы успели собрать ресурсов, а два других предмета одинаковые, у вас есть выбор? Не совсем. Допустим в магазине щит на резист от магии, лук атакующий по трем целям и ботинки ускорения с разной ценой? Это уже похоже на выбор, но это ещё не всё.
Настоящая система выбора работает, когда перед игроком стоит больше одной задачи и решить их разом нельзя. Игрок вынужден расставлять приоритеты и чем-то жертвовать. Если в предложении есть вариант, лучший при любом прошлом и будущем колоды, дизайнер провалился.
Задач у игрока всегда больше одной. В Slay The Spire их две: довести врага до нуля и самому дожить до следующего боя. А энергии на обе не хватает, и враги растут быстрее, чем колода. Поэтому каждая карта из награды закрывает одну задачу и оставляет дырку в другой. Взял Carnage? Бьёшь больно, но обязан играть агрессивно. Взял Footwork? Защита растёт считай бесплатно, но до выплаты надо дожить.
Поэтому и ключевой вывод для перков. Если в предложении есть вариант, который хорош при любом раскладе и любом будущем, выбор мёртв, а дизайнер провалился. У каждого варианта должен быть свой минус: отложенная отдача, долгосрочная цена или плохая пригодность в части ситуаций. Игрок должен что-то отдать сейчас ради выигрыша потом, либо сохранить сейчас и заплатить больше позже.
В общем, перк или карта в роглайке ценятся не силой, а тем, от чего ради них отказываешься. Если отказываться не от чего, это апгрейд из идл-игры.
У CloudFallStudios есть прикольный разбор на эту тему.
#devmath #roguelike #gamedesign #perks #choice
🔥2