Мы ищем технического лидера для разработки ПК-игры на Unreal Engine 5. Нам нужен сильный C++ разработчик, который сможет принимать архитектурные решения, развивать кодовую базу проекта и руководить техническим направлением разработки.
Обязанности:
- Разработка и поддержка архитектуры проекта на Unreal Engine 5.
- Программирование игровых систем на C++.
- Принятие технических и архитектурных решений по проекту.
- Руководство командой программистов и распределение технических задач.
- Проведение Code Review и контроль качества кода.
- Проектирование масштабируемых и поддерживаемых игровых систем.
- Разработка систем с использованием Data-Driven подхода и событийной архитектуры.
- Создание и развитие внутренних инструментов для команды разработки.
- Работа с игровыми подсистемами (Subsystems), системой событий, Gameplay Framework и другими базовыми компонентами Unreal Engine.
- Разработка и поддержка пользовательского интерфейса (UMG, CommonUI).
- Интеграция игровых механик совместно с геймдизайнерами.
- Реализация игровых взаимодействий, AI, анимаций и Sequencer.
- Оптимизация производительности проекта (CPU, GPU, память, загрузки).
- Поиск и устранение сложных технических проблем.
- Планирование технического развития проекта и технического долга.
- Взаимодействие с арт-лидом, ведущим геймдизайнером и техническими художниками при реализации новых игровых систем.
- Оценка трудозатрат и участие в планировании спринтов.
- Контроль соблюдения стандартов кодирования и архитектуры проекта.
- Наставничество и техническая поддержка членов команды.
- Участие в подготовке проекта к релизу, тестировании и исправлении критических ошибок.
Требования:
- Разрешение на работу в РФ.
- Свободное владение русским языком.
- Опыт коммерческой разработки на Unreal Engine 5 от 5 лет.
- Отличное знание C++.
- Хорошее понимание Blueprints (основная разработка ведется на C++, Blueprint используется только там, где это оправдано).
- Опыт работы в роли Senior или Lead Unreal Developer.
-
Глубокое понимание архитектуры Unreal Engine
UObject Model
- Жизненный цикл UObject.
- Garbage Collection (GC).
- Reflection System.
- UPROPERTY.
- UFUNCTION.
- UCLASS.
- Meta Specifiers.
- Работа с памятью.
-
Actor Framework
- Actor / Component Model.
- Жизненный цикл Actor.
- Создание собственных компонентов.
- Композиция игровых объектов.
- Понимание иерархии компонентов.
-
Subsystems
Проект активно использует Subsystems.
Необходимо уверенное понимание:
- GameInstanceSubsystem
- WorldSubsystem
- EngineSubsystem
- LocalPlayerSubsystem
-
Понимание жизненного цикла и сценариев применения.
Delegates
Свободное владение:
- Single-cast Delegates
- Multicast Delegates
- Dynamic Delegates
-
Опыт построения событийно-ориентированной архитектуры.
Архитектурные знания
Обязательно понимание:
- Data-Driven Design
- Event Bus Architecture
- Dependency Injection
- Модульная архитектура
- Масштабируемая архитектура игровых систем
- SOLID
- DRY
- KISS
Желательный опыт
UI
- UMG
- CommonUI
- Создание сложных интерфейсов
- Управление виджетами из C++
- Верстка UI по макетам
- Работа с мини-играми
-
Animation
Level Sequencer
- Создание секвенций
- Работа с Motion Capture
- Binding актеров
- Spawnable
- Possessable
- Camera Cuts
- Управление секвенциями через C++
-
Animation Blueprint
- Создание Animation Blueprint
- Blend Space
- State Machine
- Animation Montages
- Animation Notifies
-
AI
- Behavior Trees
- Blackboard
- AI Controller
- Кастомные BT Nodes
- EQS (будет плюсом)
-
Gameplay
- Gameplay Framework
- Enhanced Input
- Gameplay Tags
- Save System
- Асинхронная загрузка
-
Navigation
- NavMesh
- Navigation System
- Настройка AI Navigation
- Оптимизация навигации
-
Производительность
- Unreal Insights
- Profiling
- Оптимизация CPU
- Оптимизация памяти
- Оптимизация загрузок
Условия:
- Конкурентоспособная заработная плата с регулярными выплатами.
- Полностью удаленный формат работы.
- Гибкий график и возможность самостоятельно планировать рабочее время.
- Работа в небольшой команде без лишней бюрократии.
- Возможность напрямую влиять на техническое развитие проекта и принимать ключевые архитектурные решения.
- Долгосрочное сотрудничество: после завершения текущего проекта — участие в разработке следующих игр студии.
- Работа над собственной оригинальной IP с долгосрочным развитием вселенной.
- Возможность внедрять современные технологии и инженерные практики в проект.
- Свобода выбора технических решений при соблюдении качества и производительности проекта.
- Участие в формировании стандартов разработки, архитектуры и внутренних инструментов команды.
- Возможность собрать и развивать сильную команду программистов по мере роста студии.
- Профессиональный рост до позиции Technical Director по мере расширения компании.
- Работа над амбициозным ПК-проектом для международного рынка (Steam).
- Возможность реализовывать сложные инженерные задачи, а не заниматься только поддержкой существующего кода.
- Адекватное руководство, открытое к новым идеям и техническим инициативам.