Dev Math
Ir al canal en Telegram
Как на самом деле создаются игры. Как сделать игру интересной и реализовать технически. А главное причём тут математика? Разборы на пальцах, рабочий код, интерактивы. dev-math.ru Сотрудничество: @it_bizdev
Mostrar más660
Suscriptores
+124 horas
+57 días
+9630 días
Archivo de publicaciones
660
Хороший роглайк заставляет выбирать
Давайте для начала подумаем — а что такое выбор? Вы пришли в магазин предметов между уровнями и все предметы стоят одинаково, но среди них есть легендарный меч с очень крутыми характеристиками. У вас есть выбор? Нет. Допустим легендарный меч стоит больше, чем вы успели собрать ресурсов, а два других предмета одинаковые, у вас есть выбор? Нет. Допустим в магазине щит на резист от магии, лук атакующий по трем целям и ботинки ускорения с разной ценой? Это уже похоже на выбор, но это ещё не всё.
Настоящая система выбора работает, когда перед игроком стоит больше одной задачи и решить их разом нельзя. Игрок вынужден расставлять приоритеты и чем-то жертвовать. Если в предложении есть вариант, лучший при любом прошлом и будущем колоды, дизайнер провалился.
Задач у игрока всегда больше одной. В Slay The Spire их две: довести врага до нуля и самому дожить до следующего боя. А энергии на обе не хватает, и враги растут быстрее, чем колода. Поэтому каждая карта из награды закрывает одну задачу и оставляет дырку в другой. Взял Carnage? Бьёшь больно, но обязан играть агрессивно. Взял Footwork? Защита растёт считай бесплатно, но до выплаты надо дожить.
Поэтому и ключевой вывод для перков. Если в предложении есть вариант, который хорош при любом раскладе и любом будущем, выбор мёртв, а дизайнер провалился. У каждого варианта должен быть свой минус: отложенная отдача, долгосрочная цена или плохая пригодность в части ситуаций. Игрок должен что-то отдать сейчас ради выигрыша потом, либо сохранить сейчас и заплатить больше позже.
В общем, перк или карта в роглайке ценятся не силой, а тем, от чего ради них отказываешься. Если отказываться не от чего, это апгрейд из идл-игры.
У CloudFallStudios есть прикольный разбор на эту тему.
#devmath #roguelike #gamedesign #perks #choice
660
Repost from Менеджмент игровых проектов
🚀 Как запустить игровой стартап и применить бизнес-опыт в геймдеве? 🚀
Высшая школа бизнеса НИУ ВШЭ проводит онлайн День открытых дверей программы «Менеджмент игровых проектов»
🔡 24 сентября (четверг) в 19:00 (MSK)
🔡 Зарегистрироваться
Многие воспринимают игровую индустрию как закрытую тусовку для гиков. Но сегодня геймдев — это жесткий технологичный бизнес, где на вес золота ценятся сильные менеджеры, продюсеры и предприниматели, способные превратить творческий хаос в прибыльный системный продукт.
Если вы хотите запустить свою инди-студию, сменить сферу деятельности и развиваться в игровой индустрии — приходите
Из презентации программы вы узнаете: 🔴 Траектории развития: какие карьерные пути открыты в индустрии для управленцев и инди-команд 🔵 Бизнес-модели: как довести проект от идеи до коммерческого релиза или защиты перед инвесторами 🟢 Дистанционный формат: как эффективно учиться, проходить практику и собирать команду из любой точки РоссииЭта встреча — не скучный формат презентации, а живой диалог с академическим руководителем программы Вячеславом Уточкиным, генеральным продюсером Geeky House, и командой преподавателей-практиков: 🔷 Константин Сахнов — продюсер, основатель Vengeance Games 🔷 Владимир Агарев — креативный директор JayJoy 🔶 Сергей Голубкин — владелец издательства настольных игр «Геменот» 🔷 Григорий Поляков — продюсер Geeky House
Интенсив приурочен к запуску знакового, юбилейного 20-го потока программы переподготовки Вышки «Менеджмент игровых проектов»Участие полностью бесплатное. Нужна предварительная регистрация 🔡 Зарегистрироваться
660
Если что несколько заявок получено. Всё дошло, форма работает 🙂 Спасибо отправившим. Буду делать раз в неделю, выходить будет думаю или в четверг, или в пятницу.
660
Покажите свою игру
https://dev-math.ru/indie-review/
Думал думал и наконец-то придумал новую рубрику. Короче, друг. Я в благородство играть не буду. Скинешь мне игру, а я её разберу и расскажу об этом. На кой ляд тебе сидеть без фидбека я не знаю, но если что я дам и может кто-то из подписчиков подключится.
В общем решил я это всё обозвать SCOPE по принципам разбора.
Session (сессия) — сколько длится один заход, чем открывается, чем закрывается и что оставляет незакрытым, чтобы вернуться.
Core (кор-луп) — в чём заключается геймплей, в чём заключается игра. На сколько она реиграбельна и декмпозиция по ключевым психологическим аспектам.
Onboarding (посадка) — сразу ли понятно как в игру играть. Понятность и читаемость геймплея, а куда лучше вставить туториал.
Pitch (обещание) — необязательный шаг, при наличии. Что говорит игра до запуска. Скриншоты, описание, страница магазина (если есть, если нет то и неважно). И какие обещания игра выполняет.
Economy (экономика) — как работает экономика и монетизация игры. В платных играх это про петлю удержания. В веб (яндекс игры) и фри ту плей ещё про монетизацию.
В общем такое я придумал. Так что присылайте небольшие, большие, то что вы просто делали на яндекс игры для эксперимента. Пообсуждаем, по разбираем, думаю будет прикольно.
#devmath #gamedesign #scope
660
Покажите свою игру
https://dev-math.ru/indie-review/
Думал думал и наконец-то придумал новую рубрику. Короче, друг. Я в благородство играть не буду. Скинешь мне игру, а я её разберу и расскажу об этом. На кой ляд тебе сидеть без фидбека я не знаю, но если что я дам и может кто-то из подписчиков подключится.
В общем решил я это всё обозвать SCOPE по принципам разбора.
Session (сессия) — сколько длится один заход, чем открывается, чем закрывается и что оставляет незакрытым, чтобы вернуться.
Core (кор-луп) — в чём заключается геймплей, в чём заключается игра. На сколько она реиграбельна и декмпозиция по ключевым психологическим аспектам.
Onboarding (посадка) — сразу ли понятно как в игру играть. Понятность и читаемость геймплея, а куда лучше вставить туториал.
Pitch (обещание) — необязательный шаг, при наличии. Что говорит игра до запуска. Скриншоты, описание, страница магазина (если есть, если нет то и неважно). И какие обещания игра выполняет.
Economy (экономика) — как работает экономика и монетизация игры. В платных играх
660
Новый формат роликов
https://youtube.com/shorts/sBWPJmyMqKg?si=GqUfUyLol_ahrRsK
Возможно первый блин комом, но я люблю экспериментировать. Хочется сделать серию таких интервью. Поинтереснее и повеселее. Часть про детство мне показалось не такой заезжанной, как общая тема. В общем мне нравится делать что-то новое, а там будем посмотреть как пойдет.
Конечно подозреваю, что и этот формат лучше делать без липсинка или поискать другой инструмент. Не Veo Lite. Так как не уверен, что анимация прикольная чтобы так смотреть :)
#fun #interview #devmath
660
Зачем нужна броня, если есть здоровье
Закроем тему брони в играх. Мы разобрали как она работает и на каких формулах. Но зачем она нужна?
Возьмите любую игру с бронёй и посчитайте эффективное здоровье: сколько урона персонаж выдержит до смерти. Получится одно число. И тут резонный вопрос: если всё сводится к одному числу, зачем два стата? Дайте игроку здоровье и не морочьте голову.
Ответ: броня отличается от здоровья не тем, сколько 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
660
Repost from Григорий Дядиченко
Немного бекстейджа и ляпов. Но я выпал) Почему и зачем я объяснять не буду — это спойлеры к грядущему ролику) Но я поугарал)
Получилось не то, что было нужно) Я просто не хочу делать уникальный ролик на каждую реплику и думал как персонажа в кадре просто заставить двигаться и открывать рот, чтобы вео пропустило
660
👍 Десять полезных формул баланса
Мы же всё таки о том зачем нужна математика. И пока сидим в теме рогаликов возьмём формулы относящиеся к этому жанру. Конечно больше математики в тайкунах и айдл играх, но тут тоже есть свой набор формул.
Я выделил 10 формул связанных с балансом, с дропрейтом, с боями с врагами, с балансом забега и с работой предметов, чтобы они были под рукой когда потребуются.
Думаю завтра вернуться немного к теме брони, напишу небольшую заметку на воскресенье, чтобы в выходные сильно вас не грузить. И пока размышляю о чём таком интересном написать в следующей статье.
Есть идея написать статью как пользоваться этими формулами с более подробными примерами. Давайте так, собираем на этом посте 20 🔥 и напишу такую. Надо же понимать интересно это вам или нет.
#devmath #balance #roguelike #math
660
+9
👍 Десять полезных формул баланса
Мы же всё таки о том зачем нужна математика. И пока сидим в теме рогаликов возьмём формулы относящиеся к этому жанру. Конечно больше математики в тайкунах и айдл играх, но тут тоже есть свой набор формул.
Я выделил 10 формул связанных с балансом, с дропрейтом, с боями с врагами, с балансом забега и с работой предметов, чтобы они были под рукой когда потребуются.
Думаю завтра вернуться немного к теме брони, напишу небольшую заметку на воскресенье, чтобы в выходные сильно вас не грузить. И пока размышляю о чём таком интересном написать в следующей статье.
Есть идея написать статью как пользоваться этими формулами с более подробными примерами. Давайте так, собираем на этом посте 20 🔥 и напишу такую. Надо же понимать интересно это вам или нет.
#devmath #balance #roguelike #math
660
Как 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
660
Как создать ощущение, что противники в шутерах действуют слаженно?
За что я люблю игры, так это за то, что это, по сути, шоу. А в шоу очень много трюков. Трюки, в свою очередь, создают у игрока нужные ощущения. Один из таких трюков — барки в шутерах: они создают ощущение, что противники действуют слаженно.
Барк (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
660
Движки больше не нужны
https://youtube.com/shorts/mOXHZvl1dXw?si=QbUzgCduPP63QcRl
Покрайней мере для 2д. Я говорю про анриал, про Unity и так далее. Это моё мнение с которым можно поспорить или считать иначе. Но дело в процессе разработки.
Я пишу несколько проектов один из которых моя игра. Когда я начинал у движков не было CLI тулов, не было плагинов для LLM и не было MCP. И мне так нравится как идет. Вы не пишете сам движок целенаправленно. Вы пишите модули движка под функции вашей игры. То есть процесс выглядит +- следующим образом.
Я задал общую архитектуру проекта. Реализовал разное. После я понял что мне нужны 2д веревки. Я описал как это вписать в физический движок и вуаля эта функция теперь есть в движке и активного времени (то есть действий от меня) она заняла минут 30. Ну и в токенах наверное долларов 20.
Раньше ключевым было то, что движок было дорого разработать. На это требовалась куча времени. Сейчас я любой визуальный редактор включая конструктор для моей игры выношу в веб интерфейс передавая контракт загружаемого и выгружаемого конфига. И получается изолированная и независимая фигня, которую я могу передать левелдизайнеру на аутсорсе скажем. В командах вопрос обучения снимает общий контекст и так далее.
Многие забывают что лицензируемые движки вообще платные. Грабеж с роялти я не беру, но и подписка Unity стоит 180 евро в месяц. И зачем платить подписку, когда можно не тащить в свой проект лишнее, а ключевое сделать не по подписке в круг за 200$ в токенах, что покроет потребность почти любого 2д проекта. И разрабатывать в разы удобнее, так как не нужно морочиться с MCP и плагинами.
В общем как показал опрос в моём личном блоге — на эту тему есть разные мнения. И большинство всё ещё за движки. Но ваш покорный слуга, занимающий всё ещё третье место среди авторов хабра по теме Unity и написавший 50 статей большая из которых посвящена этому движку готов похоронить весь этот опыт. Ради люмена и прочих фишек анриала я не готов был предать инструмент, которым пользовался 12 лет. А тут всё поменялось когда народ огня развязал войну, так как на мой взгляд другой процесс сильно лучше и оптимальнее.
#devmath #mention #gameengines #unity #ue
660
Драматургия уровней с помощью математики
https://dev-math.ru/articles/wfc/
Ура! Это была сложная статья. Чтобы она была короткой, понятной и чтобы демки были интересные. Конечно больше всего я заморочился над последней. Статью я на эту тему уже писал на самом деле, тут я просто решил сильно улучшить её наглядность и сделать короче. С конкретикой как это работает и зачем это надо.
• Несколько вариантов генерации карт
• Что за зверь WFC и в чём его недостатки
• Как задавать темп процедурно генерируемым картам и причём тут энтропия Шеннона
• WFC + карты гарантия темпа, но не гарантия проходимости. Шаги постобработки в генераторах
С мини игрой в конце, которая показывает как это всё может работать на бою и где можно порисовать свои карты.
В общем как всегда ставим 🔥 и делимся с друзьями. Чтобы я понимал не зря ли я старался и интересен ли такой формат. + бонус к посту короткая инфографика с шагами работы алгоритма.
P.S. Забавно кстати как ещё работают связки механик. Я оставил число ходов ограниченным, что делает игру игрой на поиск оптимального решения, как пройти карту с самым большим счётом, но пройти. Если включить туман войны это хардкор режим, который ощущается нечестным (по умолчанию он выключен). А если убрать число ходов, то играть не так интересно, так как нет челенджа и мотивации.
#devmath #gamedesign #procgen #wfc
660
Repost from Офис студенческого предпринимательства МФТИ
Открываем набор в осенний сезон акселератора «Физтех.Идея+» ❤️
В этом сезоне два трека:
• Игровые технологии — для команд, которые разрабатывают игры, игровые технологии и решения для игровой индустрии;
• Искусственный интеллект — для проектов, создающих продукты и технологии на базе AI и машинного обучения.
За 2025 год выпускники «Физтех.Идеи» привлекли в сумме более 100 млн рублей, а в 2026 уже более 40 млн. Акселератор помогает пройти путь от идеи или научной разработки до собственного продукта, первых клиентов, грантов и инвестиций
Все участники акселератора смогут: 🟢проработать свой проект вместе с опытными трекерами и отраслевыми экспертами; 🟢проверить гипотезы, определить целевую аудиторию и сформировать бизнес-модель; 🟢подготовить проект к участию в «Студенческом стартапе», «Студфесте», «Инноваторе Москвы» и других грантовых конкурсах; 🟢получить обратную связь от представителей индустрии и потенциальных партнеров; 🟢войти в закрытое сообщество предпринимателей МФТИ; 🟢получить сертификат участника акселератора.Приглашаем студентов, аспирантов и сотрудников любых университетов., а также предпринимателей из Московской области.
Для лучших проектов программы: 🟢призы и специальные предложения от партнеров; 🟢возможность запустить пилот с индустриальными партнерами программы; 🟢письма поддержки от МФТИ и партнеров акселератора; 🟢возможность привлечения инвестиций от Стартап-студии МФТИ и партнерских венчурных фондов; 🟢дополнительные баллы в предпринимательски магистратуры МФТИ.Набор открыт до 19 сентября включительно. Для подачи заявки необходимо заполнить анкету по ссылке Мероприятие организовано в рамках Платформы университетского технологического предпринимательства федерального проекта "Технологии". В партнерстве с Министерством инвестиций, промышленности и науки Московской области по нацпроекту «Эффективная и конкурентная экономика».
660
Сломай любимую игру
https://dev-math.ru/gd-quiz/
Зачем нужно изучать геймдизайн и опираться на опыт крутых игр? Попробуйте в них что-то сломать! Больше квизов богам квизов!
Я сделал новый квиз на 15 вопросов где предлагается сломать известную игру. С объяснением почему это так работает. По сути это такое полезное геймдизайнерское упражнение позволяющее понять для чего предназначена та или иная механика в игре.
Я уверен что вайбкодинг упрощает продакшен и один человек сейчас может сделать крутую игру, но как сделать именно интересную игру надо изучать. Тут клод с кодексом вам не помогут. Они могут сделать механики, но не скажут что такое интересная комбинация механик. А это проще всего изучать разбирая примеры, изучая как делают другие. Ну и я тут в меру своих сил буду что-то рассказывать.
В общем проходите квиз, делитесь им с друзьями, делитесь результатом в комментах. Ну и ставьте 🔥 конечно же, если зашел.
Я уже третий день делаю статью про процедурную генерацию уровней и она скоро выйдет. Я тут решил в ней заморочиться с интерактивом чтобы было наглядно и понятно как работает, поэтому получилось дольше чем я думал.
#devmath #quiz #gamdesign
660
Математика Balatro
https://www.mattgreer.dev/blog/balatro-score-growth/
Любопытный разбор: Matt Greer раскладывает рост счёта в Balatro на функции. Всё считается на одной двойке, сыгранной старшей картой: (5 + 2) × 1 = 7 очков, дальше r — номер раунда.
Wee Joker прибавляет по 8 фишек за раунд — это 8r + 7. Swashbuckler с Egg прибавляют по 3 множителя — 21r + 7. Цифры разные, класс один: прямая. А нужный счёт растёт каждый раунд, и колода на прямой за ним не поспевает — автор так и пишет, что линейный рост (или его отсутствие) это ранний сигнал спасать забег.
Качаем обе половины сразу — получается парабола. Pluto даёт старшей карте +10 фишек и +1 множителя, счёт становится 10r² + 17r + 7. Почти весь Balatro живёт здесь.
И тут собственно главное — про умножающих джокеров. Сколько растит Cavendish сам по себе? Нисколько. Он превращает 7 в 21 и на этом останавливается, а Hologram в одиночку растит счёт всего лишь линейно. Умножающие работают на чужом накоплении: Swashbuckler с Cavendish — это как три Swashbuckler'а, добавьте Card Sharp — как девять.
Экспонента начинается там, где номер раунда уезжает в показатель степени. Baseball Card даёт ×1.5 каждому необычному джокеру: берём по такому за раунд — и счёт растёт как 7 × 1.5ʳ. Разгоняется он медленно, связку Wee/Swashbuckler/Egg обходит только к 19-му раунду. Triboulet удваивает множитель за каждого сыгранного короля или даму, и каждый ретриггер удваивает ещё раз. Основание 2 вместо 1.5 выглядит мелочью — а на 24-м раунде это 7 340 039 очков против 23 283 у Baseball Card. В реальной руке автора множитель вырос в 2⁴⁰ раз, то есть больше чем в триллион. На взломанной колоде счёт дошёл до NaN: число стало настолько большим, что игра перестала его считать :)
Из практического — фишки и множитель надо держать поближе друг к другу: 1 × 100 это всего 100, а 50 × 50 — уже 2500.
В общем, джокер в магазине покупается не за числа на нём, а за класс роста, который он даёт колоде.
#devmath #balance #math #gamedesign #balatro
660
А нужна ли математика?
И есть по сути два способа сделать игру. "На глаз" и "с крутыми инструментами". Строго говоря, игру можно сделать без математических инструментов. После релиза можно править косяки по аналитике и вносить правки патчами (кстати тоже не всегда, так как вы можете неправильно посмотреть и понерфить предмет, а он был оверпавер только в связке с другим из-за мультипликатора и сломать другие сборки персонажей, скажем).
Математика заранее помогает отслеживать:
1. Редкие события. Ломает игру не медианный ран, а один процент сборок. Чтобы встретить событие с вероятностью 1/500 руками, нужны месяцы; симулятору нужны минуты.
2. Позволяет смоделировать некоторые процессы и логику геймплея без аудитории.
3. Поиск аномалий. В роуглайках, скажем, какая пара предметов и синергии дают на порядок выше остальных. И это не всегда плохо, игроку может "везти", и это тоже часто используется, но для того чтобы знать, что аномалии есть и где они, — проще смоделировать, нежели бегать 10к забегов самому.
4. Можно ломать бесплатно. Меняя коэффициенты в модели, она не пожалуется, что "вы сломали игру". А выпуская патч с изменением баланса на живую аудиторию вслепую — вы узнаете о себе часто много нового.
Кстати говоря, в сингл-плеере это не так критично. Сломанный баланс не ухудшает опыт игрока, так как какая-то оверпавернутая комба не обидит компьютер, против которого мы играем. А когда компьютер почему-то слишком силен, может восприниматься просто хардкорной сложностью игры. Но в пвп дела обстоят иначе. Любой сильный дисбаланс вызывает много негатива и ломает игру. Поэтому в пвп чаще пользуются инструментами математического баланса.
Но математическое моделирование не серебряная пуля. Симулятор моделирует не игру, а ваше представление о ней. Слабое звено — модель игрока: он либо жадный по локальной эвристике, либо случайный, и оба не похожи на человека. Баланс, настроенный под бота, ломается о людей, которые ищут не то, что ищет бот. Win rate 25% может быть выстраданной победой, а может — скукой. Ну и, конечно, математические модели не находят того, чего нет в правилах. Эксплойты живут на стыке механики и реализации: неожиданный порядок выполнения, баг, взаимодействие, которое никто не закладывал.
У игр нет формальных доказанных теорем, как сделать что-то интересным. А при этом главный критерий оценки качества игры — в неё интересно играть. Математика предоставляет инструменты, чтобы построить это ощущение и не сломать его ненароком + улучшать там, где надо. А ощущение от игры вы подстраиваете всегда под свой геймплей самостоятельно. И если интуиция вырабатывается насмотренностью — надо просто играть в хорошие игры, то математика — это инструмент, изучив который, многое вы начинаете делать быстрее и проще.
P.S. Математика всё равно есть в любой вашей игре, потому что это не что-то, что надо "вносить". Сама по себе она всего лишь описывает и моделирует различные процессы. Поэтому крутую игру можно сделать и без неё, но с ней проще. Это по своей сути язык, на котором окружающий мир говорит с теми, кто этот язык понимает.
#devmath #gamefeel #math
660
Угадай патч
https://dev-math.ru/patch/
Сделал небольшой интерактивчик. Угадай патч. Можно угадать игру из которой патчноут и дату. Хочу со временем чуть усложнить и сделать повеселее, а пока можно просто попробовать угадать. Там каждый день будет меняться то, о какой игре и каком патче речь. Сможете угадать?
*Картинка сгенерирована не по сегодняшнему патчу и подсказкой не является :)*
#devmath #интерактив
