Pull to refresh
12
0
Александр Шатилов @alexbraun

AI CPTO

Send message

Обзор техник реализации игрового ИИ

Reading time55 min
Views62K
image

Введение


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

Я буду предполагать, что вы знакомы с видеоиграми, немного разбираетесь в таких математических концепциях, как геометрия, тригонометрия и т.д. Большинство примеров кода будет записано псевдокодом, поэтому вам не потребуется знание какого-то конкретного языка.

Что же такое «игровой ИИ»?


Игровой ИИ в основном занимается выбором действий сущности в зависимости от текущих условий. В традиционной литературе по ИИ называет это управлением "интеллектуальными агентами". Агентом обычно является персонаж игры, но это может быть и машина, робот или даже нечто более абстрактное — целая группа сущностей, страна или цивилизация. В любом случае это объект, следящий за своим окружением, принимающий на основании него решения и действующий в соответствии с этими решениями. Иногда это называют циклом «восприятие-мышление-действие» (Sense/Think/Act):

  • Восприятие: агент распознаёт — или ему сообщают — информацию об окружении, которая может влиять на его поведение (например, находящиеся поблизости опасности, собираемые предметы, важные точки и так далее)
  • Мышление: агент принимает решение о том, как поступить в ответ (например, решает, достаточно ли безопасно собрать предметы, стоит ли ему сражаться или лучше сначала спрятаться)
  • Действие: агент выполняет действия для реализации своих решений (например, начинает двигаться по маршруту к врагу или к предмету, и так далее)
  • … затем из-за действий персонажей ситуация изменяется, поэтому цикл должен повториться с новыми данными.
Читать дальше →

Имитация разума: как устроен искусственный интеллект в играх

Reading time9 min
Views28K

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

Читать далее
Привет! Меня зовут Филипенко Владимир и я не писал эту статью. Я её надиктовал. Поправок в этом тексте потребовали только термины, с которыми SmartSpeech ожидаемо не знаком. В остальном оставляю всё как есть.

В материале мы познакомимся с передовым сервисом синтеза и распознавания речи SmartSpeech от Сбера, обсудим его внутренности и разберемся, как этот сервис может облегчить и даже украсить жизнь рядового хабраавтора.
Поехали!

Автоматизация frontend-разработки виджетов для систем управления контентом

Reading time7 min
Views3.5K

Всем привет! Меня зовут Андрей Яковенко и я являюсь руководителем группы FE-разработки. Сегодня хочу рассказать о способе позволяющем автоматизировать и, что немаловажно, упростить разработку виджетов для CMS посредством использования webpack.

Но сперва хотел бы немного оговориться, данная статья будет полезна тем, кто планирует внедрить фреймворки в CMS или имеет уже какой-то настроенный пайплайн для сборки виджетов и видит в нем ряд проблем и готов рассмотреть альтернативные варианты.

Кому интересно, добро пожаловать под кат.

Читать далее

Порядок операторов в RxJs

Reading time9 min
Views16K

TL;DR: Порядок важен. Операторы довольно атомарны и зачастую очень просты, но это не мешает им объединяться в сложные последовательности, в которых легко допустить ошибку. Давайте разберемся.

Читать далее

Распознаем простые фигуры по массиву точек

Reading time6 min
Views8.8K

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

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

Читать далее
Противостояние фронтендеров и бэкендеров — это как битва добра и зла с инь и ян. В этой статье представители двух лагерей вновь сразятся друг с другом за право главной роли в разработке ПО, а Хабр сможет сравнить их философию и лайфхаки. Кто же сейчас ценнее для больших корпораций: суровые бэкендеры или творческие фронтендеры с обострённым чувством прекрасного? А может, стереотипы уже устарели и различия между этими типами разработчиков стёрлись. Ведь их пути часто пересекаются, когда и те и другие вместе бьются над решением непростых глобальных задач. В этом посте я, Дмитрий Кондин (@Rumantic), не только расскажу о лучших докладчиках конференции X5 Tech «Природа кода», но и оценю их выступления.
К бою

Начало работы с Playwright (Часть 1)

Reading time6 min
Views53K

Добро пожаловать  на 1-й день челленджа #30DaysOfPlaywright!

Сегодня наша  цель – изучить руководство по началу работы с фреймворком, которое должно помочь настроить средство запуска Playwright Test в локальной среде разработки и подготовить его для  выполнения первого тестового прогона.

Читать далее

Как Uber эффективно обрабатывает свои миллионы заказов такси и еды. Часть 1

Reading time5 min
Views6K

Подробный разбор фулфилмент-архитектуры компании Uber.

Как описано в [1], фулфилмент-сервис должен “получить намерение клиента и воплотить его путем подбора правильного набора провайдеров (исполнителей)”. Например, одно из возможных намерений клиента - это поездка из одной точки в другую, а провайдером в этом случае будет являться свободный водитель такси, находящийся как можно ближе к клиенту. Конечная цель фулфилмент-сервиса - это эффективный поиск свободных водителей рядом с клиентом.

Читать далее

Angular Libs как монорепозиторий 2: tree shaking и сборка клонов

Reading time11 min
Views3K

Всем привет! В прошлом посте мы с вами разобрали механизмы создания библиотек с помощью Angular libs, а также научились настраивать их работу в приложении и друг с другом и даже вынесли наши ассеты в одну из таких библиотек.

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

Читать далее

Погружение в Helm Package Manager. Часть вторая

