Игровая архитектура и системная разработка
Работаю с C# с версии 1.1, с Unity — с версии 3.5. Разработал собственную переиспользуемую архитектуру для Unity, спроектировал архитектуры 8 игр и существенно развил 4 существующие. Организовывал DI, lifecycle от запуска до reconnect и shutdown, разделял simulation и presentation, развивал системы без полного переписывания. Строил coregame на Unity Entities, использовал Jobs, Burst и DOD, задавал бюджеты кадра по подсистемам. Это даёт практическое понимание того, как графические решения взаимодействуют с симуляцией, загрузкой ассетов и ограничениями CPU.
Real-time networking
Был единственным ответственным за собственный server-authoritative слой поверх Unity Transport для двух multiplayer-игр: бинарные протоколы, snapshots, delta compression, network ticks и MTU. Работал с prediction, reconciliation и lag compensation в Photon Bolt/Fusion, реализовал собственную интерполяцию движения. Оптимизировал репликацию для Battle Royale на 64 игрока, синхронизировал автомобили, платформы, поезд и разрушение вокселей. Понимаю границы между состоянием симуляции и его отображением, требования к отзывчивости и сглаживанию движения.
Gameplay, metagame и backend
Разрабатывал движение, стрельбу, баллистику, AI, pathfinding, profiles, quests, UI и IAP. Реализовывал ASP.NET Core сервисы, matchmaking и оркестрацию UDP battle-серверов, работал с MongoDB/Redis и Protocol Buffers/MessagePack. Проектировал связь metagame и боя с offline operation и seamless reconnect. Могу разбирать фичу от игровых правил и состояния игрока до клиентского представления и серверной логики.
Инструменты и инженерные процессы
Разрабатывал редакторские инструменты, конфигурационные системы для геймдизайнеров, воспроизводимую сборку для локальной работы и CI. Работал с Git, code review и архитектурным восстановлением существующих проектов; оценивал реализацию, интеграцию и сопровождение решений. Выстраивал workflow между спецификацией, разработкой, QA и документацией.
Лидерство и управление разработкой
Как CTO отвечал за техническое направление четырёх игр, руководил четырьмя программистами, техническими художниками и PM в студии примерно из 20 человек. Также работал одним из лидов команд 30+ человек с 10+ программистами. Проводил технические интервью, участвовал в найме, развивал самостоятельность инженеров и передавал им ответственность за системы. Декомпозировал и оценивал задачи, проводил code review, использовал Scrum-ретроспективы и Value/Time для организации работы. Выстраивал коммуникацию с лидом геймдизайна и между programming, QA и Tech Art; связывал спецификацию, реализацию, приёмку и документацию. Сохранял hands-on участие в архитектуре и разработке.