Как стать автором
Обновить
10
0

Разработчик

Отправить сообщение

Как я сделал AI для выявления фейковых новостей с точностью в 95% и чуть не рехнулся

Время на прочтение 6 мин
Количество просмотров 54K
Краткий пересказ: мы сделали программу, определяющую надежность новостей с точностью 95% (на валидационной выборке) при помощи машинного обучения и технологий обработки естественного языка. Скачать ее можно здесь. В условиях реальной действительности точность может оказаться несколько ниже, особенно по прошествии некоторого времени, так как каноны написания новостных статей будут меняться.

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



С этим можно поспорить, но, на мой взгляд, самый сложный этап в создании собственной модели машинного обучения — сбор материалов для обучения. Когда я обучал модель для распознавания лиц, мне пришлось несколько дней собирать фотографии каждого из игроков лиги НБА в сезоне 2017/2018. Теперь же я и не подозревал, что мне придется провести погруженным в этот процесс несколько мучительных месяцев и столкнуться с очень неприятными и жуткими вещами, которые люди пытаются выдать за настоящие новости и надежную информацию.
Читать дальше →
Всего голосов 53: ↑46 и ↓7 +39
Комментарии 44

Создание когнитивных связей у игроков

Время на прочтение 5 мин
Количество просмотров 9.6K
image

Вступление


Статья повествует о создании когнитивных связей в головах игроков логической игры
«Maze Lord». Или как перевели её различные сайты — Повелитель Подземелий. Это пошаговая логическая игра с элементами менеджмента ресурсов в roguelike сеттинге.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Комментарии 18

От мушкета до автомата — сумасшедшее столетие, часть 3/3

Время на прочтение 55 мин
Количество просмотров 53K
Итак, последняя из трех частей рассказа об эволюции стрелкового оружия от мушкета до автомата.

Использованные термины


УСМ – ударно-спусковой механизм

Метрическое обозначение патрона — состоит из двух чисел, первое из которых означает калибр, второе – длину гильзы. Например, 9х19 говорит о том, что 9мм – калибр, а длина гильзы 19мм. Но это обозначение все равно во многом номинально.

Пистолетный патрон – небольшой патрон с короткой тупоконечной пулей и с зарядом быстрогорящего пороха менее 0.5г. Напр. 9х19, 7.62х25, 9х18 и т.д.

image

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

Напр. 7.62х54R, 7.62х51, 7.92х57.

image

Промежуточный, переходной патрон – патрон по мощности промежуточный между пистолетным и винтовочным. Создан для автоматов, но находит широкое применение и в ручных пулеметах. Гильза бутылочной формы, масса порохового заряда ок. 1.5 г пороха со средней скоростью горения.

Напр. 7.92х33, 7.62х39.

image

Малоимпульсный патрон – условный тип промежуточного патрона, появившийся впервые в винтовке М16. Представляет собой промежуточный патрон, однако с дальнейшим уменьшением размеров и калибром ок. 5.5мм. Свое название получил из-за уменьшенного импульса отдачи. Масса порохового заряда ок. 1.5 г, порох обычно того же типа что и в промежуточном патроне.

Напр. 5.56х45, 5.45х39, 5.8х42.

image

В прошлый раз мы остановились на том, что армии ведущих стран мира оказались вооружены магазинными винтовками.
Всего голосов 108: ↑104 и ↓4 +100
Комментарии 746

Создание двухмерных эффектов частиц в Unity3D

Время на прочтение 5 мин
Количество просмотров 26K

Привет, меня зовут Дэвид Финсет. Я технический художник Synapse Games и работаю над играми, в которых нужны визуальные эффекты, требующие и технической, и художественной составляющей. Большая часть моей работы заключается в создании эффектов частиц для мобильных игр. Мне очень нравится эта работа, поэтому я хочу поделиться своим рабочим процессом и дать несколько советов по самостоятельному созданию таких эффектов.

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

Сначала я расскажу об отдельных частях своего рабочего процесса создания эффектов частиц в Unity, а затем поделюсь некоторыми техническими советами и хитростями. Большинство этих примеров взято из моей работы над играми Spellstone и Animation Throwdown.
Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 4

Обобщённый поиск путей для ИИ в платформерах

Время на прочтение 10 мин
Количество просмотров 11K

Предисловие


Если вы создаёте игру-платформер в стиле «беги и прыгай», то, возможно, уже задумывались о добавлении в неё ИИ. Он может управлять противниками, объектами, которые игрок должен преследовать, и так далее… И слишком часто ради простоты программист реализации отказывается от умного ИИ, что в результате приводит к тому, что ИИ не может справиться с хитрыми прыжками, особо умным игроком или движущимися объектами уровня.

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

Мы рассмотрим основную идею и создадим полную реализацию. Более сложные случаи, в том числе подвижные платформы/разрушаемые стены, мы рассмотрим в другой статье.

Эта техника использована в игре Nomera, см. на www.dotstarmoney.com или в Twitter.

e3iKSJ7.png


Прежде чем начать, проверьте, возможно, вы удастся реализовать более простой алгоритм, соответствующий упрощённой геометрии карты. Например, если коллизии в уровнях распознаются по сетке квадратов (как в большинстве 2D-игр). В таких случаях можно реализовать надёжный поиск путей ИИ с помощью более простых техник. Мой метод в основном подойдёт тем, кто хочет более «человечного» поведения ИИ.
Читать дальше →
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 3

Тянем ролик с YouTube и раздаем по WebRTC в реалтайме

Время на прочтение 7 мин
Количество просмотров 23K


Задача следующая. Провести совместный просмотр ролика с YouTube в реальном времени несколькими пользователями. Зрители должны получать видео одновременно, с минимальной задержкой.
Читать дальше →
Всего голосов 33: ↑31 и ↓2 +29
Комментарии 32

Современные методы исследования безопасности веб-приложений: инструментарий

Время на прочтение 3 мин
Количество просмотров 19K
image

В данной статье я расскажу об инструментарии для тестирования безопасности веб-приложений. Основные этапы и чек-лист работ представлены в предыдущей статье.
Читать дальше →
Всего голосов 30: ↑26 и ↓4 +22
Комментарии 3

Как создаются изометрические миры

Время на прочтение 25 мин
Количество просмотров 58K
image

Все мы играли в потрясающие изометрические игры, будь то первые Diablo, Age of Empires или Commandos. При первой встрече с изометрической игрой можно задаться вопросом: двухмерная она, трёхмерная или нечто совершенно другое. Сам мир изометрических игр обладает волшебной притягательностью для разработчиков. Давайте попробуем раскрыть тайну изометрической проекции и создадим простой изометрический уровень.

Для этого я решил использовать Phaser с кодом на JS. В результате у нас получится интерактивное приложение HTML5.

Учтите, что это не туториал по разработке на Phaser, мы просто используем его для удобного ознакомления с базовыми концепциями создания изометрической сцены. Кроме того, в Phaser есть простые способы создания изометрического контента, например, Phaser Isometric Plugin.

Для упрощения при создании сцены мы будем использовать тайлы.
Всего голосов 49: ↑49 и ↓0 +49
Комментарии 7

learnopengl. Урок 2.2 — Основы освещения

Время на прочтение 15 мин
Количество просмотров 68K

Распространение света в реальном мире это чрезвычайно сложное явление, зависящее от слишком многих факторов, и, располагая ограниченными вычислительными ресурсами, мы не можем себе позволить учитывать в расчетах все нюансы. Поэтому освещение в OpenGL основано на использовании приближенных к реальности упрощенных математических моделей, которые выглядят достаточно похожими, но рассчитываются гораздо проще. Эти модели освещения описывают физику света исходя из нашего понимания его природы. Одна из этих моделей называется моделью освещения по Фонгу (Phong). Модель Фонга состоит из трех главных компонентов: фонового (ambient), рассеянного/диффузного (diffuse) и бликового (specular). Ниже вы можете видеть, что они из себя представляют:


Модель освещения Phong

Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 10

Создание шейдеров

Время на прочтение 27 мин
Количество просмотров 187K
Освоить создание графических шейдеров — это значит взять под свой контроль всю мощь видепроцессора с его тысячами параллельно работающих ядер. При таком способе программирования требуется другой образ мышления, но раскрытие его потенциала стоит потраченных усилий.

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


Сцена из Minecraft, до и после добавления нескольких шейдеров.

Задача этого туториала


Иногда программирование шейдеров представляется загадочной чёрной магией и его часто понимают неправильно. Существует множество примеров кода, демонстрирующих создание невероятных эффектов, но в которых практически нет объяснений. В своём руководстве я хочу восполнить этот пробел. Я сосредоточусь в основном на базовых принципах создания и понимания кода шейдеров, чтобы вы смогли с лёгкостью настраивать, сочетать или писать свои собственные шейдеры с нуля!
Всего голосов 105: ↑105 и ↓0 +105
Комментарии 27

Как создаются визуальные эффекты для игр

Время на прочтение 14 мин
Количество просмотров 38K

Основные задачи художников визуальных эффектов


Если говорить только о визуальных эффектах, то их можно разделить на два основных типа задач: геймплейные эффекты и природные эффекты (или эффекты окружений). Принцип их разделения зависит от конкретного проекта. Например в такой игре, как Castlevania (жанра hack'n'slash), 90% визуальных эффектов состояло в умениях персонажа и магии, сильно влиявших на геймплей. Такие задачи требуют серьёзного понимания механик игры и постоянного общения с командой дизайнеров, с которой нужно постоянно договариваться. Для примера давайте возьмём огнемёт. Дизайнеры геймплея подбирают область урона атаки, а затем вам необходимо создать эффект поверх отладочного цилиндра. Постепенно уменьшающийся огонь не полностью соответствует области урона, и дизайнеры начинают на это жаловаться. Вот один из примеров «конфликтов» между двумя дисциплинами, потому что если придерживаться строгих правил, огонь не будет похож на огонь. Поэтому приходится искать альтернативы и убеждать дизайнеров, что игрок не заметит, что небольшой исчезающий огонь не нанёс никакого урона.

Среди прочих жанров, геймплейные эффекты более «важны» в файтингах и RPG.

Существуют и другие игровые жанры, например, шутеры (в особенности это касается реалистичных), в которых природные эффекты так же важны, как и геймплейные. В этом случае художник, ответственный за природные эффекты, становится практически художником по окружениям и в основном сотрудничает с этой командой. Примерами природных эффектов являются водопады, туман, дождь и т.д. Больше всего природных эффектов я создал в Gears of War 4, где мы работали над многопользовательскими картами и должны были заботиться о влиянии эффектов на производительность, потому что от игры требовалось работать в 1080p при 60 fps.
Всего голосов 43: ↑43 и ↓0 +43
Комментарии 7

Введение в процедурную анимацию: инверсная кинематика

Время на прочтение 16 мин
Количество просмотров 31K

Часть 4. Введение в градиентный спуск


Эта часть представляет собой теоретическое введение в инверсную кинематику и содержит программное решение, основанное на градиентном спуске (gradient descent). Эта статья не будет всеобъемлющим руководством по этой теме, это всего лишь общее введение. В следующей части мы покажем настоящую реализацию этого алгоритма на C# в Unity.

Серия состоит из следующих частей (части 1-3 представлены в предыдущем посте):

Читать дальше →
Всего голосов 54: ↑54 и ↓0 +54
Комментарии 5

5 бесплатных ассетов для Unity3D, которые облегчат процесс разработки

Время на прочтение 3 мин
Количество просмотров 19K
Недавно мы выпустили обзор некоторых Unity ассетов для начинающего 2D разработчика.
Сегодня предлагаем вашему вниманию подборку из 5 бесплатных ассетов для Unity3D, максимально простых в использовании и полезных в работе. Данные ассеты призваны упростить некоторые аспекты разработки, а также сэкономить вам время за счет автоматизации определенных нудных задач.

Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Комментарии 0

Загрузка реальных ландшафтов в Unity 3D

Время на прочтение 6 мин
Количество просмотров 42K


Введение


Тема генерации ландшафтов путем применения разнообразных хитроумных алгоритмов достаточно широко освещалась на хабре (раз, два, три и продолжать можно до бесконечности). Перечисленные примеры касаются случайной генерации некой абстрактной местности для повышения реализма в конечных игровых продуктах. А как быть, если требуется смоделировать некую реальную местность?

По этой теме тоже довольно много разного рода публикаций в сети. Однако, многие из них опираются на использование платных приложений или расширений для Unity. Существуют описания и «дешевых» методов, но основная масса их ориентирована на получение так называемых heightmap — черно-белых квадратных изображений местности, где градациями серого определяется относительных уровень высот в данной точке. Существует ряд способов генерации подобных карт высот с использованием например инструментария GDAL. И такой подход не лишен недостатков, связанных с достаточной громоздкостью процедуры создания карты высот и последующей привязкой к полученной местности. Поэтому, в данной статье будет изложен некий альтернативный подход и интересующиеся приглашаются под кат.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Комментарии 20

4 крутые штуки про разработку игр

Время на прочтение 4 мин
Количество просмотров 39K


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

В «Симуляторе мечты» описывается старая добрая история мира из сериала Westworld – когда игрокам предлагают сложный мир со внутренними конфликтами, прямо шедевр искусства. А они сразу всех убивают и насилуют. Не обязательно в такой последовательности.

После выпуска Ultima Online Ричард Гэрриот сказал: «Мы думали, это будет что-то фантастическое. Мы потратили на неё огромное количество времени и сил. Но случилось то, что игроки просто шли и убивали всех так быстро, что игра даже не переходила на новый виток, и симулятор жизни даже не начинался. И эту часть, на которую мы потратили столько времени, даже никто ни разу не заметил, ни разу! И в итоге мы просто удалили ее из игры».

А дальше вводится совершенно сумасшедшая концепция оценки плотности сюжета – модель в голове игрока. Это очень многое для меня перевернуло.
Читать дальше →
Всего голосов 39: ↑33 и ↓6 +27
Комментарии 51

Бесплатные плагины, инструменты и сервисы для разработки игры на юнити

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

Читать дальше →
Всего голосов 23: ↑20 и ↓3 +17
Комментарии 15

Повесть о создании классической RTS в домашних условиях с нуля (часть 2: «Воскрешение») Окончание статьи: Сеть

Время на прочтение 52 мин
Количество просмотров 18K

Примерно год назад вышла моя статья, которую можно назвать "первой частью" данной статьи. В первой части я насколько смог подробно разобрал тернистый путь разработчика-энтузиаста, который мне удалось когда-то самостоятельно пройти от начала и до конца. Результатом этих усилий стала игра жанра RTS "Земля онимодов" созданная мною в домашних условиях без движков, конструкторов и прочих современных средств разработки. Для проекта использовались C++ и Ассемблер, ну, и в качестве основного инструмента моя собственная голова.

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

Это окончание статьи, начало тут.
Читать дальше →
Всего голосов 30: ↑30 и ↓0 +30
Комментарии 35

Создание игры на Unreal Engine 4 за 150 часов (видео + исходники)

Время на прочтение 6 мин
Количество просмотров 186K
Приветствую, Хабр! Хотел бы познакомить вас с относительно небольшим проектом, который я сделал c нуля примерно за 150 часов (50 заходов ~3 часа каждый) на Unreal Engine 4. Проект я делал в прямом эфире только на стримах раз в неделю (в общей сложности ушел год), попутно отвечая на вопросы пользователей.

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

  • Планирование и прототипирование проекта
  • Продумывание и реализация архитектуры проекта и отдельных его компонентов
  • Реализация интерфейса пользователя
  • Отладка и исправление ошибок
  • Работа с ассетами и графикой

image

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

Если вам интересны подробности проекта, записи стримов, исходники и прочее, читайте далее.
Всего голосов 103: ↑99 и ↓4 +95
Комментарии 45

7 важнейших изменений в гейм-дизайне с эры Nintendo 64

Время на прочтение 6 мин
Количество просмотров 6.9K

Старое снова становится модным. Достаточно посмотреть, например, на игру Yooka-Laylee компании Playtonic Games: ностальгический 3D-платформер в стиле Banjo-Kazooie и Donkey Kong 64. Playtonic была готова к этому проекту — многие сотрудники команды раньше работали в Rare, создававшую классику 1990-х.

С помощью Yooka-Laylee команда Platonic пытается показать, как 3D-платформер в классическом стиле может выглядеть на современном игровом рынке. После успешной кампании на Kickstarter Yooka-Laylee будет выпущена в апреле этого года.

Не нужно говорить, что со времён Nintendo 64 в играх изменилось многое. Мы попросили сотрудников Playtonic рассказать нам о том, как технологические усовершенствования повлияли на различные области разработки игр, и что они значили для дизайнеров, художников, композиторов и директоров, участвующих в процессе разработки.
Всего голосов 15: ↑14 и ↓1 +13
Комментарии 4

Руководство начинающего программиста графических шейдеров

Время на прочтение 8 мин
Количество просмотров 43K
Умение писать графические шейдеры открывает перед вами всю мощь современных GPU, которые сегодня уже содержат в себе тысячи ядер, способных выполнять ваш код быстро и параллельно. Программирование шейдеров требует несколько иного взгляда на некоторые вещи, но открывающийся потенциал стоит некоторых затрат времени на его изучение.

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

image
Сцена в Minecraft до и после применения нескольких шейдеров.

Цель этой инструкции


Программирование шейдеров иногда кажется загадочной черной магией. Тут и там можно встретить отдельные куски кода шейдеров, которые обещают вам невероятные эффекты и, возможно, вправду способны их обеспечить — но при этом совершенно не объясняют, что именно они делают и как добиваются столь впечатляющих результатов. Данная статья попробует закрыть этот пробел. Я сфокусируюсь на базовых вещах и терминах, касающихся написания и понимания шейдерного кода, так что впоследствии вы сами сможете менять код шейдеров, комбинировать их или писать свои собственные с нуля.
Читать дальше →
Всего голосов 94: ↑90 и ↓4 +86
Комментарии 40

Информация

В рейтинге
Не участвует
Откуда
Украина
Зарегистрирован
Активность