Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Модное кулинарное Шоу! Игра в ресторан, приготовление блюд, декорирование домов и преображение внешности героев.

Кулинарные истории

Казуальные, Новеллы, Симуляторы

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Gamedev + Технологии

С этим тегом используют

Инди Разработка Инди игра Игры Unity Компьютерные игры YouTube Инновации Изобретения Вертикальное видео Искусственный интеллект Техника Космос Будущее Все
27 постов сначала свежее
8
RafGal
RafGal
1 год назад

Двадэшки — так просто ещё не было!⁠⁠

dvadeshki.ru двадэшки.рф

Более совершенная альтернатива Скретчу.

Язык Живоскрипт + библиотека matter.js

ЖивоCкрипт это визуальная версия языка JavaScript.

Минимальный порог вхождения при максимальных возможностях применения.

Для детей и взрослых программистов-любителей.

Абсолютно бесплатно!

Введение в программирование за 15 минут:

[моё] Разработка Технологии Gamedev Инди Инновации Видео Видео ВК
0
596
wonderlove
wonderlove
1 год назад
Создание музыки
Серия Нейро-Звук

Теперь сгенерировать новый звук проще, чем искать подходящий!⁠⁠

Теперь сгенерировать новый звук проще, чем искать подходящий! Гайд, Нейронные сети, Искусственный интеллект, Саунд-дизайн, Саундтрек, Музыка, Битмейкинг, Технологии, Инновации, Gamedev, Видео, Длиннопост

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

Вот простой текстовый запрос для генерации свиста: man whisling melody

Может быть вам нужно мяуканье кошек, тогда запрос будет выглядеть так: cats play and meow

Нужны поющие птички для вашей мобильной игры? Пожалуйста: rainforest birds chirping

Этот инструмент подходит для решения огромного количества задач, связанных с саунд дизайном ваших игр и сцен, что упрощает процесс создания продукта.

Ловите инструкцию по установке нейросетки AudioCraft:
Чтобы установить AudioCraft, выполните следующее:

- Рекомендуется установить PyTorch перед установкой

- Не запускайте это, если у вас уже установлен PyTorch.

pip install 'torch>=2.0'

-Затем перейдите к одному из следующих вариантов

pip install -U audiocraft - стабильный релиз

pip install -U git+https://git@github.com/GrandaddyShmax/audiocraft_plus#egg=audiocraft - актуальная версия

pip install -e . - или, если вы клонировали репозиторий локально (обязательно, если хотите тренировать).

Также рекомендуется установить ffmpeg, либо через систему, либо через Anaconda:

sudo apt-get install ffmpeg

Или если вы используете Anaconda или Miniconda

conda install 'ffmpeg<5' -c conda-forge

Ставьте плюсик и сделаю пост с видео-установкой AudioCraft!

Интересна тема генерации музыки с помощью нейросетей? Добро пожаловать в Нейро-Звук🔉

Показать полностью 1 3
[моё] Гайд Нейронные сети Искусственный интеллект Саунд-дизайн Саундтрек Музыка Битмейкинг Технологии Инновации Gamedev Видео Длиннопост
54
20
GoblinCave
GoblinCave
1 год назад
Лига Разработчиков Видеоигр

А на что собственно живут разработчики из России в 2023 году?⁠⁠

А на что собственно живут разработчики из России в 2023 году? Программирование, Разработка, Программист, Gamedev, Инди игра, Unity, Инди, Unreal Engine, Python, IT, Монетизация, Россия, Технологии, Цифровые технологии, Длиннопост

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

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

Публикация игры в Steam требует оплаты слота, публикация в Google Play требует оплату лицензии разработчика. Говорят пополнить Steam можно через Qiwi, но с Google Play такое не работает. То есть, уже на этапе публикации вашего проекта вы сталкиваетесь с проблемами.

Допустим вы каким то образом смогли разместить свой проект на площадке - что по монетизации?

Как мне известно вывести деньги со Steam можно через Райффайзен, выбрав функцию банка-посредника. Учитывая плату самому Steam, наценку банка и налоги - вы получите в лучшем случае 50% от заработанных денег. Как происходит вывод средств с Google Play не знаю, но предположительно для этих целей заводится зарубежный счет с карточкой. Правда вам это вряд ли пригодится - публикация платных продуктов из РФ приостановлена.

Один из видов монетизации мобильных игр - это реклама!

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

Что же остается простому работяге игрового фронта?

