Вашим играм не нужна State Machine

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

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

Стейт-машины: The Good, The Bad and The Ugly
Привет! Меня зовут Дарья Андреева, я тимлид в команде бэкенда Биллинга Яндекс 360. Яндекс 360 объединяет такие сервисы, как Диск, Телемост, Почта и другие, в единую экосистему, а мы собираем их в цельный продукт и реализуем функции оплаты и подписочные модели.
В статье расскажу, как мы запускали промокоды для студентов, а заодно научились проектировать и писать стейт-машины, и поделюсь, в каких ситуациях такое решение точно не подойдёт.



В прошлой части мы немного коснулись теории и остановились на определении лишних компонентов. В этой части мы продолжим определять лишнее, коснёмся вопросов экстремальной экономии, а также закрепим всё выводами.
Если не читали первую часть, настоятельно рекомендую это сделать, чтобы оставаться в контексте.
Итак, продолжим.
«Цель этого курса — подготовить вас к вашему техническому будущему.»
Привет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2442 в закладки, 389k прочтений)?
По данным сайта gamedatacrunch.com, в 2021 году 49,48% всех платных игр, вышедших в Steam, были сделаны на Unity. А в сфере мобильных игр этот показатель уже давно превысил 50%. В этом материале мы расскажем, почему движок стал настолько популярным, и объясним, почему начинающие разработчики и небольшие инди-команды предпочитают использовать Unity.

Данный вопросник является дополнением и логическим завершением темы "джентльменского набора", поднятой ранее. Разработка игр — весьма комплексная индустрия, с очень широкими набором технологий и подходов, при этом базис у всех этих вещей на самом деле общий. Этот список создан в первую очередь для тех, кто хочет быть программистом Unreal Engine, а также позволяет оценить свой уровень тем, кто уже считает себя продвинутым программером под анрил.
В своей статье я стараюсь затрагивать такие проявления используемой технологии, изучение или исследование которых дает не просто инструкцию "делай так", а формирует рациональные подходы к разработке.

Давно хотел начать делать пет-проект про машинки, потому что я люблю машинки. А времени на то, чтобы заниматься автоспортом в реальности, у меня всё нет и нет.
Но ощущение, что можно сделать что-то более интересное в виртуальном дрифте, есть. А тут еще и потребность в таком проекте появилась.
Тема отлично подходила для открытого урока, потому что изначальная задумка была в достаточно простых механиках. Поэтому статья будет интересна как тем, кто впервые открывает для себя Unreal Engine, так и тем, кто знаком с движком, но не углублялся в cоздание автомобилей в нём.

Примеры использования нейросетей в бизнесе с видео‑инструкциями: консультации по бизнесу, работа с негативными отзывами, помощь с продвижением в сети и прочее.


DOOM — прародитель шутеров от первого лица, определивший целое поколение игр 90-х. Хоть это и не первая игра такого рода, и даже не первая игра id Software, но именно она изменила индустрию. Проект до сих пор изучают не только из-за его известности, но и потому, что он достиг высот в условиях сильных технических ограничений, задолго до появления большинства современных инструментов и стандартов. Под катом перевод статьи о работе искусственного интеллекта в Doom и трюках, которые использовали разработчики для создания интересных боевых ситуаций.



Одна из самых простых и базовых концепций в программировании игр — это идея игрового цикла. При запуске вашего проекта происходит его инициализация, после чего игровой цикл действует до тех пор, пока игрок хочет продолжать игру: каждый кадр вы обрабатываете ввод, обновляете состояние игрового мира и выводите результат на экран. Когда игрок закрывает игру, происходит очистка данных, и на этом все заканчивается.
Но когда вы пишете игровой код на Unreal Engine, вы не имеете дело с игровым циклом напрямую. Вы не начинаете работать сразу с основной функцией — сначала вы определяете подкласс GameMode и переопределяете функцию под названием InitGame. Или пишете одноразовые классы Actor и Component и переопределяете их функции BeginPlay или Tick для добавления собственной логики. Это самый минимум того, что вам нужно сделать: обо всем остальном движок позаботится за вас.
Unreal Engine также предлагает вам как программисту мощный и гибкий инструментарий: конечно, он имеет открытый исходный код, но также возможно и расширение несколькими другими способами. Даже если вы только начинаете работать с этим движком, было бы не лишним получить представление о его GameFramework: о таких классах, как GameMode, GameState, PlayerController, Pawn и PlayerState.
И один из лучших способов ближе познакомиться с движком — это заглянуть в его исходный код и посмотреть на то, как он загружает вашу игру.



В мире видеоигр игровая физика играет важную роль, определяя реалистичность и взаимодействие игрового мира с игроком. Что же происходит под капотом? Какие алгоритмы и подходы используются в современных движках? И что же значит «застрять в текстурах»? (спойлер: чушь полнейшая)
В этой статье мы рассмотрим основные принципы и технологии, лежащие в основе работы физических движков, а также предоставим советы по ее оптимизации для улучшения производительности игрового движка.

Машинное обучение революционизирует игровую индустрию всё больше. Если играли, то знаете, что в играх теперь не просто бездумно бегают NPC, а ведут битву настоящие стратеги, которые адаптируются к вашему стилю игры и, так уж и быть, позволяют вам красиво выиграть, а себе — также красиво (или не очень) проиграть…
Как так происходит?
С помощью ML, конечно.
Есть обучение с учителем. Это когда персонажи учатся на основе заранее размеченных данных или подсказок, что можно представить как обучение на основе опыта предыдущих игроков или действий разработчиков. В результате получается оптимальное поведение, которое уже имеет определенную «интеллектуальность».
Есть обучение без учителя. Здесь уже боты изучают игровую среду и формируют свои стратегии, не имея прямых указаний от разработчиков или опыта предыдущих игроков. Этот подход позволяет создавать персонажей, которые могут адаптироваться к самым разным игровым ситуациям, даже если они не были предвидены заранее.
И наконец, обучение с подкреплением. Это когда боты принимают решения, основываясь на полученных «наградах» или «штрафах» за свои действия, что в игровом мире может быть аналогично получению очков или бонусов за правильные действия и потере жизней или опыта за ошибочные.