EFIM SOKOLOV
Unity Developer
Моя цель - помогать компаниям создавать игры в которые будут играть миллионы игроков по всему миру.

  • Работаю в Unity
    4 года 9 месяцев
  • создал и поддерживал
    15 проектов

ОПЫТ В UNITY
  • С#
    • Активно использую структуры данных: List, LinkedList, Stack, Queue, Dictionary и др. при разработке игровых систем и их компонентов.
    • Хорошо разбираюсь в принципах ООП и придерживаюсь подходов SOLID, DRY, KISS — это помогает писать читаемый, расширяемый и слабо связанный код.
    • Использую принцип YAGNI для фокусировки на действительно нужном функционале, что позволяет экономить ресурсы и соблюдать сроки.
    • Имею знания алгоритмов сортировки (быстрая, деревья, блинная, подсчётом, расческой) и поиска (включая бинарный поиск).


  • Паттерны
    • Использовал паттерны State и Command для разработки интерактивных туториалов.
    • Применял Finite State Machine для создания адаптивного поведения объектов в игре.
    • При разработки UI использовал паттерны MVC и Mediator для разделения логики, представления и взаимодействия компонентов.
    • Для повышения производительности применял Object Pool, снижая количество аллокаций и нагрузку на сборщик мусора.
    • В архитектуре проектов использовал Service Locator и Singleton для централизованного управления зависимостями.
    • Использовал паттерн Observer для получения и обработки аналитических событий.
    • Для гибкого создания объектов применял паттерны Factory и Builder.
  • UI
    • Отвечал за вёрстку пользовательского интерфейса в нескольких коммерческих проектах.
    • Вплотную сотрудничал с UI/UX-дизайнерами, переносил макеты из Figma в Unity.
    • Работал со всеми компонентами Unity UI: Image, Button, Scroll Rect, Mask, Slider, Toggle и др.
    • Разрабатывал собственные анимации и компоненты группировки UI-элементов.
    • Использовал UI ToolKit в связке с Custom Editor для создания удобных интерфейсов в инспекторе.
  • Оптимизация
    • Оптимизировал UI, используя Sprite Atlas для снижения количества draw calls.
    • Применял Sprite Library и Sprite Sheet для оптимизации покадровой анимации 2D объектов.
    • Проводил оптимизацию 3D-моделей с помощью LOD-системы и MipMaps.
    • Настраивал GPU Instancing для сокращения количества draw calls при рендеринге повторяющихся объектов.
    • Работал с запеканием Lightmap и Light Probes для повышения производительности освещения.
    • Использую инструменты Profiler, Frame Debugger, Physics Debugger, Memory Profiller для выявления узких мест в производительности.
    • Разрабатывал оптимизированные мобильные шейдеры, включая decal для runtime-теней и bloom-эффект для повышения визуального качества.
  • Zenject
    • Использовал Zenject в 10 коммерческих проектах.
    • Обладаю уверенным опытом работы с инъекцией зависимостей, включая сигналы и фабрики.
    • Внедрял Zenject в легаси-проект, решая задачи по рефакторингу и адаптации архитектуры.
    • Разрабатывал собственную систему внедрения зависимостей, что позволило глубже понять принципы работы DI.
  • Addressables
    • Работаю с Addressables уже 3 года, активно использую для асинхронной загрузки одиночных и группы ресурсов.
    • Разрабатывал механизм отчистки загруженных ресурсов сцены, оптимизируя использование памяти.
  • ECS
    • Плотно работал с LeoECS Lite для создания оптимизированных систем передвижения юнитов и математических расчетов.
    • Разрабатывал ИИ, используя архитектурную модель Behavior Tree в связке с LeoECS Lite, что обеспечило высокую гибкость и масштабируемость системы поведения персонажей.
  • Multiplayer
    • Имею опыт разработки многопользовательских игр с использованием Photon Fusion и Mirror.
    • Разрабатывал сетевую логику, включая подбор игроков, синхронизацию объектов сцены и взаимодействие между игроками.
    • Реализовывал передачу данных о состоянии объектов, таких как здоровье персонажей, статус загрузки сцены и другие параметры, с использованием RPC-запросов.
  • Шейдеры
    • Разрабатывал шейдеры на HLSL для различных нужд, включая UI (черно-белые фильтры, кастомные маски) и пост-процессинг (настройка насыщенности, контрастности, яркости, изменение цветовых каналов).
    • Создавал шейдеры для изменения цвета runtime теней, простой шейдер воды.
    • Работал с буфером глубины для создания эффекта Depth of Field и decal шейдера, что позволило улучшить визуальные эффекты и повысить качество графики игры.
  • Интеграция SDK
    • Интегрировал аналитические SDK: Firebase Analytics, AppMetrica, Game Analytics, что позволило собирать данные для анализа пользовательского поведения.
    • Работал с рекламными SDK, включая AdMob, а также медиаторы IronSource и Appodeal для монетизации игры.
    • Интегрировал систему In-App Purchasing для реализации покупок внутри приложения.
  • GIT
    • Имею опыт работы с удалёнными хостингами GitHub и GitLab.
    • Работал с различными инструментами для управления версиями, такими как TortoiseGit, GitHub Desktop и Fork.
    • Владею консольными командами Git: создание, удаление и слияние веток, а также разрешение конфликтов.
    • В рамках команды из 30 человек работал по методологии Feature Flow. Проводил code review, что способствовало улучшению качества кода.
  • Анимации
    • Плотно работал с DOTween для анимации UI и объектов в сценах.
    • Работал с Sprite Skin и Spine для анимации 2D-объектов.
    • Работал с root motion-анимацией, создавая сложные системы анимации для персонажей.
    • Разрабатывал и настраивал Sub-State Machine с десятками переходов для реализации различных анимационных состояний.
    • Использовал layers, blend tree, blendshapes, триггеры и события.
    • Использовал Timeline для создания и управления сложными анимационными сценами.
  • Инструменты
    • Создавал инструменты для гейм-дизайнеров, такие как окна для редактирования конфигов игры с использованием Odin Inspector и интеграция удалённых конфигов, что позволило оптимизировать процесс настройки и модификации игры.
    • Разрабатывал инструменты для левел-дизайнеров, включая редактор уровней и механизм привязки объектов друг к другу, что значительно ускоряло процесс создания и настройки уровней.
