Jes Obertyukh

Staff-Senior
Network Engineer

Почти 20 лет опыта в разработке игр. Работал CTO, техническим лидом и Game Architect / Staff Unity Engineer. Проектирую архитектуру, разрабатываю игровые фичи, rendering и networking; совмещаю hands-on разработку с руководством командами и организацией процессов.

01

Основные задачи

  • Архитектура

    Спроектировал и реализовал server-authoritative слой поверх Unity Transport для двух игр: client/server-контракты, форматы пакетов и состояния. Был единственным ответственным за их networking. В Photon Fusion разделял server-only, client-only и shared simulation.

  • Устойчивость

    Проектировал reconnect и восстановление сессий; проверял поведение при потерях пакетов до 40%, высоком jitter и ping до 400 мс.

  • Prediction

    Оптимизировал prediction, reconciliation, lag compensation и input latency в Bolt/Fusion. Реализовал интерполяцию движения в Fusion, Bolt и собственном сетевом слое, а также сглаживание движения автомобилей при jitter.

  • Диагностика

    Добавлял сетевые данные в Unity Profiler, использовал аналитику reconciliation и profiler markers для поиска неоправданных затрат.

  • Синхронизация

    Разрабатывал world snapshots, синхронизацию gameplay, движения, разрушения вокселей, автомобилей, платформ и поезда.

  • Трафик

    Оптимизировал сериализацию, копирование в буферы, порядок полей для delta compression и размер датаграмм под MTU. Для 64 игроков приоритизировал репликацию по взгляду, дистанции и прицеливанию.

  • Развитие систем

    Развивал существующие сетевые стеки и ECS/NetCode-ready границы без полного переписывания, учитывая стоимость интеграции и сопровождения.

  • Бюджеты

    Задавал tick rate, допустимые ресимуляции и бюджеты кадра по подсистемам; контролировал превышения через profiler markers.

02

Дополнительные задачи

  • Архитектурные решения

    Разработал собственную переиспользуемую архитектуру для Unity. Участвовал в техническом дизайне, декомпозиции, оценке задач и code review.

  • Протоколы

    Проектировал бинарные форматы и delta snapshots для собственного слоя поверх Unity Transport, развивал решения на Bolt/Fusion.

  • Mobile performance

    Оптимизировал клиентскую и серверную симуляцию, input latency и репликацию. Снижал вычислительную нагрузку на слабых устройствах за счёт оптимизации алгоритмов, Jobs, Burst и DOD.

  • Server authority

    Разрабатывал и развивал server-authoritative multiplayer в собственном сетевом слое и Bolt/Fusion: передачу ввода от клиента, серверную симуляцию, prediction и reconciliation.

  • Инциденты

    Занимался production troubleshooting Fusion, аналитикой reconciliation, восстановлением сессий и оптимизацией нагрузки серверов в собственном networking и готовых стеках.

  • Ownership

    Отвечал за networking пяти игр, связь metagame и battle-серверов, matchmaking и оркестрацию процессов; согласовывал клиент, backend и gameplay.

  • Mentoring

    Обучал команду правилам сетевого кода, видам prediction и выбору подхода под задачу.

03

Основные требования

  • Low-level networking

    Проектировал форматы пакетов, сериализацию, snapshots, network ticks и избыточную передачу ввода. Оптимизировал networking Battle Royale на 64 игрока.

  • UDP / MTU

    Проектировал взаимодействие с UDP battle-серверами, обрабатывал out-of-order packets и учитывал MTU для предотвращения фрагментации. Оптимизировал latency, проверял работу при потерях пакетов и jitter.

  • Репликация

    Реализовывал репликацию и интерполяцию, оптимизировал prediction, reconciliation и lag compensation в server-authoritative multiplayer.

  • Протокол и выполнение

    Проектировал server-authoritative слой и packed-buffer сериализацию, оптимизировал размещение и копирование данных. Использовал Jobs, Burst и DOD в задачах производительности.

  • Unity / C#

    Работаю с C# с версии 1.1, с Unity — с версии 3.5. Проектировал архитектуру клиента на Unity/C#, разрабатывал gameplay, networking и инструменты. Создавал metagame-сервисы на ASP.NET Core.

  • Профилирование

    Анализировал затраты подсистем, сетевые данные и reconciliation, оптимизировал буферы и объём репликации. Проверял системы при заданных packet loss, jitter и ping.