Ответ прост - крутиться в поиске всех возможных альтернатив. За неимением возможности выгрузить свое приложение в Google Play разработчики из России все чаще смотрят на тот же App Gallery. Если игра проста и имеет возможность выгрузки в формате HTML5 - то можно попробовать Яндекс.Игры или другие сайты с браузерными проектами. Конечно, есть зародыш в виде RuStore, но не думаю что он в ближайшие пару лет получит действительно широкую аудиторию.

Медиаторы Appodeal и Clever Ads Solution все еще работают с Россией, что позволяет получать выплаты от "забугорных" рекламных сетей через посредника. К тому же есть сетки Яндекса и My Target, которые гарантированно дают выплаты.

Если же вы нацелены на Steam, то вам предстоит найти посредника, который подключится к вашему аккаунту, приобретет слот из своей страны, а после вы удалите его доступ через настройки. Либо можно обратиться к издателям, если вы сделали качественный проект. Если же вы нацелены только на аудиторию из России - можете попробовать VK Play (правда продажи там в разы меньше).

А на что собственно живут разработчики из России в 2023 году? Программирование, Разработка, Программист, Gamedev, Инди игра, Unity, Инди, Unreal Engine, Python, IT, Монетизация, Россия, Технологии, Цифровые технологии, Длиннопост

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

А вот если ты например являешься частью игрового проекта и знаешь больше про монтезиацию в 2023 году - отпиши свой опыт в комменты. Будет полезно почитать мнение людей из гейм дева.

P.S.

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

Показать полностью 1
[моё] Программирование Разработка Программист Gamedev Инди игра Unity Инди Unreal Engine Python IT Монетизация Россия Технологии Цифровые технологии Длиннопост
9
711
chipanddell
chipanddell
2 года назад
Лига программистов

Использование ChatGPT для разработки игр на Unity⁠⁠

Использование ChatGPT для разработки игр на Unity IT, Инновации, Технологии, Unity, ChatGPT, Разработка, Игры, Программирование, Gamedev, Гифка

На GitHub пользователь Keijiro Takahashi интегрировал ChatGPT с Unity.

Вы должны сгенерировать ключ API, чтобы использовать ChatGPT API при связке. В итоге, текстовые команды превращаются в код для написания игр.

Кажется, что теперь можно разрабатывать инди-игры куда проще.

Оставлю ссылочку на депозитарий, кому интересно, здесь

Показать полностью
IT Инновации Технологии Unity ChatGPT Разработка Игры Программирование Gamedev Гифка
100
8
Vedite
Vedite
2 года назад

Как "Зло" обратить в "Добро"? Или внедрение игровых симуляторов в государственное управление⁠⁠

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


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


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


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

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


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

1. Помогают изучать иностранные

языки,

2. Улучшить своё произношение

3. Благодаря играм студент может пополнить свой словарный запас (ведь в них бывает много текста)

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


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

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

Согласно описанному выше. Можно обратить внимание на применение компьютерных игровых технологий (геймификации (игрофикации)) в секторе государственного и муниципального управления.


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

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

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

4. Быстрота. Если произошли какие-то изменения, к примеру в законодательстве, после выпуска обновления для программы, можно сразу приступить к изучению данного закона и того как он может работать. (Так же это возможный полигон для тестирования законодательных инициатив, ещё до их принятия).

5. Способность проанализировать свои ошибки, сделать сохранение и посмотреть то или иное решение в одной конкретно ситуации.

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

7. Помогает выявлять сильные и слабые стороны человека, ведь с игрой, человек будет гораздо честнее, чем с обычным тестом.


К примеру игра Cities: Skylines является градостроительным симулятором, в котором игроку даётся возможность построить город и полностью отслеживать его жизнь, со случайно генерируемыми событиями (погода, ЧС и т.д.). Пример из г. Нижний Новгород, где геймер смоделировал родной город в игре Cities: Skylines. Игрок начал с:

1. Кастомизации карты

2. Проложил реки Волгу и Оку вместе с островами.

3. Воссоздал районы.

4. Запустил симуляцию жизни города Игра смогла продемонстрировать

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


Workers & Resources: Soviet Republic. Данная игра похожа на Cities: Skylines и SimCity, только уже в условиях плановой экономики и социалистической системы.