КАРЬЕРА
Lines of Life
Позиция - Middle Unity Developer
Период:
Январь 2024 - Апрель 2025 (4 месяца)

Работал над:
Vorian : Roguelike
  • Плотно работал с Behavior Tree для реализации гибкого поведения мобов и боссов.
  • Реализовал всю геймплейную логику с помощью LeoECS Lite, что позволило получить максимально гибкий и производительный код.
  • Использовал паттрен Command для управления волн противников.
  • Игра использует освещение в реальном времени (runtime), несмотря на это, мне удалось оптимизировать игру до стабильных 60 FPS на слабых мобильных устройствах.
Orssi : Pixel Roguelike
  • Плотно работал с Behavior Tree для реализации гибкого поведения мобов и боссов.
  • Использовал UniRX и UniTask для построения гибкой и расширяемой архитектуры.
  • Занимался запеканием Lightmap для повышения производительности игры.
Tower Balance : Relax & Puzzle
  • В соревновательном режиме игроки соревнуются за строительство самой высокой башни. Для его реализации использовал Unity Leaderboards.
  • Занимался интеграцией Firebase Analytics и Crashlytics.

Rootcode
Позиция - Middle Unity Developer
Ссылка на Rootcode

Период:
Апрель 2024 - Декабрь 2024 (9 месяцев)

Работал над:
Idle merge : Железные дороги России
  • Был ключевым программистом, разрабатывал системы игровых событий: их запуск, ротацию, сохранение прогресса и уникальные механики внутри событий.
  • Самой сложной задачей была организация и поддержка модульной архитектуры.
  • Разрабатывал инструменты для левел-дизайнеров: редактор уровней, автоматическая настройка порядка отрисовки объектов.
  • Занимался внедрением удаленных конфигов для ускорения работы отдела гейм-дизайна и QA.
Siberian Way
  • Разрабатывал множество диалоговых и интерактивных сцен.
  • Исправлял баги и дорабатывал существующий функционал.
  • Получил опыт работы с Spine анимацией.

Midhard
Позиция - Middle Unity Developer
Ссылка на Midhard

Период:
Июль 2023 - Апрель 2024 (10 месяцев)

Работал над:
Idle merge : Железные дороги России
  • Получил опыт работы в распределённой команде из 30 человек, эффективно взаимодействуя в условиях удалённой разработки.
  • Отвечал за координацию с другими отделами: организовывал созвоны, выстраивал коммуникацию и договаривался по ключевым вопросам.
  • Разрабатывал core-механики с использованием LeoECS Lite, Addressables, Zenject.
  • Оптимизировал размер игры за счёт написания шейдеров на HLSL для UI.
Strategy : Железные дороги России
  • Исправлял баги, связанные с загрузкой сохранений, левел-дизайном и квестовой логикой.
  • Разрабатывал инструменты с использованием Custom Editor для левел-дизайнеров, обеспечивая удобную настройку объектов окружения.

JoyCraft Games
Позиция - Middle Unity Developer
Ссылка на JoyCraft Games

Период:
Апрель 2023 - Июль 2023 (4 месяца)


Работал над:
Merge Royale: Castle Clash
  • Разрабатывал новый функционал и занимался рефакторингом устаревшего кода, что позволило улучшить его структуру и производительность.
  • Внедрил Zenject в легаси-проект для организации гибкой архитектуры и улучшения тестируемости кода.
  • Отвечал за интеграцию рекламы, мобильных уведомлений и Firebase Crashlytics.
  • Работал в тесном сотрудничестве с программистом и гейм-дизайнером, используя удалённый хостинг GitHub.

Lines of Life
Позиция - Junior Unity Developer
Период:
Декабрь 2021 - Октябрь 2022 (11 месяцев)


Работал над:
Fast Car
  • Собирал команду и курировал процесс разработки.
  • Разрабатывал оптимизированные мобильные шейдеры на HLSL, включая color correction, bloom и decal.
  • При построении модульной архитектуры использовал Zenject для управления зависимостями.
  • Создавал low-poly модели в Blender и занимался левел-дизайном.
  • Получил опыт в запекании Light Probes для повышения производительности и качества игры.

Garden of Dreams
Позиция - Junior Unity Developer
Ссылка на Garden of Dreams.

Период:
Август 2020 - Декабрь 2021 (1 год 5 месяцев)
Ноябрь 2022 - Март 2023 (5 месяцев)


Работал над:
Offline Dice: Random Rush Royale
  • Занимался оптимизацией, анализировал архитектуру и предлагал методы решения проблем с использованием RAM и CPU.
  • Создавал кастомные VFX на основе Particle System: появление, соединение и улучшение игральных костей.
Dice Adventures Roguelike Game
  • Был единственным программистом на проекте и довёл игру до релиза с нуля.
  • Разрабатывал все ключевые механики: инвентарь, поведение ИИ, системы карт и сохранения прогресса.
  • Получил опыт в разработки пошаговых обучающих уровней (туториал).
  • Встраивал покупки In-App Purchasing и рекламу AdMob.
Stickman Tap Fight
  • Получил опыт работы с root motion-анимацией. Плотно работал с Animator Sub-State Machine для создания вариативных атак руками, ногами и их комбинациями.
  • Программировал поведение ИИ с использованием паттерна Finite State Machine (атака, блок, нападение одного или нескольких врагов).
Square Puzzle RPG | Turn-Based
  • Разрабатывал ключевые игровые механики: передвижение героев, сбор предметов, применение эффектов и их влияние на поведение и характеристики персонажей.
  • Создавал ИИ для врагов, который адаптируется к ситуациям на игровом поле.
  • В процессе разработки использовал XNode, Zenject, Addressables, Odin Inspector.
  • Занимался внедрением аналитических событий используя Firebase Analytics.
Sword Draw
  • Разработал ключевые игровые механики: подбор ресурсов, течение времени, планирование пути героя и остановку времени.
  • Программировал поведение ИИ с использованием паттерна Finite State Machine (патрулирование, атака, поиск пути).
  • Отвечал за интеграцию AppMetrica и Facebook SDK.
Sumo Run
  • Плотно работал с анимацией blendshapes для реализации увеличения и уменьшения персонажа при поедании еды.
  • Интегрировал сервисы AppMetrica, Facebook SDK и GameAnalytics.
ОТЗЫВЫ
  • Ruslan
    Lead Unity Developer in RootCode
    Telegram: @RuslanK_dev
    Ефим показал себя как ответственный, целеустремленный и крайне увлеченный разработчик.
    Лично для меня оказался незаменимым сотрудником, помогающим в сложных задачах.

    Дата: 02.12.2024
  • Oleg
    Lead Unity Developer in Midhard
    Telegram: @OlegLup
    Ефим ответственный и самостоятельный сотрудник. Быстро вливается как в новый коллектив, так и в новый проект. Четко придерживается поставленных целей и при этом способен сам принимать необходимые решения.

    Дата: 08.04.2024
  • Aleksey
    Lead Unity Developer in Midhard
    Telegram: @neygavets
    Ефим показал себя как ответственный, работоспособный сотрудник, которому можно дать задачу любой сложности и быть уверенным, что он доведет её до конца. Имеет обширный, разносторонний опыт, с готовностью приходит на помощь к коллегам.

    Дата: 12.01.2024
  • Ruslan
    Game Designer in JoyCraft Games
    Telegram: @ruslanalife
    Ефим показал себя ответственным сотрудником, который может браться за задачи любой сложности. Быстро адаптируется к условиям новых проектов, находит общий язык с остальной командой.

    Дата: 13.07.2023
  • Alexey Khokhryakov
    Teacher in IJunior
    Telegram: @kekeksey
    Ефим проходил курс по созданию HyperCasual игр, во время которого зарекомендовал себя как ответственный студент, со всей серьезностью и самоотдачей подходящий к поставленным задачам. Замечания по качеству кода принимал спокойно и грамотно их исправлял. К окончанию курса уровень его мастерства позволил создавать код отличного качества, все задачи проходили ревью с первого раза. Также Ефим обладает редким для технического специалиста хорошим вкусом, в каждом проекте он выкладывался на 100%. Хочется отметить его успехи в стилистическом оформлении, продуманности и внимании к деталям, добавлении эффектов. Ефим показал себя надежным и ответственным человеком, которому можно доверить ведение проекта от начала и до конца.

    Дата: 26.04.2021
  • Evgeny Grishakov
    General director in Garden of Dreams
    Telegram: @Grishakof
    Ефим Соколов — ответственный разработчик, которому не "всё равно". Делает качественно, без разговоров правит баги, если находим. Отдельно отмечу, что у Ефима всё в порядке со вкусом: сразу собирает игру аккуратно, может добавить анимации, оформить недостающие экраны из того, что есть. Сделали вместе игру Dice Adventures и планируем сотрудничать в последующих проектах.

    Дата: 15.03.2021
  • Michael Ponyakshin
    Game designer in Garden of Dreams
    Telegram: @FunTa3ep
    За время совместной деятельности, Ефим зарекомендовал себя как надежный коллега, которому можно поручить сложные задачи. По ходу работы, полностью погружается в процесс, при этом проявляет инициативу, предлагая грамотные и полезные решения.

    Дата: 15.03.2021
ОТКРЫТЫЙ ПРОЕКТ
Один из моих проектов опубликован на GitHub и демонстрирует подход к построению архитектуры, применению шаблонов проектирования и умение работать с плагинами.

В проекте используются Zenject, Addressables, Odin Inspector, UniTask и UniRx, что подчёркивает мой опыт работы с современным стеком инструментов Unity.

Дата публикации: 11.02.2025
КУРСЫ
  • Physic in Unity
    Курс от компании Eccentric Games
    Программу курса можно посмотреть тут
    Период: 20.02.2021 - 01.03.2021

    В рамках курса освоил основы работы с физикой в Unity.
    • Работал с компонентами: Rigidbody, Collider, Constant Force.
    • Использовал методы: AddForce, AddTorque, AddForceAtPosition.
    • Изучал взаимодействия через OnCollision и OnTrigger, а также такие элементы как Center of Mass, Physics Layers, ForceMode и Raycast.
    • Настраивал физические связи с помощью Joint-ов (Hinge, Fixed, Spring, Character, Configurable) и создавал Ragdoll-систему.

    Посмотреть проект курса можно тут
  • Post Effect in Unity
    Курс от спикера Максима Крюкова
    Программу курса можно посмотреть тут
    Период: 01.03.2021 - 15.03.2021

    В рамках курса по шейдерам в Unity получил опыт создания продвинутых визуальных эффектов используя язык HLSL. Реализовал шейдеры с эффектами: Invert, Greyscale, Sepia, Fog, Blur, Edge Detection, Neon, Painting, Warping, Fish Eye и Mosaic.

    Посмотреть проект курса можно тут.
  • 7 Hyper Casual Games
    Курс от компании IJunior
    Программу курса можно посмотреть тут
    Период: 01.04.2021 - 01.05.2021

    В рамках курса получил практический опыт в создании семи гиперказуальных игр: Helix Jump, Fire Ball 3D, Tower Run, Snake VS Block, Perfect Slices, Crowd Master 3D и Pockey Ball.
  • Architecture unity games
    Курс от компании K-syndicate
    Программу курса можно посмотреть тут
    Период: 18.10.2021 - 18.01.2022

    В рамках курса освоил следующие навыки:
    • Построение гибкой архитектуры с использованием паттерна State Machine для управления метаданными игры.
    • Работа с Addressables для эффективного управления игровыми ресурсами.
    • Использование принципа Dependency Injection.
    • Применение сервисного подхода при проектировании архитектуры.

    Посмотреть проект курса можно тут
ПРОТОТИПЫ
ЛИЧНЫЕ КАЧЕСТВА
  • Умею выстраивать конструктивную коммуникацию в команде: уважаю чужие мнения и аргументированно высказываю собственную точку зрения.
  • Ответственно подхожу к задачам и довожу их до завершения.
  • Имею творческое мышление и могу предлагать собственные идеи по развитию или дополнению проекта.
  • Страсть и жажда делать выдающиеся, успешные игры!

EFIM SOKOLOV
Unity Developer
E-mail: aafanya@bk.ru
Phone: +7 771 284 41 20 (KZ)
Made on
Tilda