Middle+ Unity Developer
Белград, СербияМиддл • Сеньор
Релокация • Удаленная работа • Частичная занятость • Работа в офисе
Опыт работы от 3 до 5 летот 2 200 до 2 600 $
Опыт работы от 3 до 5 летот 2 200 до 2 600 $
Есть файл резюме (защищен)
Короткая ссылка: gkjb.ru/gqKE
О себе
На данный момент Middle+ Unity Developer.
Мои компетенции и опыт
Архитектура и системный подход. Проектирую игровые системы с учётом дальнейшего расширения, повторного использования и взаимодействия с другими подсистемами. Использую разделение данных, логики и представления, dependency injection, композицию, паттерны проектирования и data-driven подходы. При проектировании стараюсь находить общее представление задачи, позволяющее одной структуре данных решать несколько связанных задач.
Алгоритмы и структуры данных. Имею практический опыт работы со стандартными структурами данных, графами, пространственным разбиением, lookup-структурами, интерполяцией, алгоритмами поиска пути и геометрическими вычислениями. При выборе решения учитываю вычислительную сложность, частоту выполнения операций, объём данных и требования real-time систем.
Пример - система трасс. Для гоночной игры разработал представление трассы в виде графа четырёхугольных сегментов, генерируемых из spline. Одна система используется для определения прогресса и позиции машин, обнаружения движения в неправильную сторону и выхода за трассу, AI ботов, respawn и генерации mesh миникарты. Для быстрого поиска сегмента по мировой координате используется пространственный индекс на основе 2D grid. Поддерживаются развилки, пересекающиеся и наложенные участки трассы, а также мгновенное перемещение между удалёнными её частями.
AI и навигация. Разрабатывал поведение ботов, алгоритмы выбора направления движения, pathfinding и навигацию на основе геометрии уровня. Использовал как NavMesh, так и собственные решения, когда они лучше подходили под конкретную задачу. Работал с нестандартными ситуациями: падением с маршрута, stuck detection, переподключением к навигационной сети и динамическим изменением положения объекта.
Производительность. Имею опыт профилирования и оптимизации Unity-проектов для мобильных устройств: CPU/GPU bottlenecks, память, количество объектов и компонентов, физика, отрисовка, batching/instancing, загрузка ресурсов и асинхронные операции. При разработке систем учитываю стоимость операций ещё на этапе архитектуры. Также имею опыт управления жизненным циклом ресурсов: загрузкой данных по необходимости и освобождением неиспользуемых ресурсов.
Пример - динамическое запекание. Для сцены с динамическим освещением и большим количеством интерактивных объектов реализовал отложенное объединение объектов в общий mesh и динамическое исключение изменившихся объектов из него. Это позволило существенно сократить количество Draw Calls и расчётов теней, повысив FPS.
Reusable systems. Разработал и опубликовал Unity Asset Store framework для drag-and-drop инвентарей. Архитектура отделяет данные предметов от их визуального представления и предоставляет точки расширения для правил перемещения, стратегий размещения, различных форм предметов, способов взаимодействия, stacking, swapping и других механик без необходимости изменять ядро системы.
Инструменты и pipeline. В проектах регулярно разрабатываю Editor-инструменты и системы baking/generation, упрощающие работу геймдизайнеров и левел-дизайнеров со сложными игровыми системами. Например, структура трассы, spatial index и данные для связанных подсистем автоматически генерируются из spline одной операцией.
Клиент-серверное взаимодействие. Реализовывал получение и обновление пользовательских данных с сервера. Учитываю разделение клиентской и серверной ответственности, необходимость валидации данных и риски хранения критичных данных и логики только на клиенте.
Математическая база. Магистратура по системному анализу и компьютерному моделированию: численные методы, моделирование физических процессов, анализ данных и системы принятия решений. Использую математический аппарат в задачах, связанных с геометрией, физикой, интерполяцией, оптимизацией и моделированием поведения систем.
Работа в команде. Имею опыт работы в команде из нескольких программистов, разделения зон ответственности и архитектурной организации проекта таким образом, чтобы уменьшать связанность между подсистемами и количество конфликтов между разработчиками.
Многопрофильность. Несмотря на то, что последние годы основной профессиональный опыт связан с Unity и C#, имею практический опыт и с другими языками и областями разработки. Python активно использовал в университете для математического и компьютерного моделирования, анализа данных и исследовательских задач. C++ изучаю с раннего возраста и использовал не только в Unreal Engine, но и при разработке с SFML, OpenGL и Qt; Понимаю низкоуровневую организацию памяти. Разбирался как через ассемблерные вставки писать свою графическую библиотеку. Значительная часть фундаментального обучения программированию, алгоритмам и структурам данных проходила именно на C++. Также имею опыт решения сложных алгоритмических и олимпиадных задач на нем.
AI-агенты. И конечно как правильно использовать AI-агентов как часть рабочего процесса разработки: делегирую им отдельные задачи, декомпозирую работу, задаю контекст и ограничения, контролирую ход выполнения и проверяю качество результата перед интеграцией. Настраиваю постоянные инструкции и специализированные skills под конкретные типы задач, а также подключаю внешние инструменты и API, чтобы агент мог работать непосредственно с окружением проекта. В частности, экспериментировал с интеграцией агентов с Unity CLI для автоматизации операций с Unity-проектами.
Есть файл резюме (защищен)
Интересные кандидаты
Мы используем куки, потому что без кук наш сайт не работал бы, другие сайты не работали бы, да и вообще весь
интернет не работал бы
