Pull to refresh
1
@tron_lineread⁠-⁠only

User

Send message

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

Level of difficultyEasy
Reading time4 min
Reach and readers14K

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

Читать далее

Стейт-машины: The Good, The Bad and The Ugly

Reading time7 min
Reach and readers7.2K

Стейт-машины: The Good, The Bad and The Ugly 

Привет! Меня зовут Дарья Андреева, я тимлид в команде бэкенда Биллинга Яндекс 360. Яндекс 360 объединяет такие сервисы, как Диск, Телемост, Почта и другие, в единую экосистему, а мы собираем их в цельный продукт и реализуем функции оплаты и подписочные модели. 

В статье расскажу, как мы запускали промокоды для студентов, а заодно научились проектировать и писать стейт-машины, и поделюсь, в каких ситуациях такое решение точно не подойдёт.

Читать далее

Простая процедурная генерация мира, или Шумы Перлина на Python

Level of difficultyEasy
Reading time5 min
Reach and readers39K

Недавно я выпустил статью, в которой рассказал о библиотеке Ursina Engine и показал, как создать свою трехмерную игру на Python. Между разделами вскользь упомянул про шум Перлина. Это один из базовых алгоритмов процедурной генерации, который можно использовать для создания красивых игровых миров. Хочу рассказать о нем подробнее и показать, как работать с модулем perlin-noise.

Если вам интересно, как просто генерировать реалистичные трехмерные ландшафты на Python, добро пожаловать под кат!
Читать дальше →

Туториал по Unreal Engine. Часть 9: Искусственный интеллект

Reading time14 min
Reach and readers122K
image

В индустрии видеоигр искусственным интеллектом (Artificial Intelligence, AI) обычно называют процесс принятия решений не управляемыми игроком персонажами. Он может быть простым: враг видит игрока и атакует. Или же более сложными, например, управляемый ИИ противник в стратегии реального времени.

В Unreal Engine создавать ИИ можно с помощью деревьев поведения. Дерево поведения (behavior tree) — это система определения поведения, используемого ИИ. Например, у него может быть поведение боя или бега. Можно создать дерево поведения, при котором ИИ будет драться с игроком, если его здоровье выше. Если оно ниже 50%, то он будет убегать.

В этом туториале вы научитесь следующему:

  • Создавать ИИ-сущность, которая может управлять элементом Pawn
  • Создавать и использовать деревья поведения и blackboard
  • Использовать AI Perception, чтобы дать Pawn зрение
  • Создавать поведения, чтобы Pawn мог ходить и атаковать врагов
Читать дальше →

Вы за это заплатите! Цена Чистой Архитектуры. Часть 2

Level of difficultyMedium
Reading time9 min
Reach and readers10K

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

Если не читали первую часть, настоятельно рекомендую это сделать, чтобы оставаться в контексте.

Итак, продолжим.

Читать далее

Ричард Хэмминг: Глава 7. Искусственный интеллект — II

Reading time18 min
Reach and readers8.4K
«Цель этого курса — подготовить вас к вашему техническому будущему.»

imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2442 в закладки, 389k прочтений)?

Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Мы ее переводим, ведь мужик дело говорит.

Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

Мы уже перевели 23 (из 30) главы. И ведем работу над изданием «в бумаге».

Глава 7. Искусственный Искусственный интеллект — II


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

Давайте вернёмся к началу рассуждений и заново рассмотрим компоненты машины и человека. И машина, и человек состоят из атомов и молекул. И машина, и человек состоят из основных частей; у машин среди прочего есть устройства накопления и переключения (вентили), а человек состоит из органов. У машин есть большие структуры, арифметические блоки, память, блоки управления, устройства ввода-вывода, человек же состоит из костей, мускулов, кровяных сосудов, нервной системы и т.д.
Читать дальше →

Разработчик игр на Unity: как начать работать с востребованным игровым движком

Reading time6 min
Reach and readers23K

По данным сайта gamedatacrunch.com, в 2021 году 49,48% всех платных игр, вышедших в Steam, были сделаны на Unity. А в сфере мобильных игр этот показатель уже давно превысил 50%. В этом материале мы расскажем, почему движок стал настолько популярным, и объясним, почему начинающие разработчики и небольшие инди-команды предпочитают использовать Unity. 

Читать далее

Джентльменский набор программиста UE4, ч. 3

Reading time4 min
Reach and readers15K

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

В своей статье я стараюсь затрагивать такие проявления используемой технологии, изучение или исследование которых дает не просто инструкцию "делай так", а формирует рациональные подходы к разработке.

Читать далее

Drift Game Tutorial

Level of difficultyMedium
Reading time7 min
Reach and readers6.1K

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

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

Читать далее

10 идей применения искусственного интеллекта для бизнеса, маркетолога и фрилансера

Reading time6 min
Reach and readers88K

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

Читать далее

Анатомия игры: искусственный интеллект

Level of difficultyMedium
Reading time15 min
Reach and readers4.3K


Добрый вечер, дорогие хабражители! Практический материал все еще требует больших аппаратных мощностей, чем у меня есть, поэтому продолжим теоретическое ознакомление. Сегодня мы немножко поговорим об искусственном интеллекте в играх, его формах и проблемах.
Читать дальше →