Игра Victoria II. Это стратегическая игра, в которой можно выбрать любое государство под своё управление (существовавшее в 1836-1936 год). В игре обширный инструментарий, с помощью которого игрок сможет отслеживать государственные процессы. Управленческие решения игрока, будут влиять на дипломатию, экономику, внутреннюю политику, науку и военные силы. Игрок будет в деталях наблюдать, что происходит в стране и реагировать на различные ситуации в случае необходимости. Кроме того, по ходу игры, игроку будет доступно использование развитой системы дипломатии, которая будет влиять на настроения соседних стран. Если в первой части была сильная привязка к историческим событиям, на которые невозможно было повлиять, то теперь ее нет. Игроки более свободны в действиях, а геймплей практически нелинейный. Geopolitical Simulator (в России игра известна как «Выборы- 2008.Геополитический симулятор») - в котором игрок выступает в роли главы государства. В обязанности игрока входит как решение экономических проблем, так и социальных и военных. В режиме одиночной игры можно выбрать свободную игру и развивать страну по собственному желанию или же выбрать готовый сценарий, с определёнными задачами. Данная игра также применялась для моделирования различных ситуаций, в частности реальности выполнения обещаний кандидатов в президенты.


Ostalgie: The Berlin Wall. По своей сути - текстовая игра, симулятор принятия решений с зачаточными элементами экономики и дипломатии. В игре представлено противостояние социалистического и капиталистического блоков подходящих к концу, но противостояние социалистической ГДР и капиталистической ФРГ — находятся в острой фазе. В игре можно возглавить Восточную Германию, Болгарию. Игроку предстоит провести выбранную страну через череду реформ, оставляя, всё как есть, или искать возможности построения новых форм социализма. Так же игроку нужно следить за распределением средств бюджета. Т.к. мир не стоит на месте и постоянно происходят события, которые меняет его.


Democracy 4. Здесь игрок выступает в роли президента или премьер-министра и управляет страной (определяет политику, принимает законы и т.д.), стараясь развивать государство в том направлении, которое он считает правильным, вместе с тем пытаясь сохранять достаточный уровень популярности. Democracy 4 использует собственную нейросеть для моделирования мнений, убеждений, мыслей и предпочтений тысяч виртуальных граждан. Эта игра — последнее слово в жанре политических симуляторов. Благодаря использованию новой векторной графики игра приобрела более гибкий и удобный пользовательский интерфейс. Кроме того, игра использует опыт предыдущих частей, при этом вводя совершенно новые и невиданные ранее элементы, такие как обзор действий СМИ, коалиционные правительства, экстренные полномочия, трёхпартийные системы, а также более глубокую игровую симуляцию, которая будет учитывать инфляцию, коррупцию и современные политические тенденции.


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

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


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


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


Игра Roadside Assistance Simulator, в данном симуляторе игроку даётся роль сотрудника и руководителя службы помощи автомобилистам на дорогах.

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


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


В 1980-х в США стали появляться первые компьютерные игры жанра Tycoon (тайкуны). Которые стали предтечей таких игр как Cities: Skylines, SimCity или Geopolitical Simulator. Среди них была игра Tycoon — симулятор главы большой бизнес- корпорации, в который могут играть от одного до пяти игроков. Цель игры состоит в том, чтобы из простого рабочего стать магнатом — для этого необходимо принимать взвешенные управленческие решения в зависимости от экономического прогноза, который варьируется от худшего, до отличного. Игрок может иметь в собственности до пяти заводов, и внутри каждого необходимо будет держать под контролем зарплаты сотрудников, себестоимость производства, количество выпускаемого товара, число персонала и доступных средств, которые можно потратить на рекламу. Вышла данная игра на компьютеры TRS-80 (компании Tandy).


В Советском Союзе были попытки создания технологий, которые могут помочь рассчитать правильность того или иного принятого решения с точки зрения экономики, пример такой системы был показан в фильме Баламут 1978 года, когда студенты рассчитывали с помощью электронных счётных аппаратов рентабельность предприятий. (Но опять же, ввиду особенностей и недостатка технологий, это было не совсем точно, о чём так же указано в фильме, т.к. на тот момент просчитать форс-мажорные ситуации с помощью той техники не представлялось возможным). Но сегодня это уже возможно, благодаря развитию искусственного интеллекта и нейросетей. А также распространённости компьютеров и их компактности. Ведь применение игровых форм в науке это весьма важный подход к изучению новых видов, созданию новых форм и применения новых концепций.


