Назад
обновлено 4 часа назад

Senior Unity Developer (WebGL)

Формат работы
remote
Тип работы
parttime
Грейд
senior
Страна
Russia
vacancy_detail.hirify_telegram_tooltipВакансия из Telegram канала -

Мэтч & Сопровод

Покажет вашу совместимость и напишет письмо

Описание вакансии

Unity-разработчик (Senior, WebGL)

Компания

Empire's Battle

Условия

Требования

Разработчик игр Senior C# ООП Алгоритмы и структуры данных REST Можно удалённо Неполный рабочий день PvE / PvP пошаговая тактическая игра «Empire's Battle Combat Arena»О проекте«Empire's Battle Combat Arena» — пошаговая тактическая 2D-игра на клеточной сетке с режимами PvE (одиночные бои, боссы, бесконечное подземелье) и PvP (бои между игроками). Проект собирается подWebGLи интегрирован какTelegram Mini App: Unity-клиент работает внутри React-обёртки и обменивается с ней сообщениями через JavaScript-мост (Application.ExternalEval, кастомный SocketUtility).Ключевые характеристики кодовой базы:

  • Размер: ~42 000 строк C# в 280+ файлах, активная разработка, есть техдолг (крупные классы по 1500–2100 строк, требующие декомпозиции).
  • Контент: 17+ играбельных героев со сложными активными и пассивными скиллами, 5+ уникальных боссов, система реликвий, зелий, баффов, кланов и сезонных ивентов (Halloween, New Year, Flooded Lands).
  • Архитектура: иерархия стейт-машин (глобальная игровая + отдельная боевая), сервисный слой через интерфейсы, фабрики, ScriptableObject-настройки, Addressables-подгрузка ассетов.
  • Сеть: REST через Best HTTP , синхронизация PvP-ходов через WebSocket-мост (mirror-action протокол), кастомный анти-чит на P2P-консенсусе с детерминированным ГСЧ и nonce-защитой.