Искусственный интеллект в DOOM

Reading time11 min
Reach and readers41K

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

Читать далее

Эти люди создают искусственный интеллект — 4 истории специалистов по ИИ и ML

Reading time8 min
Reach and readers6.6K
Четыре опытных специалиста о том, как занялись искусственным интеллектом, с какими сложностями столкнулись и какие задачи решают.
Читать дальше →

Туториал по Unreal Engine. Часть 5: Как создать простую игру

Reading time13 min
Reach and readers176K
image

Если вы новичок в разработке игр, то логичнее всего начинать с создания простой игры. Она научит вас реализации простых механик и тому, как объекты взаимодействуют друг с другом.

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

  • Бесконечно перемещать игрока вперёд
  • Генерировать препятствия, которые игрок должен избегать
  • Рандомизировать препятствия для создания вариаций
  • Создавать кнопку перезапуска, которая отображается, когда игрок сталкивается с препятствием
Читать дальше →

Туториал по Unreal Engine. Часть 10: Как создать простой FPS

Reading time12 min
Reach and readers154K
image

Шутер от первого лица (first-person shooter, FPS) — это жанр, в котором игрок использует оружие и смотрит на мир глазами персонажа. FPS-игры чрезвычайно популярны, что видно по успеху таких франшиз, как Call of Duty и Battlefield.

Unreal Engine изначально был создан для разработки FPS, поэтому вполне логично использовать его для создания такой игры. В этом туториале вы научитесь следующему:

  • Создавать Pawn с видом от первого лица, который сможет двигаться и осматриваться вокруг
  • Создавать оружие и привязывать его к Pawn игрока
  • Стрелять пулями с помощью трассировки прямых (также известной как трассировка лучей)
  • Наносить урон акторам
Читать дальше →

От int main() до BeginPlay: как происходит инициализация Unreal Engine под капотом

Reading time16 min
Reach and readers22K

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

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

Unreal Engine также предлагает вам как программисту мощный и гибкий инструментарий: конечно, он имеет открытый исходный код, но также возможно и расширение несколькими другими способами. Даже если вы только начинаете работать с этим движком, было бы не лишним получить представление о его GameFramework: о таких классах, как GameMode, GameState, PlayerController, Pawn и PlayerState.

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

Читать далее

Unreal Engine vs Unity vs GoDot. Что нужно знать, если ты не программист

Level of difficultyMedium
Reading time17 min
Reach and readers36K


Доброго времени суток, дорогие хабражители. Продолжаем разбор строения игр, игровых движков и их особенностей с точки зрения человека, которому никогда в жизни не говорили «тыжпрограммист». Сегодня на повестке дня выбор игрового движка из двух гигантов игростроя: Unity и Unreal Engine.
Читать дальше →

Статический анализ как часть процесса разработки Unreal Engine

Reading time13 min
Reach and readers10K
PVS-Studio & Unreal Engine

Проект Unreal Engine развивается — добавляется новый код и изменятся уже написанный. Неизбежное следствие развития проекта — появление в коде новых ошибок, которые желательно выявлять как можно раньше. Одним из способов сокращения количества ошибок является использование статического анализатора кода PVS-Studio. Причем анализатор также быстро развивается и учится находить новые паттерны ошибок, некоторые из которых будут рассмотрены в этой статье. Если вас заботит качество кода ваших проектов, то эта статья для вас.
Читать дальше →

Как работает физика в играх

Level of difficultyMedium
Reading time17 min
Reach and readers28K

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

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

Читать далее

Level Up: Геймдев в эпоху искусственного интеллекта

Level of difficultyEasy
Reading time14 min
Reach and readers3.1K

Машинное обучение революционизирует игровую индустрию всё больше. Если играли, то знаете, что в играх теперь не просто бездумно бегают NPC, а ведут битву настоящие стратеги, которые адаптируются к вашему стилю игры и, так уж и быть, позволяют вам красиво выиграть, а себе — также красиво (или не очень) проиграть…

Как так происходит?

С помощью ML, конечно. 

Есть обучение с учителем. Это когда персонажи учатся на основе заранее размеченных данных или подсказок, что можно представить как обучение на основе опыта предыдущих игроков или действий разработчиков. В результате получается оптимальное поведение, которое уже имеет определенную «интеллектуальность». 

Есть обучение без учителя. Здесь уже боты изучают игровую среду и формируют свои стратегии, не имея прямых указаний от разработчиков или опыта предыдущих игроков. Этот подход позволяет создавать персонажей, которые могут адаптироваться к самым разным игровым ситуациям, даже если они не были предвидены заранее. 

И наконец, обучение с подкреплением. Это когда боты принимают решения, основываясь на полученных «наградах» или «штрафах» за свои действия, что в игровом мире может быть аналогично получению очков или бонусов за правильные действия и потере жизней или опыта за ошибочные. 

Читать далее

Information

Rating
Does not participate
Registered
Activity

Specialization

Десктоп разработчик, Разработчик игр
Python
ООП
C++
Unreal Engine
Шейдеры
Разработка игр
Разработка под AR и VR