Unity-разработчик


Ришат Мухамедов

Телефон : +7 (905) 183-54-84

Email : alltimew@mail.ru

Telegram: @alltimewartime

GitHub

Навыки
  • 1
    Unity-архитектура
    ECS (DOTS), DI containers (Zenject/VContainer/Stashbox), MVC
  • 2
    Unity-UI
    UI Elements / Unity UI / Swift UI
  • 3
    Сеть
    ASP.NET, SIgnalR, REST API, Netcode for GameObjects/Photon/Legacy Unity Network
  • 4
    VR/AR
    OpenXR, Vuforia, Kinect, SteamVR, Oculus, HTC Vive
  • 5
    Плагины
    UniRx/R3, UniTask, Addressables, DOTween, ShaderGraph
Опыт работы

iRobi

Апрель 2018 - Ноябрь 2018


Zarnitza

Декабрь 2018 - Июнь 2022

Март 2023 - Апрель 2024

Axlebolt

Июль 2022 - Февраль 2023


ДСТ-Урал

Май 2024 - по настоящее время

Axlebolt

  • Участие в разработке онлайн-стратегии с элементами ККИ.
  • Разработка интерфейса галереи персонажей, настроек, внутреигрового магазина, управления персонажами в бою.
  • Разработка геймплейной механики покупки баффов во время боя.
  • Используемые технологии : DOTS, UIElements, UniTask, Addressables.
  • Ссылка на GooglePlay

ДСТ-Урал
  • Участие в разработке системы удалённого управления промышленным транспортом
  • Разработка системы автопилота и создания/выполнения сценариев для последующего выполнения
  • Разработка серверной части для связи операторов и техники
  • Работа с геопозициями, получением тайлов карт
  • Разработка системы передачи аудио/видео данных для удалённых регионов с пингом >2000
  • Разработка интерфейса для десктоп и VR, для ручного и удалённого управления техникой

Пример интересной задачи на работе :
Задача: Нужно было обеспечить адекватное передвижение AI транспорта (авто, трамваи и автобусы) и пешеходов в большой локации города(4000 на 4000 метров). До этого в проекте было решение, но оно было недостаточно надёжным и низкопроизводительным.

Решение: Я использовал 8к текстуру для покрытия всего города. Использовал низкое значение PixelPerUnit, так что один пиксель покрывал 0.5 метров. Текстура была в формате RGBA (4 байта) и каждый байт использовался для хранения определённого значения, например R - тип дороги и номер полосы, G - лимит скорости, B - влияние знаков, A - расстояние от начала полосы до конца (для определения направления авто (переднее колесо должны быть на пикселе с альфой больше чем на пикселе заднего колеса)).
Сама текстуры была поделена на несколько частей чтобы не хранить её постоянно в памяти.
Также написал расширение редактора для автоматической записи в текстуру необходимых данных, например при создании/удалении предупреждающих знаков.

Итог: решение оказалось надёжным и производительность повысилась многократно (с нагрузки 30% при 100 юнитах до нагрузки 0.1% при 1200 юнитах).

iRobi

  • Работа над игрой Last Light (нет в сторах)
  • Разработка системы интерактивных полов
  • Награда на ICTWEEK Uzbekistan 2018 за проект интерактивных полов

Пример интересной задачи:

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


Решение : изначально я использовал обычную веб-камеру. Понижал разрешения полученного изображения до 32х32 и проверял значительные изменения пикселей. Данный подход был дешёвым и сердитым, но точность была недостаточной и не было возможности игнорировать движения верхней части тела. Тогда вместо веб-камеры был использован Kinect с которого получалась карта высот и после обработки данных можно считывать передвижения на необходимой высоте в зависимости от игры (например на видео игнорировалось всё кроме ног).


Итог: было реализовано 2 решения, которые могли использоваться в зависимости от потребностей запускаемых игр.


Краткие места работы
Сторонние проекты
Meta House
  • Разработка ПО для осмотра квартир
  • Разработка генерации квартир по планировке
  • Разработка базы данных квартир с обновлением статусов
  • Поддержка VR
  • Полная работа с визуалом со стороны Unity (запекание света, Reflection Probes, шейдеры, Occlusion Culling, LOD, настройка HDRP)
  • Управление командой 3д-моделеров и дизайнеров
СамГМУ
  • Разработка ПО для реабилитации детей со сложностями в передвижении
  • Разработка ПО для реабилитации людей с проблемами обоняния (VR с запахами)
  • Разработка механики передвижения по выступам с использование инверсной кинематики

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

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

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

Appfox

  • Участие в разработке RTS "Казаки 4: The Battle"
  • Участие в разработке мультиплеерной игры "Кибер-арена"
  • Разработка расширений редактора для работы с данными и префабами
  • Разработка системы сбора меша персонажа из мешей отдельных частей тела и одежды
This site was made on Tilda — a website builder that helps to create a website without any code
Create a website