Один из примеров, из области медицины, который показывает, что применение игр может приносить пользу для реального мира при правильном подходе. Так учёные разрабатывавшие лекарство от ВИЧ из Вашингтонского университета, не могли построить модель нужного им белка. Т.к. это сложная молекула, имеющую сложную форму. Мощнейшие компьютеры не просчитывали и не моделировали её структуру. Учёные приняли решение привлечь обычных людей, с помощью игры Fold.it. В которой игроку демонстрируют сложную молекулу белка, которую необходимо свернуть максимально эффективно, чтобы она не разрушилась. Чем лучше будет свернута молекула, тем больше очков получит игрок. Данные о каждой попытке отправлялись в Вашингтонский университет, для дальнейшей обработки суперкомпьютером. Игра была создана не профессиональными гейм-дизайнерами и имелся ярко выраженный научный подтекст. Несмотря на это большое количество игроков, решило попробовать свои силы в этой головоломке. Люди заходили в Fold.it, чтобы пару раз попробовать свернуть молекулу самым оптимальным способом и получить наибольшее количество очков. Учёные, которые 15 лет ввели исследования, никак не могли получить модель свертывания протеазы (протеаза это фермент, который играет очень важную роль в процессе заражения ВИЧ). Благодаря игре учёные получали большое количество данных и различных вариаций моделей свёртывания белков. У игроков ушло всего 10 дней, чтобы найти рабочую модель (и это на момент 2011 года). Люди, просто игравшие в головоломку, смогли решить одну из важнейших биологических проблем. На данный момент полученная модель участвует в разработках лекарства. После этого с помощью игроков Fold.it было получено еще несколько полезных моделей белков.

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

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

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

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


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


Развитие данных направлений в Российской Федерации позволит не только поднять имидж государственной службы, но и поможет поднять качество принимаемых управленческих решений на новый уровень. Дополнительно позволит развивать сектор информационных технологий в системе управления и развития системы умный город «Smart City», а также положительно скажется на образовании государственных служащих.

Дорогие Пикабушники, а Вы как думаете стоит ли обратить внимание нашим разработчикам на данное направление?


Сама статья: Применение современных компьютерных игровых технологий (геймификации (игрофикации)) в образовании государственных и муниципальных служащих с целью развития у них навыков принятия управленческих решений и повышения их уровня квалификации в рамках реализации системы Умный Город «SmartCity» / Павлов А.А. // Вестник Воронежского института экономики и социального управления. 2022. № 1. С. 56-60. URL: https://elibrary.ru/item.asp?id=49220535

Показать полностью
Наука Исследования Эксперимент Ученые Научпоп Познавательно Игры Симулятор Gamedev Разработка Инновации Чиновники Программирование IT Умный город Город Россия Обучение Технологии Будущее Длиннопост Текст
3
409
Dudarion
Dudarion
3 года назад
Лига Разработчиков Видеоигр

Как я делал систему оптического трекинга⁠⁠

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Дело было в далеком 2015 году. В продаже только появились очки виртуальной реальности Oculus DK2, рынок VR игр быстро набирал популярность.


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


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


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


Видел я это так:


1) Берем несколько игроков, надеваем на них VR очки, ноутбук и датчики на руки, ноги и туловище.


2) Берем помещение, состоящее из нескольких комнат, коридоров, дверей, оборудуем его системой трекинга, вешаем датчики и магнитные замки на двери, добавляем несколько интерактивных предметов и создаем игру, в которой геометрия виртуальной локации точно повторяет геометрию реального помещения.


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


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


Для реализации заявленного функционала, нужно было создать две основные технологии:


1) Костюм, состоящий из датчиков на руках, ногах и торсе, отслеживающий положения частей тела игрока


2) Система трекинга, отслеживающая игроков и интерактивные объекты в 3D пространстве.


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


Система трекинга.


Бюджета на все это, конечно, у нас не было, поэтому нужно было сделать все из подручных материалов. Для задачи отслеживания игроков в пространстве я решил использовать оптические камеры и светодиодные маркеры, закрепленные на VR очках. Опыта подобных разработок у меня не было, но я уже что-то слышал про OpenCV, Python, и подумал, что справлюсь.


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Соответственно, камеры нужно было закрепить на потолке так, чтобы каждая точка пространства просматривалась минимум двумя камерами (лучше больше, чтобы избежать перекрытия обзора телами игроков). Для покрытия трекингом предполагаемого помещения площадью около 100 кв.м., требовалось около 60 камер. Я выбрал первые попавшиеся дешевые на тот момент usb вебки.

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Эти вебки нужно к чему-то подключать. Эксперименты показали, что при использовании usb удлинителей (по крайней мере, дешевых), камеры начинали глючить. Поэтому решил разделить вебки на группы по 8 штук и втыкать их в системники, закрепленные на потолке. На моем домашнем компе как раз было 10 usb портов, так что пришло время начинать разработку тестового стенда.


Архитектуру я придумал следующую:

На каждые очки вешается акриловый матовый шарик от гирлянды с вклеенным внутрь RGB светодиодом. Одновременно в игре предполагалось несколько игроков, так что для идентификации решил разделять их по цвету – R, G, B, RG, RB, GB, RB. Вот так это выглядело:

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Первая задача, которую нужно выполнить – написать программу поиска шарика на кадре.


Поиск шарика на кадре


Мне нужно было в каждом кадре, пришедшем с камеры, искать координаты центра шарика и его цвет для идентификации. Звучит несложно. Качаю OpenCV под Python, втыкаю камеру в usb, пишу скрипт. Для минимизации влияния лишних объектов на кадре, выставляю экспозицию и выдержку на камере в самый минимум, а яркость светодиода делаю высокой, чтобы получить яркие пятна на темном фоне. В первой версии алгоритм был следующий:


1) Переводим изображение в градации серого


2) Бинаризуем по порогу (если яркость пикселя больше порога, он становится белым, иначе – черным). При этом размытое пятно от шарика превращается в кластер белых пикселей на черном фоне


3) Находим контуры кластеров и их центры. Это и есть координаты шарика на кадре


4) Определяем усредненный цвет пикселей кластера (на исходном цветном изображении) в окрестности его центра для идентификации

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Вроде, работает, но есть нюансы.


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


Во-вторых, разрешение камеры всего лишь 640*480, поэтому на некотором расстоянии (не очень большом) шарик виден как пара пикселей на кадре и алгоритм поиска контуров перестает нормально работать.


Пришлось придумывать новый алгоритм. В голову пришла следующая идея:


1) Переводим изображение в градации серого


2) Размываем картинку мощным Gaussian blur –ом так, чтобы изображения светодиодов превратились в размытые пятна с градиентом яркости от центра к периферии


3) Находим самые яркие пиксели на изображении, они должны соответствовать центрам пятен


4) Так же определяем средний цвет кластера в окрестности центра


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


Чтобы убедиться, что все это будет работать с 8-ю камерами на одном компе, нужно провести нагрузочный тест.


Нагрузочный тест


Подключаю 8 камер к своему десктопу, располагаю их так, чтобы каждая видела светящиеся точки и запускаю скрипт, где описанный алгоритм работает в 8-ми независимых процессах (спасибо питонской либе «multiprocessing») и обрабатывает все потоки сразу.


И… сразу натыкаюсь на фейл. Изображения с камер то появляются, то исчезают, framerate скачет от 0 до 100, кошмар. Расследование показало, что часть usb портов на моем компе подключены к одной шине через внутренний хаб, из-за чего скорость шины делится между несколькими портами и ее уже не хватает на битрейт камер. Втыкание камер в разные порты компа в разных комбинациях показало, что у меня всего 4 независимых usb шины. Пришлось найти материнку с 8-ю шинами, что было довольно непростым квестом.


Продолжаю нагрузочный тест. На этот раз все камеры подключились и выдают нормальные потоки, но сразу сталкиваюсь со следующей проблемой – низкий fps. Процессор загружен на 100% и успевает обрабатывать лишь 8-10 кадров в секунду с каждой из восьми вебок.

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Похоже, нужно оптимизировать код. Узким местом оказалось Гауссово размытие (оно и не удивительно, ведь нужно на каждый пиксель кадра производить свертку с матрицей 9*9). Уменьшение ядра не спасало ситуацию. Пришлось искать другой метод нахождения центров пятен на кадрах.


Решение удалось найти внезапно во встроенной в OpenCV функции SimpleBlobDetector. Она делает прямо то, что мне нужно и очень быстро. Преимущество достигается благодаря последовательной бинаризации изображения с разными порогами и поиску контуров. Результат – максимальные 30 fps при загрузке процессора меньше 40%. Нагрузочный тест пройден!


Классификация по цвету


