Математика в Gamedev по-простому
591 subscribers
113 photos
3 videos
3 files
64 links
Как на самом деле создаются игры. Как сделать игру интересной и реализовать технически. А главное причём тут математика?

Разборы на пальцах, рабочий код, интерактивы. dev-math.ru

Сотрудничество: @it_bizdev
Download Telegram
Открываем набор в осенний сезон акселератора «Физтех.Идея+» ❤️

В этом сезоне два трека:

Игровые технологии — для команд, которые разрабатывают игры, игровые технологии и решения для игровой индустрии;

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

За 2025 год выпускники «Физтех.Идеи» привлекли в сумме более 100 млн рублей, а в 2026 уже более 40 млн. Акселератор помогает пройти путь от идеи или научной разработки до собственного продукта, первых клиентов, грантов и инвестиций

Все участники акселератора смогут:

🟢проработать свой проект вместе с опытными трекерами и отраслевыми экспертами;
🟢проверить гипотезы, определить целевую аудиторию и сформировать бизнес-модель;
🟢подготовить проект к участию в «Студенческом стартапе», «Студфесте», «Инноваторе Москвы» и других грантовых конкурсах;
🟢получить обратную связь от представителей индустрии и потенциальных партнеров;
🟢войти в закрытое сообщество предпринимателей МФТИ;
🟢получить сертификат участника акселератора.


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

Для лучших проектов программы:

🟢призы и специальные предложения от партнеров;
🟢возможность запустить пилот с индустриальными партнерами программы;
🟢письма поддержки от МФТИ и партнеров акселератора;
🟢возможность привлечения инвестиций от Стартап-студии МФТИ и партнерских венчурных фондов;
🟢дополнительные баллы в предпринимательски магистратуры МФТИ.


Набор открыт до 19 сентября включительно.

Для подачи заявки необходимо заполнить анкету по ссылке

Мероприятие организовано в рамках Платформы университетского технологического предпринимательства федерального проекта "Технологии". В партнерстве с Министерством инвестиций, промышленности и науки Московской области по нацпроекту «Эффективная и конкурентная экономика».
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Драматургия уровней с помощью математики
https://dev-math.ru/articles/wfc/

Ура! Это была сложная статья. Чтобы она была короткой, понятной и чтобы демки были интересные. Конечно больше всего я заморочился над последней. Статью я на эту тему уже писал на самом деле, тут я просто решил сильно улучшить её наглядность и сделать короче. С конкретикой как это работает и зачем это надо.

• Несколько вариантов генерации карт
• Что за зверь WFC и в чём его недостатки
• Как задавать темп процедурно генерируемым картам и причём тут энтропия Шеннона
• WFC + карты гарантия темпа, но не гарантия проходимости. Шаги постобработки в генераторах

С мини игрой в конце (на телефоне не тестил, только на компе), которая показывает как это всё может работать на бою и где можно порисовать свои карты.

В общем как всегда ставим 🔥 и делимся с друзьями. Чтобы я понимал не зря ли я старался и интересен ли такой формат. + бонус к посту короткая инфографика с шагами работы алгоритма.

P.S. Забавно кстати как ещё работают связки механик. Я оставил число ходов ограниченным, что делает игру игрой на поиск оптимального решения, как пройти карту с самым большим счётом, но пройти. Если включить туман войны это хардкор режим, который ощущается нечестным (по умолчанию он выключен). А если убрать число ходов, то играть не так интересно, так как нет челенджа и мотивации.

#devmath #gamedesign #procgen #wfc
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13
Движки больше не нужны
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
🔥54🤔1
Как создать ощущение, что противники в шутерах действуют слаженно?

За что я люблю игры, так это за то, что это, по сути, шоу. А в шоу очень много трюков. Трюки, в свою очередь, создают у игрока нужные ощущения. Один из таких трюков — барки в шутерах: они создают ощущение, что противники действуют слаженно.

Барк (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
🔥63
Как 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
🔥62
👍 Десять полезных формул баланса

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

Я выделил 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
❤‍🔥53
Новый формат роликов
https://youtube.com/shorts/sBWPJmyMqKg?si=GqUfUyLol_ahrRsK

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

Конечно подозреваю, что и этот формат лучше делать без липсинка или поискать другой инструмент. Не Veo Lite. Так как не уверен, что анимация прикольная чтобы так смотреть :)

#fun #interview #devmath
🔥4
Покажите свою игру
https://dev-math.ru/indie-review/

Думал думал и наконец-то придумал новую рубрику. Короче, друг. Я в благородство играть не буду. Скинешь мне игру, а я её разберу и расскажу об этом. На кой ляд тебе сидеть без фидбека я не знаю, но если что я дам и может кто-то из подписчиков подключится.

В общем решил я это всё обозвать SCOPE по принципам разбора.

Session (сессия) — сколько длится один заход, чем открывается, чем закрывается и что оставляет незакрытым, чтобы вернуться.

Core (кор-луп) — в чём заключается геймплей, в чём заключается игра. На сколько она реиграбельна и декмпозиция по ключевым психологическим аспектам.

Onboarding (посадка) — сразу ли понятно как в игру играть. Понятность и читаемость геймплея, а куда лучше вставить туториал.

Pitch (обещание) — необязательный шаг, при наличии. Что говорит игра до запуска. Скриншоты, описание, страница магазина (если есть, если нет то и неважно). И какие обещания игра выполняет.

Economy (экономика) — как работает экономика и монетизация игры. В платных играх это про петлю удержания. В веб (яндекс игры) и фри ту плей ещё про монетизацию.

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

#devmath #gamedesign #scope
🔥9
🚀 Как запустить игровой стартап и применить бизнес-опыт в геймдеве? 🚀

Высшая школа бизнеса НИУ ВШЭ проводит онлайн День открытых дверей программы «Менеджмент игровых проектов»

🔡 24 сентября (четверг) в 19:00 (MSK)
🔡 Зарегистрироваться

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

Если вы хотите запустить свою инди-студию, сменить сферу деятельности и развиваться в игровой индустрии — приходите

Из презентации программы вы узнаете:
🔴 Траектории развития: какие карьерные пути открыты в индустрии для управленцев и инди-команд
🔵 Бизнес-модели: как довести проект от идеи до коммерческого релиза или защиты перед инвесторами
🟢 Дистанционный формат: как эффективно учиться, проходить практику и собирать команду из любой точки России


Эта встреча — не скучный формат презентации, а живой диалог с академическим руководителем программы Вячеславом Уточкиным, генеральным продюсером Geeky House, и командой преподавателей-практиков:

🔷 Константин Сахнов — продюсер, основатель Vengeance Games
🔷 Владимир Агарев — креативный директор JayJoy
🔶 Сергей Голубкин — владелец издательства настольных игр «Геменот»
🔷 Григорий Поляков — продюсер Geeky House

Интенсив приурочен к запуску знакового, юбилейного 20-го потока программы переподготовки Вышки «Менеджмент игровых проектов»


Участие полностью бесплатное. Нужна предварительная регистрация

🔡 Зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2