Технологический стекКатегорияТехнологии Движок и пайплайн Unity 2022.x LTS, Universal Render Pipeline (URP) 14, 2D Sprite/Tilemap, Post-processing Платформа сборки WebGL (как Telegram Mini App), интероп с React через Application.ExternalEval Асинхронность UniTask (Cysharp.Threading.Tasks), корутины, async/await Сетевой слой Best HTTP/2, кастомный JS-bridge поверх WebSocket, REST API, Newtonsoft.Json, SimpleJSON Загрузка контента Unity Addressables 1.21, AssetReferenceGameObject, асинхронная инициализация UI uGUI, TextMesh Pro, Unity Localization, UI Extensions, кастомные радар-чарты Инструменты в редакторе Odin Inspector (Sirenix) — широко используется по всей кодовой базе, NuGetForUnity, Toolbar Extender Монетизация и аналитика Unity IAP 4.11, Unity Ads 4.4, Unity Analytics, кастомный сервер логирования ошибок Контроль версий GitLab (корпоративный), классическая Git-флоу-модель Требования к кандидатуУровень и опытЦелевой уровень —Middle+ / Senior Unity Developer. Минимум3 годакоммерческого опыта на Unity, из них не менее1 годана одном продакшен-проекте средней или крупной кодовой базы (от 30k+ строк C#).

  • Опыт сборки и оптимизации проектов под WebGL (вес билда, прогрев Addressables, ограничения памяти, [DllImport("Internal")], Application.ExternalEval) — критичен.
  • Опыт с сетевым мультиплеером с детерминированной логикой (ходовая синхронизация, lockstep / mirror-action, fixed-point или deterministic random).
  • Опыт с Telegram Mini Apps / WebApp SDK или аналогичной интеграцией Unity-клиента в веб-обёртку — большое преимущество.

Обязательные технические навыки

  • C# на уровне выше среднего: делегаты и события, generics, LINQ, async/await, понимание GC и аллокаций в Unity-контексте.
  • Unity API: Addressables, корутины, UniTask, ScriptableObject как контентные конфиги, MonoBehaviour-жизненный цикл, Animator, Particle System, 2D Sprite Renderer.
  • Архитектурные паттерны: State Machine (в проекте две вложенные иерархии состояний — обязательно нужно понимать), Observer/Event-driven, Service Locator или DI, MVC/MVP для UI, фабрики.
  • Работа с сетью: REST-клиенты (Best HTTP или UnityWebRequest), сериализация Newtonsoft.Json, обработка ошибок и реконнектов, понимание JWT/Bearer токенов.
  • Отладка и профилирование: Unity Profiler, Memory Profiler, Frame Debugger, отладка WebGL-билдов в браузере (Chrome DevTools, .symbols).
  • Git и командная работа в GitLab: ветки, MR/Code Review, понимание merge-конфликтов, написание адекватных коммит-сообщений.

Желательно

  • Опыт работы с Odin Inspector — почти весь проект использует [FoldoutGroup], [BoxGroup], [ShowIf] и т.п.
  • Опыт декомпозиции и рефакторинга крупных монолитных классов (God Object) на сервисы, контроллеры и стейты — в проекте есть несколько таких классов.
  • Понимание основ криптографии и анти-чит механик: HMAC, nonce, детерминированный RNG, защита от модификации клиента.
  • Опыт работы с пошаговыми тактическими играми (XCOM-like, Heroes-like, шахматные движки) — будет огромным плюсом для понимания геймплейной логики.
  • Знание JavaScript/TypeScript на базовом уровне — для отладки React ↔ Unity моста.
  • Опыт интеграции IAP, рекламы (Unity Ads / AppLovin / IronSource), аналитики.

Soft skills

  • Способность читать и понимать чужой код в большой кодовой базе (отдельные файлы по 1500–2000 строк).
  • Самостоятельность в задачах, умение задавать правильные вопросы — на проекте есть монолитные участки без подробной документации.
  • Аккуратность при работе с PvP-логикой: любая рассинхронизация клиент/сервер ломает матч.
  • Готовность к code review (давать и принимать) и работе в Git Flow с обязательными MR.

Задачи на роли

  • Развитие игровых механик: новые герои, скиллы (активные и пассивные), боссы, типы подземелий, сезонные ивенты — добавление в существующий SkillRegistry и систему эффектов.
  • Работа с PvP-стейтами (PvpPlayerTurnState, PvpOpponentTurnState): синхронизация ходов через mirror-action, обработка реконнектов, расширение анти-чит механик (P2PSecurityManager, P2PConsensusManager).
  • Интеграция с бэкендом и Telegram WebApp: работа с TelegramAuthorizationProvider, TelegramProvider, новый Game API, обработка событий жизненного цикла боя.
  • Оптимизация WebGL-билда: размер, время загрузки, потребление памяти, профилировка GC, корректная работа Addressables в браузере.
  • Рефакторинг и снижение техдолга: декомпозиция классов уровня Hero.cs (~2000 строк) и состояний боя (~1500–2000 строк) на более узкие компоненты, выделение сервисов.
  • UI-фичи: доработка боевого HUD, экранов выбора героев, инвентаря зелий и реликвий, локализация интерфейса.
  • Поддержка билд-пайплайна и CI: сборка через GitLab CI, автодеплой WebGL-билдов в Telegram-окружение.
  • Code review MR коллег, поддержание стиля и архитектурных конвенций проекта.

Процесс отбора

  • Скрининг резюме — релевантный опыт Unity + WebGL + сетевой код.
  • Техническое интервью (60–90 мин): C#, архитектура Unity, стейт-машины, обсуждение реального кейса с PvP-синхронизацией.
  • Тестовое задание (по согласованию): небольшая фича на клеточной сетке с двумя стейтами хода или ревью предоставленного фрагмента кода с предложениями по рефакторингу.

Как откликнутьсяПришлите резюме, ссылку на GitHub/GitLab/портфолио и краткое сопроводительное письмо: какой проект на Unity вы считаете своей самой сильной работой и почему. Бонусом — любые материалы по проектам с пошаговой тактикой, мультиплеером или WebGL-сборкой.

Будьте осторожны: если работодатель просит войти в их систему, используя iCloud/Google, прислать код/пароль, запустить код/ПО, не делайте этого - это мошенники. Обязательно жмите "Пожаловаться" или пишите в поддержку. Подробнее в гайде →

Текст вакансии взят без изменений

Источник -