04

Дополнительные навыки

  • Проектирование

    Спроектировал архитектуры 8 игр, существенно развил 4 существующие, учитывая интеграцию и сопровождение.

  • Междисциплинарность

    Разрабатывал client/server, backend и gameplay, работал с инфраструктурой и QA. Как CTO отвечал за четыре игры и коммуникацию отделов.

  • Масштаб

    Смежный опыт: Battle Royale на 64 игрока, синхронизация транспорта и мира, interest management и восстановление сессий.

  • ECS

    Строил coregame на Unity Entities, работал с ECS/DOD, Jobs/Burst и ECS/NetCode-ready границами.

  • Transports

    Собственный server-authoritative слой поверх Unity Transport, Photon Bolt/Fusion и UDP battle-серверы.

  • Сериализация

    Protocol Buffers и MessagePack для metagame; собственная бинарная сериализация и delta compression для real-time networking.

05

Дополнительная экспертиза

Rendering и мобильная GPU-оптимизация

Разрабатывал shaders на HLSL/Cg и Shader Graph, custom URP passes и Renderer Features, single-camera rendering снайперского прицела с контролем render order, culling и overdraw. Создал runtime depth-aware impostors: менее 10 → 30 FPS на Xiaomi Mi A2, сокращение видимой геометрии с 1,6–1,8 млн до ~500 тыс. полигонов при сохранении дальних деталей. Строил material-library pipeline с texture arrays, оптимизировал bandwidth и vertex attributes, удерживал карты около 52 batches, Battle Royale — ниже 100. Работал с освещением, lightmap UV, водой, caustics и voxel streaming, профилировал разные GPU iOS/Android через Unity Profiler, RenderDoc, Metal Debugger и Snapdragon Profiler.

Tech Art и производство контента

Определял требования к моделям, UV, текстурам, импорту и зависимостям биомов; создавал scene/UI validators, автоматизацию импорта и подготовки текстур. Проектировал animation layers под gameplay, разрабатывал инструменты level design и pathing. Обучал художников устройству пути DCC → GPU: vertex splitting и ordering, triangulation, mesh attributes, batching, выбору shader stage и зависимости стоимости от камеры и контента. Два моделлера впоследствии стали discipline leads.

Игровая архитектура и gameplay

Разработал собственную переиспользуемую архитектуру для Unity, спроектировал архитектуры 8 игр и существенно развил 4 существующие. Строил ECS-coregame на Unity Entities, разрабатывал движение, стрельбу, баллистику, AI, pathfinding, profiles, quests, UI и IAP. Проектировал lifecycle, DI, границы simulation/presentation и прямой запуск тестовых состояний; на четырёх проектах общая архитектура позволяла инженеру реализовать gameplay-фичу или сложный UI-экран в среднем за 2–3 дня.

Геймдизайн и QA

Работал с дизайнерами над проверяемыми правилами и совместимостью фич, связывал спецификации с реализацией, QA-приёмкой и документацией. Могу обсуждать сетевую механику вместе с её игровым поведением, визуальным представлением, производством контента и проверкой результата.

Лидерство и управление разработкой

Как CTO отвечал за техническое направление четырёх игр, руководил четырьмя программистами, техническими художниками и PM в студии примерно из 20 человек. Также работал одним из лидов команд 30+ человек с 10+ программистами. Проводил технические интервью, участвовал в найме, развивал самостоятельность инженеров и передавал им ответственность за системы. Декомпозировал и оценивал задачи, проводил code review, использовал Scrum-ретроспективы и Value/Time для организации работы. Выстраивал коммуникацию с лидом геймдизайна и между programming, QA и Tech Art; связывал спецификацию, реализацию, приёмку и документацию. Сохранял hands-on участие в архитектуре и разработке.