Следующая задача – классификация маркера по его цвету. Усредненное значение цвета по пикселям пятна дает RGB компоненты, которые очень нестабильны и сильно меняются в зависимости от расстояния до камеры и яркости светодиода. Но есть отличное решение: перевод из RGB пространства с HSV (hue, saturation, value). В таком представлении пиксель вместо «красный», «синий», «зеленый», раскладывается на компоненты «тон», «насыщенность», «яркость». В этом случае насыщенность и яркость можно просто исключить и классифицировать только по тону.

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

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


Трекинг


Я использовал pinhole модель камеры, в которой все лучи падают на матрицу через точку, находящуюся на фокусном расстоянии от матрицы.

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

По этой модели будет происходить преобразование двухмерных координат точки на кадре в трехмерные уравнения прямой в пространстве.


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


Калибровка трекинга


В первом варианте решил сделать калибровку трекинга максимально примитивной.


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


2) С помощью лазерного нивелира и дальномера измеряю XYZ координаты всех камер в единой системе координат


3) Для вычисления ориентаций и фокусных расстояний камер, измеряю координаты специальных стикеров. Стикеры вешаю следующим образом:


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

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

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

Запускаю процесс расчета на основе измеренных данных.


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Идея следующая:


1) Берем исходную матрицу с нулевыми поворотами и смещением.


2) Берем единичный вектор в локальной системе камеры, который смотрит из объектива вперед и преобразуем его в глобальные координаты по исходной матрице.


3) Берем другой вектор в глобальной системе, который из камеры смотрит на центральную точку на стене.


4) С помощью градиентного спуска поворачиваем исходную матрицу так, чтобы после преобразования эти векторы были сонаправлены. Таким образом, мы зафиксировали направление камеры. Осталось зафиксировать вращение вокруг этого направления. Для этого и измерялась вторая точка в 200 пикселях от центра кадра. Поворачиваем матрицу вокруг главной оси, пока два вектора не станут достаточно параллельны.


5) По расстоянию между этими двумя точками вычисляю фокусное расстояния в пикселях (учитывая, что расстояние между проекциями этих точек на кадре составляет 200 пикселей).


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


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Тестирование трекинга


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


Вот что вышло:

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Похоже на правду, но точность явно могла быть выше. Первая причина несовершенства, которая пришла в голову – искажения в объективах камер. Значит, нужно эти искажения как-то компенсировать.



Калибровка камеры


У идеальной камеры важный для меня параметр только один – фокусное расстояние. У реальной кривой камеры нужно учитывать еще дисторсии объектива и смещение центра матрицы.


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

А также вектор коэффициентов дисторсии, который позволяет компенсировать искажения объектива с помощью преобразований координат пикселей.


Применяя преобразования с этими коэффициентами к координатам маркера на кадре, можно привести систему к модели идеальной pinhole камеры.


Провожу новый тест трекинга:

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Уже гораздо лучше! Выглядит настолько хорошо, что даже вроде будет работать.


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



Вычисление координат маркера


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Длина отрезка AB тоже пригодится, т.к. она отражает «качество» полученного результата. Чем он короче, тем ближе друг к другу прямые, тем лучше результат.


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


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

Магнитное поле в нашем помещении было направлено ВЕРТИКАЛЬНО ВНИЗ! Видимо, это связано с железом в конструкции здания.


Но ведь в VR очках тоже используется магнитометр. Почему у них такого эффекта нет? Иду проверять. Оказалось, что в очках он тоже есть… Если сидеть неподвижно, можно заметить, как виртуальный мир медленно, но верно вращается вокруг тебя в рандомную сторону. За минут 10 он уезжает почти на 180 градусов. В нашей игре это неминуемо приведет к рассинхрону виртуальной и реальной реальностей и сломанным об стены очкам.


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Система в целом работала, хоть и с небольшими косяками. Но было принято решение запустить квест, который как раз был близок к завершению нашим gamedev разработчиком, присоединившимся к нашей миникоманде. Была затречена вся игровая площадь, установлены двери с датчиками и магнитными замками, изготовлено два интерактивных предмета:

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Игроки надевали очки, костюмы и рюкзаки-компьютеры и заходили в игровую зону. Координаты трекинга отсылались им по wi-fi и применялись для позиционирования виртуального персонажа. Все работало достаточно неплохо, посетители довольны. Приятнее всего было наблюдать ужас и крики особо впечатлительных посетителей в моменты, когда на них из темноты нападали виртуальные призраки =)

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Масштабирование