Reading time11 min
Views27K

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

Читать далее

Учимся e2e-тестированию с Playwright | #30DaysOfPlaywright

Reading time3 min
Views13K

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

Присоединяйтесь к #30DaysOfPlaywright. Давайте изучим инструменты, API и лучшие практики, по одному сценарию тестирования за раз!

Читать далее

Эксперимент Базермана: как мы ежедневно теряем деньги

Reading time5 min
Views227K

Вы ещё не слышали, как профессор Гарвардской школы бизнеса «наживается» на своих студентах? Тогда вам, наверное, будет интересно узнать о том, как продать 20 долларов за гораздо большую сумму. Скажем, долларов за 200.

Профессор Макс Базерман придумал эксперимент, который демонстрирует необъяснимое иррациональное поведение будущих профессиональных бизнесменов и менеджеров в их родной стихии — управлении проектами. Кстати, в эту же ловушку попадают и топ-менеджеры крупных компаний, с которыми профессор проводит свои семинары.

Читать далее

Docker: заметки веб-разработчика. Итерация первая

Reading time23 min
Views58K


Привет, друзья!


Хочу поделиться с вами заметками о Docker.


Заметки состоят из 4 частей: 2 теоретических и 2 практических.


Если быть более конкретным:


  • эта часть посвящена самому Docker, Docker CLI и Dockerfile;
  • в второй части рассказывается о Docker Compose;
  • в третьей части мы разработаем приложение, состоящее из 3 сервисов (клиента, админки и API) и базы данных (PostgreSQL);
  • в четвертой части мы это приложение "контейнеризуем".

Если вам это интересно, прошу под кат.

Читать дальше →

Как мы разработали интерактивную веб-схему для зрительных залов

Reading time6 min
Views7.2K
Иногда в приложении надо показать модель помещения – допустим, кинотеатра или даже целого стадиона, если вы продаете билеты на концерт Metallica. Если в зале 50-100 тысяч мест, то для их вывода на экран нужно продумать плавный zoom, скроллинг и другие детали. Итак, главный вопрос – как показывать тысячи элементов на экране, чтобы это было удобно для пользователей?

Недавно мы писали о скроллинге диаграмм с помощью d3.js, а сейчас хотим поделиться другим кейсом. Рассказываем, как с помощью Canvas можно разработать интерактивную схему зала, которую просто встраивать в любые веб-приложения.

Читать дальше →

Отойти от IT: куда расти, когда код ради кода больше не интересен

Reading time20 min
Views26K


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


Это похоже на прокачку веток развития персонажа в RPG-игре. Ставишь на ловкость или качаешь силу — получаешь разный результат. Мы выбрали четыре направления, в которых можно качать своего персонажа, и задали вопросы людям, которые уже прошли этими путями:


Читать дальше →

Основные инструменты Kubernetes в 2021 году

Reading time21 min
Views28K

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

В основе этого списка — мой личный опыт, и чтобы избежать предвзятости, я расскажу и об альтернативных инструментах, чтобы вы могли всё сравнить и принять решение, исходя из своих потребностей. Постараюсь дать информацию сжато и привести источники, чтобы при желании вы могли изучить всё самостоятельно. Описывая инструменты для различных задач разработки ПО, я хотел ответить на вопрос: «Как я могу сделать X в Kubernetes?»

Читать далее

О чём JS-разработчикам поведают на HolyJS 2021 Moscow

Reading time13 min
Views4.3K

До HolyJS осталось меньше месяца — пора поведать Хабру, какие именно доклады там будут. Под катом их описания, а тут отметим пару вещей:

— В этот раз шире обычного раскрыта тема производительности. Когда React.memo не ускорит, а замедлит? Почему Solid.JS такой быстрый? Что нужно знать JS-разработчику в современном многоядерном мире?

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

Описания мы разделили по тематическим блокам, но это деление не строгое, некоторые доклады можно причислить к разным блокам сразу.

Смотреть программу

SVC, SFU, MPEG-5 Part 2 LCEVC, CMAF, 8K, Txt2Vid, VMAF NEG и другие удивительные штуки — на конференции VideoTech 2021

Reading time10 min
Views3.2K

Видео — это сложно.

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

А поскольку разбираться в видео нам надо, а фантазия у нас давно закончилась, то мы нашли единомышленников и сделали конференцию VideoTech по видео и стримингу. Она пройдёт в онлайне уже совсем скоро — с 1 по 3 декабря.

В числе основных тем VideoTech 2021 — WebRTC, кодеки видео/аудио, качество видео и его раздача, ML/AI и не только. Полный список тем и докладов — в тексте ниже.

Смотреть программу

«Если сайты будут работать лучше — это будет идеально»: интервью с разработчиком Playwright Андреем Лушниковым

Reading time12 min
Views7.9K
Совсем недавно вышла статья про новый инструмент Playwright, одним из авторов которого является Андрей Лушников. Нам выпала возможность пообщаться с Андреем и задать все вопросы, которые внимательные читатели написали в комментариях. Думаю, в этом лонгриде они смогут найти ответы. Немного спойлеров:

  • Андрей рассказал историю развития Playwright и Puppeteer;
  • ответил на вопросы про протоколы, которые используют для работы с браузерами;
  • рассказал про сложности браузерных движков и планируемые интеграции Playwright.



Андрей Лушников приедет на конференцию Heisenbug, где и у вас будет возможность задать ему вопросы.
Задать вопросы

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity