Больше информации по резюме будет доступно после регистрации

Зарегистрироваться
Был более двух недель назад

Мужчина, 33 года, родился 9 февраля 1993

Астана, готов к переезду, не готов к командировкам

UE4 Team Leader

Специализации:
  • Программист, разработчик

Тип занятости: полная занятость, частичная занятость, проектная работа/разовое задание

Опыт работы 12 лет 10 месяцев

Февраль 2024по настоящее время
2 года 4 месяца
LNJ Studio

lnj.gg

Информационные технологии, системная интеграция, интернет... Показать еще

CTO & Lead Developer
The Abyss Break - Кооперативный horror шутер. Ведущий проектный и технический специалист.
Май 2020Февраль 2024
3 года 10 месяцев
MedVR

Санкт-Петербург, www.medvr.pro/

Информационные технологии, системная интеграция, интернет... Показать еще

Team Lead / UE Developer
Разработка VR симуляторов для медицины Санкт-Петербург Разработчик игр (Старший) - UnrealEngine Lead Developer Май 2020 — Февраль 2024 (3 года и 10 месяцев) Проект: XR-Body — симулятор пальпации живота с технологией XR. Со старта вел проект один в паре с техническим художником. В проекте реализованы два бизнес-модуля: Пропедевтика и Острый живот. Модули решают задачи по обучению и тестированию абитуриентов. Проект состоит из двух приложений: Основное приложение для Oculus Quest 2 (Android) — выступает в качестве сервера. Приложение зрителя/администратора под Windows — также передаёт данные с датчиков давления, подключённых по USB. Оба приложения — это один и тот же проект Unreal Engine, собранный с разными параметрами. Сборка и доставка автоматизированы через Jenkins. В случае с Oculus новая версия загружается в Meta Store, в случае с приложением администратора — в Amazon S3. Клиентам проект поставляется в собранном виде: с компьютером администратора, VR-очками и манекеном с датчиками давления. Примеры решённых задач в проекте: Калибровка положения в VR-пространстве: игрок кладёт два пальца на пупок и ближайший сосок манекена, после чего игра корректно позиционирует его положение и поворот в пространстве, чтобы реальный манекен и виртуальный пациент совпадали. Hand Tracking: отслеживание рук с пальцами и их визуализация. Помимо простой отрисовки нужно было реализовать систему, которая не позволяла рукам проваливаться сквозь живот — без использования коллизий и физики (для обеспечения максимальной производительности). Пальпация живота: игрок может «прогибать» живот руками. Учитываются данные как с датчиков давления, так и из Hand Tracking. Вся логика деформации написана с использованием RenderTarget и работает на GPU. Использован самописный алгоритм сглаживания, чтобы добиться максимального сходства между деформацией на реальном манекене и в виртуальной сцене. Игровые данные: почти все данные тянутся из Google Таблиц, что позволяет редактировать систему тестирования, оценки, список пациентов, диагнозы и т. п. без запуска стороннего ПО — это могут делать сами врачи. 3D-интерфейс: Сложная сцена с множеством WidgetComponent (3D-виджеты) на Android (Oculus) сильно просаживала FPS. Кроме того, Unreal не генерирует mipmap’ы для RenderTarget-текстур под Android, из-за чего текст становился пиксельным и нечитаемым при приближении/отдалении. Пришлось писать собственную систему 3D-виджетов, полностью без использования RenderTarget. Попытки использовать TextRenderComponent были неудачны — он сильно снижал производительность, поэтому был разработан собственный компонент для визуализации 3D-текста. Кастомный компонент использует InstancedStaticMesh, размещает плейны, подгоняет размеры, отступы, кернинги, и передаёт через CustomData в материал координаты, размеры букв и номер страницы в атласе. В результате, любой текст на сцене (включая длинные описания и параграфы) требовал всего 2 draw call'а и не нуждался в расчёте векторных данных. Локализация: Бизнес хотел хранить локализацию аналогично остальным данным — в Google Таблицах. Использовать стандартную систему локализации от Epic было невозможно, пришлось разрабатывать собственную. Проект поддерживает 6 языков, включая иероглифические. Текст отображается через буквенные атласы (алфавит на текстуре), но в китайском слишком много символов, и нельзя было запихнуть их все в один атлас. Реализована система, которая находит все уникальные символы, использующиеся в проекте на каждом языке — и только их сохраняет в атлас. Прочее: Реализовано множество кейсов: можно скрывать живот, смотреть на органы, видеть конкретные патологии, использовать пациентов разных полов, возрастов и внешности. Пациенты могут кричать или вздыхать при нажатии на живот. В разных сценариях учитываются параметры давления — медленно, резко, медленно с резким отпусканием и т. п. Проект: VR-Clinic — VR-симулятор с Full Body IK и отслеживанием пальцев (Leap Motion) Проект под SteamVR использующий HTC Vive Pro 2 как шлем и дополнительные трекеры с ремешками, которые крепятся на руки, ноги и пояс. Симулятор амбулаторного приёма для студентов медицинских вузов. В процессе симуляции доступно множество интерактивных взаимодействий, включая: Ведение диалога с пациентом Использование средств индивидуальной защиты Работа с инструментами для физикального обследования И множество других действий В проекте реализован сетевой мультиплеер, позволяющий администратору подключаться с другого компьютера, запускать сессии, наблюдать за действиями студента и управлять сценарием. Моё участие в проекте: Пришёл в проект на стадии позднего прототипа, в котором уже были частично реализованы: Full Body IK Базовые механики взаимодействия с пациентом (диалоги, обследования и т. п.) По ходу разработки значительная часть системы была переработана — либо под изменившиеся бизнес-требования, либо по причине нецелесообразности масштабирования прототипных решений. Выполненные задачи: Утилита редактора Инструмент внутри движка для автоматического обновления данных (диалоги, обследования, клинические кейсы и т. д.). Данные берутся из Google Spreadsheets путём парсинга TSV-таблиц. Интеграция Oculus Lipsync Исправлена некорректная генерация frame sequence для русского языка. Система полностью автоматизирована: анимации диалогов генерируются на основе озвучек (английской и русской), ручных анимаций не используется вовсе. Плагин Fake Fast Mirror Оптимизированная система зеркал для VR и мобильных проектов. Зеркальные отражения реализуются через дубликаты StaticMesh и SkeletalMesh, развёрнутые и синхронизированные по позициям, анимациям и физике. Все отражения рендерятся в одном проходе. Количество зеркал не ограничено (без переотражений). Это решение позволило повысить FPS в комнатах с зеркалами с ~60 до стабильных 90+ кадров, одновременно повысив чёткость отражения. VR-трекинг-реплей Утилита для записи положения и ориентации всех трекеров и VR-шлема, с возможностью последующего воспроизведения в игре. Используется для быстрой отладки и итерации Full Body IK. Система прилипания рук с анимациями Если игрок подносит руку к специальной зоне (например, спина пациента), она принимает заданную позу и «прилипает» к телу. В случае, например, мытья рук — включается анимация, но с допустимой свободой движения внутри заданного радиуса. Оптимизация производительности под VR Достигнута стабильная частота 90+ FPS. Выполнялся анализ и снижение draw call'ов, настройка движка (знание сотен параметров UE4/5), использование UE Profiler и RenderDoc для поиска узких мест. Пример: решение проблемы сглаживания интерфейса UWidgetComponent при активном MSAA, на которую не было найдено рабочих решений в официальных источниках. CI (Continuous Integration) через GitHub Actions Настроена автоматическая сборка проекта при мердже в ветку testing, после чего билд загружается в AWS S3. Тестировщики получают ссылку для скачивания. CD пока не реализован, но есть понимание, как внедрить его без Steam, PlayMarket и других распространённых платформ доставки. Лаунчер и администрирование Написал лаунчер на Flutter и микросервис на Dart, необходимый для управления виртуальной клиникой у конечных клиентов. Система интерактивных объектов Медицинские инструменты (градусник, тонометр, фонендоскоп и т. п.) и надеваемые предметы (СИЗ: комбинезон, перчатки, бахилы и др.). Поддержка множества настроек для корректной работы и взаимодействия. Прочая игровая логика Участвовал в реализации множества механик и сценариев, требующих нестандартных решений под ограничения VR.
Май 2017Май 2020
3 года 1 месяц
CyberCraft Games

Астана

Информационные технологии, системная интеграция, интернет... Показать еще

Тимлид
Ведущий программист. Тим лидер.
Октябрь 2014Май 2017
2 года 8 месяцев
Vebam

Казахстан

Информационные технологии, системная интеграция, интернет... Показать еще

Developer
Web services
Август 2013Октябрь 2014
1 год 3 месяца
Trio company

Казахстан, www.trio.kz

Информационные технологии, системная интеграция, интернет... Показать еще

Frontend-developer
Frontend Team leader

Навыки

Уровни владения навыками
Atlassian Jira
Atlassian Confluence
Grunt
Unreal Engine 4
C++
Teamleading
Git
Linux
Atlassian Bamboo
Atlassian Bitbucket

Обо мне

Team Lead: Управление командой, постановка задач, использование принципов Agile. Написание документации и требований для команды, понимание принципов построения игрового баланса, построение формул для расчета характеристик и прочих показателей. Администрирование и использование продуктов Atlassian: Jira, Confluence, Bamboo, Bitbucket. Являюсь автором онлайн тулзы для автоматизации написания клиент-серверного кода С++ в рамках UnrealEngine - https://json2ue.com/ Разработка: Владение GameFramework UE4 Создание(Разработка) игровых механик таких как: Инвентарь, предметы, система заданий, диалоговая система, окно персонажа, прокачка персонажа, крафтинг, классы персонажей и многих других систем свойственных для ролевых игр. Владение WBP(Unreal User Interfaces) Опыт работы с клиент-серверной архитектурой: репликацией, RPC функциями. Понимание зачем и в каких случаях использовать репликацию параметров, а когда использовать удаленные вызовы процедур. Подключал и использовал библиотеку google protobuff для обмена мета данными с бекендом(не Unreal Server). ( Подключение сторонних С++ библиотек к движку не всегда является тривиальной задачей ) Настройка сборки игры и систем автоматизации Gitlab CI\CD. Навыки работы с Docker. Настройка ABP(Anim Blueprint) для персонажей, логика блендинга и добавочных анимаций(моргание глаз, реакция на урон, реакция на отдачу от выстрела и прочее.) Дополнительно: Владение и понимание работы системы частиц (Cascade), материалов, ИИ(BehaviorTree), скелетной анимацией, комплексной анимации по костям, виджетов, игрового мультиплеера. Понимаю принципы работы клиент-серверных приложений. Имею большой опыт использвования протокола JSON, а также небольшой практический опыт применения google protobuf. Имею опыт решения различных проблем в мультиплеерных играх в рамках UnrealEngine 4 при средней задержке и с потерями пакетов. Базовые DevOps задачи, настройка виртуальных машин и linux администрирование. Работал с ComputerVision в рамках слабых мощностей мобильных устройств. Имею продвинутые навыки работы с Web технологиями, приемущественно TypeScript, Angular. Могу в дизайн UI/UX. Владею Photoshop на среднем уровне. P.S Могу выполнять разнокалиберные задачи, которые в идеале должны делать разные люди, но они есть далеко не всегда. Обладаю пониманием процессов работы Art части команды (Artist-ов, Animator-ов, Художников), Понимаю их workflow, цели использования программ, могу указывать на проблемы в их работе и способы их исправления.

Среднее специальное образование

2013
Среднее специальное образование
Астанинский Политехнический Колледж (АПК)
Программирование и Информационные технологии, Техник Программист

Знание языков

Русский — Родной

Английский — B2 — Средне-продвинутый

Гражданство, время в пути до работы

Гражданство: Казахстан

Разрешение на работу: Казахстан

Желательное время в пути до работы: Не имеет значения