Внезапно нам прилетел заказ на большой VR шутер на 8 игроков с автоматами в руках. А это 16 объектов, которые нужно тречить. Повезло, что сценарий предполагал возможность разделения трекинга на две зоны по 4 игрока, поэтому я решил, что проблем не будет, можно принимать заказ и ни о чем не волноваться. Протестировать систему в домашних условиях было невозможно, т.к. требовалась большая площадь и много оборудования, которое будет куплено заказчиком, поэтому до монтажа я решил потратить время на автоматизацию калибровки трекинга.


Автокалибровка


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


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


Идея следующая:


1) вешаю камеры и на глаз направляю их в игровую область


2) запускаю режим записи на сервере, в котором все приходящие с камер 2D точки сохраняются в файл


3) хожу по темной игровой локации с маркером в руках


4) останавливаю запись и запускаю расчет калибровочных данных, при котором вычисляются расположения, ориентации и фокусные расстояния всех камер.


5) в результате предыдущего пункта получается единое пространство, наполненное камерами. Т.к. это пространство не привязано к реальным координатам, оно имеет случайное смещение и поворот, которое я вычитаю вручную.


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост
Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Вот так выглядит напечатанная на принтере специальная палка-калибровалка.



Тестирование большого проекта


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


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


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Алгоритмы трекинга пришлось заметно усложнить, но в итоге все заработало! Телепортации игроков друг в друга исчезли, нагрузка на процессор упала, засветки перестали мешать.

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

Чем все закончилось?

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

За 3 года мы открыли множество развлекательных точек по всему миру, но коронавирус внес свои коррективы, что дало нам возможность сменить направление работы в более общественно-полезную сторону. Теперь мы довольно успешно занимаемся разработкой медицинских симуляторов в VR. Команда у нас все еще маленькая и мы активно стремимся расширять штат. Если среди читателей есть опытные разработчики под UE4, ищущие работу, пожалуйста, напишите мне.



Традиционный забавный момент в конце статьи:


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

Как я делал систему оптического трекинга Своими руками, Программирование, Стартап, Технологии, Разработка, Электроника, Гаджеты, Gamedev, Виртуальная реальность, Python, Математика, Камера, Видео, Длиннопост

Система в прямом смысле работала через задницу =)

Показать полностью 23 1
[моё] Своими руками Программирование Стартап Технологии Разработка Электроника Гаджеты Gamedev Виртуальная реальность Python Математика Камера Видео Длиннопост
40
ZloyElvis
ZloyElvis
3 года назад

Half-life 1: Игра в кальмара⁠⁠

Ради эксперимента сделал карту СТЕКЛЯННЫЙ МОСТ из хайпового сериала ИГРА В КАЛЬМАРА и снял небольшую сценку. Для любителей старых игр, таких как Half-life 1

[моё] Half-life Игры Компьютерные игры Игра в кальмара (сериал) Хобби YouTube Gamedev Своими руками Технологии Программирование Гордон Фримен G-Man Видео
0
Партнёрский материал Реклама
specials
specials

Сколько нужно времени, чтобы уложить теплый пол?⁠⁠

Точно не скажем, но в нашем проекте с этим можно справиться буквально за минуту одной левой!

Попробовать

Ремонт Теплый пол Текст
25
Suvitruf
Suvitruf
4 года назад
Лига Разработчиков Видеоигр
Серия Недельный геймдев дайджест

Недельный геймдев: #15 — 25 апреля, 2021⁠⁠

На этой неделе: стал доступен Agility SDK для DirectX 12, вышел Godot 3.3, The Blender Foundation представили Cycles X и дорожную карту Blender 2021, вышел Rider для Unreal Engine 2021.1.1 с поддержкой macOS, состоялся полноценный релиз Steam Playtest, набор Rural Australia для UE4 теперь бесплатен.


Из интересностей: мастер-класс по работе со светом в CRYENGINE, интересное видо о возможностях Roblox, занятный прототип в VR.

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Обновления/релизы/новости


Стал доступен Agility SDK для DirectX 12

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Этот набор инструментов позволяет разработчикам использовать новые функции DirectX без необходимости игрокам обновлять Windows. Теперь разработчики игр могут исходить из того, что большинство компьютеров с Windows будут работать со всеми функциями DirectX 12.


Игры могут использовать Agility SDK на системах с обновлением Windows 10 за ноябрь 2019 г. или новее. Разработчики уже могут ознакомиться со стартовым руководством, страницей загрузок.


Новый формат файлов для сжатых реалистичных 3D-текстур на любом графическом процессоре

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Khronos объявили о ратификации KTXTM 2.0, добавив в этот контейнерный поддержку суперсжатия Basis Universal.


