Pull to refresh
0
@maxpsyhosread⁠-⁠only

User

Send message

Дорога на войну: ИИ игр серии Total War

Reading time10 min
Views17K
image

С самого основания моей серии видео «AI and Games» на YouTube я исследовал различные реализации ИИ, решающие определённые задачи в дизайне видеоигр, требующие немедленного, реактивного поведения в сочетании с долговременным и стратегическим принятием решений. Популярным жанром, в котором ИИ может создавать быстрый, реактивный и захватывающий геймплей, являются шутеры от первого лица (FPS). Но если мы хотим рассмотреть потребность в эффективных системах, учитывающих баланс принятия краткосрочных и долгосрочных решений, то идеальным предметом для изучения являются игры в жанре стратегии реального времени (Real-Time Strategy, RTS).

И RTS, и FPS продолжают вносить инновации в современные видеоигры, стремясь соответствовать их дизайну. Но играм в жанре RTS нужно оценивать гораздо более обширное и длительное влияние быстрых и реактивных решений. Кроме того, им требуется управлять ресурсами на разных уровнях абстракции и сложности в многочасовых игровых сессиях. При обсуждении сложностей и инноваций, с которыми приходится столкнуться ИИ стратегических игр, ни в коем случае нельзя не упомянуть одну франшизу — Total War компании Creative Assembly.
Читать дальше →

Разработка игр под NES на C. Главы 1-3. От введения до Hello World

Reading time8 min
Views43K

Впервые я задумался о том, как разрабатывают игры под приставки где-то через 20 минут после того, как в самый первый раз увидел Turbo Pascal. На глаза иногда попадался Subor с клавиатурой, и появилась мысль: "Наверное можно набрать какую-то программу, а потом в нее поиграть". Но интерес быстро затух, потому что абсолютно никакой информации по этой теме тогда не было доступно. Следующий раз эта же идея всплыла, когда увидел вполне играбельные эмуляторы старых консолей. Тогда стало ясно, что вбивать листинг в саму консоль и необязательно. Где-то очень потом появился Хабр с благожелательной аудиторией для таких вещей. В какой-то момент даже начал собирать разрозненную инфу чтобы написать мануал самому, и вот сегодня наткнулся на готовый учебник, который явно надо перевести.


Разработка под старые консоли документирована вдоль и поперек, но именно по NES 99% информации относятся к разработке на Ассемблере. Меня почему-то зарубило, что надо освоить именно работу с С.


следующая >>>
image

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

UE4 и мобильная разработка: мифы и реальность

Reading time14 min
Views74K


Широко распространено мнение, что Unreal Engine 4 — слишком «тяжелая» технология для мобильных игр. В то же время число проектов, выпущенных на этом движке в мобильных сторах, растёт с каждым днём.


Почему все больше разработчиков выбирают для своих проектов UE4? С какими сложностями вы можете столкнуться при работе над игрой для мобильных устройств? Какие подходы и пайплайны стоит использовать, а чего следует избегать? Наш опыт студии Pushkin приоткроет завесу тайны над этими и другими вопросами.


Данная статья является является текстовой версией доклада, прочитанного 9 февраля 2017 года на мероприятии Unreal Engine Meetup в Mail.Ru Group. Несмотря на дату публикации исходного материала, представленная информация является не только тем самым наступившим «сегодняшним днём» и содержит в себе актуальные цифры, но и подтверждает прогнозы, высказанные автором на самом мероприятии.

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

Как AI вставляет Николаса Кейджа в фильмы и делает порно со знаменитостями

Reading time6 min
Views89K


Теперь нельзя верить политикам, говорящим что-то в YouTube-роликах, и «сливам» секс-видео звёзд. Реддит-юзеры научили AI заменять лица на видео, и в последние недели это так взорвалось, что ни одна знаменитость не осталась нетронутой. Больше всего досталось Нику Кейджу, который, с его экспрессивностью, давно стал золотой жилой для создателей мемов. Благодаря искусственному интеллекту и возможностями машинного обучения это вышло на новый уровень, так что сейчас к технологии присматриваются и в Голливуде. Эффекты иногда получаются лучше, чем в последних блокбастерах. Вот только у некоторых пользователей другие интересы…

Семафоры, гонки, критические секции и Scratch. Зомби против растений

Reading time4 min
Views6.2K

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


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


История участия в Game Jam. Snowbox

Reading time14 min
Views3.7K
imageВ конце 2017 года мне довелось проверить свои силы и энтузиазм в качестве участника одного из многочисленных мировых Game Jam’ов.

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

Под катом описание, как прошли интенсивные 30 дней разработки и медленные 20 дней ожидания результатов.

Примечание: статья носит повествовательный характер, с небольшим количеством технических деталей.
Добро пожаловать

Рендерим облака на мобильных девайсах

Reading time3 min
Views22K
3 года назад художник спросил меня:
— Слушай, а можно в нашу мобильную игру добавить красивые облачка?
— Нет, это абсолютно невозможно, у нас постоянно вращается камера, так что билборды будут смотреться очень фальшиво даже если на них добавить карты нормалей, а другие способы…
*художник погружается в летаргический сон*

Для меня нет большего удовольствия, чем выяснять, что я был неправ.



Про фотореалистичный рендеринг облаков написано много статей, но если хочется рисовать облака на смартфоне, приходится придумывать кучу всяких хаков, упрощений и допущений.
Под катом подробное описание рендеринга облаков на мобильных и много html5 гифок.
Поехали!

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Reading time26 min
Views350K
Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →

Ещё большее ускорение WebAssembly: новый потоковый и многоуровневый компилятор в Firefox

Reading time6 min
Views14K
Оба авторе: Лин Кларк — разработчик в группе Mozilla Developer Relations. Занимается JavaScript, WebAssembly, Rust и Servo, а также рисует комиксы о коде.

Люди называют WebAssembly фактором, меняющим правила игры, потому что эта технология ускоряет выполнение кода в вебе. Некоторые из ускорений уже реализованы, а другие появятся позже.

Одна из техник — потоковая компиляция, когда браузер компилирует код во время его загрузки. До настоящего времени эта технология рассматривалась лишь как потенциальный вариант ускорения. Но с выпуском Firefox 58 она станет реальностью.

Firefox 58 также включает в себя двухуровневый компилятор. Новый базовый компилятор компилирует код в 10–15 раз быстрее, чем оптимизирующий компилятор.

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



На десктопе мы компилируем 30-60 МБ кода WebAssembly в секунду. Это быстрее, чем сеть доставляет пакеты.
Читать дальше →

Прошло 10 лет, а никто не придумал, как использовать блокчейн

Reading time14 min
Views145K
Все говорят, что блокчейн — технология, лежащая в основе криптовалют — изменит ВСЁ. Но спустя годы усилий и многомиллиардные инвестиции никто так и не придумал, как можно использовать блокчейн, если не считать криптовалютных спекуляций и противозаконных финансовых транзакций.

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

Просто о графах. Попытка популяризации

Reading time19 min
Views41K
«Всякие звания (дворянина, купца, мещанина, крестьянина и пр., титулы — княжеские, графские и пр.) и наименование гражданских чинов (тайные, статские и проч. советники) уничтожаются...»
Об уничтожении сословий и гражданских чинов
Декрет ВЦИК и СОВНАРКОМа от 10.11.1917 года, ст. 2



image


Как-то же я обходился без этого раньше...


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

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

Подарков мешок

Reading time7 min
Views5.6K
         – Ящик! – рявкнул отец Кабани и надолго замолчал, делая странные движения щеками... 
         – Ящик… – повторил отец Кабани упавшим голосом. – Это мы говорим, будто мы выдумываем. На самом деле все давным-давно выдумано. Кто-то давным-давно все выдумал, сложил все в ящик, провертел в крышке дыру и ушел… Ушел спать... 
 
А. и Б. Стругацкие "Трудно быть богом"
 
 
На носу Новый год и время дарить подарки. За год было сделано немало. Мой проект растёт на глазах и, что самое главное, становится умнее. Как именно он это делает — отдельная история, которую я обязательно расскажу, как нибудь, в другой раз. Сейчас — время заглянуть в мешок и посмотреть, что приготовил для нас Dagaz.

История инженерных конструкторов fischertechnik

Reading time8 min
Views19K

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



Сегодня я хочу поделиться материалом о проекте, который уже 52 года способствует формированию инженерных кадров в разных странах, включая СССР и РФ. Речь пойдет о конструкторах fischertechnik (Фишертехник).

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

Алгоритмы антиалиасинга в реальном времени

Reading time19 min
Views50K
image

Алиасинг (aliasing) — это, возможно, наиболее фундаментальный и самый широко обсуждаемый артефакт 3D-рендеринга всех времён. Однако в игровом сообществе его часто недопонимают. В этой статье я подробно расскажу о теме сглаживания (антиалиасинга, anti-aliasing, AA) в реальном времени, особенно о том, что касается игр, и в то же время буду излагать всё достаточно простым языком.

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

Эту программу можно скачать здесь.

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

Как расправиться с читерами и не переписать весь код

Reading time4 min
Views31K


Несколько лет назад появился прототип игры War Robots (тогда она еще называлась Walking War Robots). Это был первый опыт Pixonic в жанре тактического PvP, поэтому многие будущие проблемы были заложены в коде изначально. Но несмотря на ряд трудностей (популярность проекта стремительно росла, небольшая команда не могла полностью изменить архитектуру игры в краткие сроки), нам в итоге удалось свести к минимуму количество читеров, а также исправить другие недостатки оригинального кода. Расскажу немного подробнее.
Читать дальше →

Создаём собственный физический 2D-движок: части 2-4

Reading time32 min
Views40K
image


Оглавление


Часть 2: ядро движка

  • Интегрирование
  • Метки времени
  • Модульная архитектура
    • Тела
    • Формы
    • Силы
    • Материалы
  • Широкая фаза
    • Отсечение дубликатов контактных пар
    • Система слоёв
  • Проверка пересечения полупространств

Часть 3: трение, сцена и таблица переходов

  • Трение
  • Сцена
  • Таблица переходов коллизий

Часть 4: ориентированные твёрдые тела

  • Математика вращения
  • Ориентированные формы
  • Распознавание коллизий
  • Разрешение коллизий

Perfect shuffle

Reading time7 min
Views19K

Меня всегда привлекали элементарные алгоритмы, с помощью которых можно создавать сложные паттерны. Есть в таких алгоритмах что-то фундаментальное. Один из таких алгоритмов — Perfect Shuffle. Посмотрим на его необычные свойства, а также попробуем нарисовать несколько впечатляющих фракталов с помощью этого алгоритма.

Дальше много картинок, gif-анимации и немного музыки.

Сервис оповещения миллиона пользователей с помощью RabbitMQ

Reading time20 min
Views58K

Почти в самом начале создания платформы (некоего фундамента, фреймворка на котором базируются все прикладные решения) нашего облачного веб-приложения СБИС мы поняли, что без инструмента, позволяющего сообщить пользователю о каком-либо событии с сервера, жить будет довольно-таки трудно. Все мы хотим мгновенно видеть новое сообщение от коллеги (которому лень пройти 10 метров), поднимающую корпоративный дух новость от руководства, очень важную задачу от отдела тестирования или получение поощрения (особенно денежного). Но путь становления был тернист, поэтому расскажем немного про трудности, которые мы встретили при взрослении от 5.0e3 до 1.0e6 одновременных подключений от пользователей.


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

Как рендерит кадр движок Unreal Engine

Reading time23 min
Views58K


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

Поскольку у нас есть доступ к исходному коду, мы можем изучить исходники рендерера, чтобы понять, что он делает, однако это довольно объёмная часть движка, а пути рендеринга сильно зависят от контекста, поэтому проще будет исследовать чистый низкоуровневный API (иногда заглядывая в код, чтобы заполнить пробелы).
Читать дальше →

Дополненная реальность — что сегодня предлагают разработчики?

Reading time4 min
Views19K


Технологии дополненной реальности сейчас активно развиваются. Сама по себе дополненная реальность (augmented reality, AR) представляет собой наложение виртуальных слоев, которые создал компьютер, на реальность обычную, в которой мы существуем. Самый показательный (и один из самых ранних) примеров дополненной реальности — «картинка», которую видел Терминатор из «Терминатора-2».

Сам термин был предложен в 1990 году сотрудником корпорации Boeing Томом Коделом. Идея дополненной реальности сейчас развивается даже более активно, чем идея виртуальной реальности.

Information

Rating
Does not participate
Registered
Activity