Команда обещает надёжное и повсеместное распространение текстур GPU. Basis Universal — это технология сжатия, разработанная Binomial, которая позволяет создавать компактные текстуры, которые можно эффективно транскодировать в различные сжатые форматы на GPU во время выполнения.


Вышел Godot 3.3 с фокусом на оптимизацию и надёжность

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

После 7 месяцев разработки вышла новая версия. Godot 3.3 совместим с Godot 3.2.x, всем пользователям 3.2.x рекомендуется обновиться.


Как и предыдущая версия 3.0, предстоящая версия Godot 4.0 будет значительным изменением в экосистеме Godot, и ожидается, что пользователи будут продолжать использовать Godot 3.x в течение некоторого времени, пока Godot 4.x не станет достаточно стабильным.


The Blender Foundation представили Cycles X

Крупную грядущую переработку рендерера Cycles.


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


Дорожная карта Blender 2021

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Первая альфа-версия Blender 3.0 совсем недавно была выпущена, и в ближайшем будущем ожидается много нового, как указано в дорожной карте разработки Blender 2021.


Blender 2.93 выйдет в конце мая. Как и версия 2.83, это будет LTS выпуск, который будет поддерживаться в течение двух лет.


Во втором квартале начинается проект по работе над пайплайном анимации персонажей.

Импорт USD появится после выпуска Blender 2.93.


Rider для Unreal Engine 2021.1.1 с поддержкой macOS

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Rider для Unreal Engine отмечает год с момента релиза первой превью версии и в новом обновлении получает поддержку macOS и uproject.


Поддерживаются почти все фичи, которые есть в Windows версии.


В Visual Studio 2022 завезут x64. Ну и куча других улучшений

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Ну и куча других улучшений.

- Улучшения производительности в основном отладчике.

- Поддержка .NET 6, можно использовать для создания веб-приложений, стендэлон и мобильных приложений как для Windows, так и для Mac, а также улучшенная поддержка для разработки приложений под Azure.

- Пользовательский интерфейс обновился.

- Поддержка инструментов C++ 20.

- Интеграция текстового чата в функцию совместной работы Live Share.

- Дополнительная поддержка Git и GitHub.

- Улучшен поиск по коду.


Состоялся полноценный релиз Steam Playtest

Инструмент позволяет разработчикам бесплатно настраивать и запускать плейтесты в Steam. В последнем обновлении Valve добавили возможность предоставлять доступ к плейтесту для игроков из определённой страны. Это может быть полезно, если у вас есть региональные серверы, для которых необходимо провести нагрузочное тестирование перед полноценным запуском игры во всём мире.


Кроме того, у Playtest приложений собственный центр сообщества, поэтому у них также могут быть свои собственные события и объявления.


Халява/раздачи/бандлы/курсы


Набор Rural Australia для UE4 теперь бесплатен

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Команда Unreal Engine в сотрудничестве с Эндрю Сванбергом Гамильтоном сделала пакет Rural Australia Environment Pack бесплатным. Rural Australia — это коллекция ассетов, основанных на фотограмметрии, снятых в Австралии, что даёт пользователям возможность создавать прекрасные и точные изображения ландшафтов.


Интересные статьи/видео


Как создавалось оружие в Cyberpunk 2077

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

Чаба Силаги, старший художник в CD PROJEKT RED, рассказывает о создании оружия в Cyberpunk 2077.


Мастер-класс по работе со светом в CRYENGINE

Пример того, чего можно добиться Roblox

Занятный прототип в VR

Недельный геймдев: #15 — 25 апреля, 2021 Лонг, Новости, Gamedev, Дайджест, Технологии, Гифка, Видео, Длиннопост

И круто, и неприятно.


Моделирование прыжков в высоту

Новый подход к воссозданию спортивных движений в 3D.


В новой работе «Discovering Diverse Athletic Jumping Strategies» описываются стратегии, которые реализованы как политики управления физическими персонажами. По словам авторов, сочетание симуляции физики и глубокого обучения с подкреплением (DRL) обеспечивает подходящую отправную точку для обучения.


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

Если хотите поддержать выход дайджеста и других материалов, сделать это можно одним из способов.

- На Патреоне

- Напрямую на Paypal

- Через Яндекс.Деньги

Показать полностью 10 5
[моё] Лонг Новости Gamedev Дайджест Технологии Гифка Видео Длиннопост
2
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии