Portfolio

Sergei
Skotnikov

Software Engineer & Game Developer

6 лет на Revenue Share — сфокусирован на результате, а не процессе.
8 лет автономной разработки — закрываю широкий спектр задач под ключ.

C#
Python
JS
PHP
HTML
Unity
Blender
Git
PremierePro
AI
01 —

Проекты

VRTikTok API UnityC# За 2 недели
Интерактивная VR-игра с TikTok Live
Стример взаимодействует со зрителями через интерфейс игры. Рабочий прототип создан с нуля за 2 недели (без нейросетей).
Задача
Создать ПК VR игру, повышающую вовлечение зрителей на TikTok стриме. Визуал должен быть цепляющим, а геймплей понятным, чтобы новые зрители могли сразу понять что происходит.
Решение
Создал рабочий прототип VR-игры, с интеграцией TikTok Live с помощью TikTok-Live-Connector.
Зрители взаимодействуют со стримером через чат и платные подарки.
Чат стрима выводится на worldspace UI на планшете в игре.
Каждый подарок спавнит в сцене 3D-модель (пачка денег) с аватаром и ником зрителя.
Каждый новый подписчик появляется на придорожных билбордах.
Детали
  • Treadmill Effect — автомобиль статичен, трасса процедурно генерируется.
  • World Space UI — чат и никнеймы зрителей прямо в пространстве VR.
  • Event-Driven — каждый платный подарок = физический объект в сцене.
  • Поворот автомобиля не через джойстик, а наклоном руля.
VR Interface
Чат стрима выводить на worldspace UI в игре
Realtime mirror reflections
Рабочее зерклало (требует оптимизации)
Visual
Привлекательный визуал
01
Демонстрация геймплея VR игры с TikTok интеграцией
DebuggingReverse Engineering UnityC# ModdingTools
Реверс-инжиниринг Escape from Tarkov
Декомпилировал C# код коммерческой игры, нашёл логические ошибки в механиках, опубликовал разборы. Разработчики выпустили патчи.
Задача
Объяснить игрокам EFT как работают некоторые механики в игре. Сделать наглядную визуализацию систем, чтобы подтвердить мои слова без демонстрации исходного кода.
Решение
Декомпилировал код EFT с помощью dnSpy.
Проанализировал и расписал логику внутриигровых систем.
Нашел баги и ошибки в логике.
Создал мод-инструмент для дебага, тестирования и визуализации механик в игре.
Опубликовал разборы на YouTube.
Итоги
  • Ролики собрали десятки тысяч просмотров.
  • Крайне положительные отзывы от сообщества.
  • Разработчики игры выпустили патчи, исправляющие некоторые найденные баги.
Debug mod
Настройки и возможности моего дебаг мода
Camera tool
Инструмент для создания пролетов камеры
Spawn enemies and visualize colliders
Спавнер врагов и визуализация коллайдеров
02
Демонстрация итогового видео
Data-Driven Unity C# За 1 месяц
Технодемо: Divinity-like система элементов
Расширяемая система комбинаций статусов и элементов. Динамические элементальные поверхности.
Задача
Сделать Magicka-like кооп игру, но с упором на комбинации элементов в сцене, а не внутри игрока.
Решение
Сделал систему поверхностей как в Divinity/BG3.
Сделал систему статусов как в Genshin Impact.
Сделал расширяемую базу данных элементов и их комбинаций.
Сделал механику преобразования элементов (огонь + вода = пар).
Итоги
Я недооценил масштаб проекта и погряз в деталях - в итоге проект превратился в поле для моих экспериментов с механиками.
Детали
  • Модульная логика — ScriptableObjects конфиги для матриц реакций, физики снарядов, статусов.
  • Оптимизация - Object Pooling, MaterialPropertyBlock инстансинг, кэширование коллизий.
  • Data-Driven - характеристики, баланс, новые элементы, комбинации элементов можно менять без кода.
Element config
Конфигурация элемента
Reactions matrix
Матрица реакций
Encounter orchestrator
Конфигуратор волн врагов
03
Демонстрация core геймплея с элементальными комбинациями
Game DesignTools HTMLJavaScript за 4 дня
Симулятор жизни + Кастомный Node-Editor
Прототип симулятора жизни через принятие решений и визуальный редактор графа событий. 100% Data-Driven - геймдизайнер настраивает всю логику в UI.
Задача
Сделать игру - генератор историй. Игроку предлагается примерить роль бога/ангела-хранителя и вести подопечного персонажа, отвечая (или нет) на его молитвы в течение жизни. Каждое решение должно влиять на жизнь персонажа.
Решение
Сделал систему генерации событий/молитв. Разные выборы добавляют теги персонажу, а теги открывают новые молитвы и пути развития истории.
Сделал кастомный редактор JSON базы данных. Можно настроить бесконечное количество путей, не используя код.
Разработка еще ведется.
Детали
  • HTML + JS выбран для быстрого теста идеи. JSON базу данных можно легко переиспользовать на любом движке.
  • Полноценный визуальный редактор: граф событий, теги, условия. Без кода.
  • Data-Driven pipeline — автогенерация файлов БД из UI-конфига.
Скриншот 1
Скриншот игры - почти каждое решение изменяет судьбу
Скриншот 2
Скриншот финала жизни
Скриншот 3
Скриншот редактора тегов
04
GodSim
Визуальный редактор графа событий
Modding C#Unity Stream IntegrationTikTok API Twitch API
Моды для интеграции стримов
Моды для игр с интеграцией Twitch и TikTok. Зрители взаимодействуют с игрой через лайки, подарки и баллы канала.
  • RimWorld × Twitch — зрители создают своих пешек, тратят баллы канала на рейды и баффы.
  • L4D2 × TikTok — лайки = спавн зомби, подарки = спавн боссов. Зрители играют против стримера.
Twitch Integration
Интеграция с Twitch для управления игрой
TikTok Events
Интеграция с TikTok для управления игрой
05
Game Design HTMLJavaScript за 1 неделю
Прототип игры для теста мета-лупа
Прототип на HTML/JS помог выявить softlock и доминирующие стратегии до начала полноценной разработки игры на движке.
Задача
Разработать мета-прогрессию для игры и протестировать её в игровом цикле.
Решение
Сделал простейший игровой цикл, состоящий из одного дня: лагерь -> данж -> магазин.
Протестировал несколько разных вариантов прогрессии игрока.
Провел несколько итераций с исправлением проблем баланса.
Итоги
Найдены и исправлены способы попасть в софтлок. Прототип доведен до играбельного состояния. Оформлен подробный case-study с обоснованием геймдиз решений.
Battle Screen
Экран боя в игре
Battle Result
Экран победы в данже - выпал артефакт (усиление)
Repair Screen
Экран ремонта в лагере (money sink)
06
camp
Скриншот экрана лагеря
Modding Unity C# за 3 дня
EFT Item Preview QoL мод
EFT имеет качественные 3D-модели, но не дает возможности их детально рассмотреть. Я исправил это.
  • Fullscreen окно предпросмотра
  • Вращение предмета по всем осям, перемещение и мощный зум
  • Вращение освещения вокруг предмета
  • Экспорт скриншота с прозрачным фоном
07
Концепт комплекса - места действия игры
Концепт Нарратив Сюжет за 3 недели
Концепт First-Person Adventure с LLM
Разработал концепт и сюжет психологического триллера с ИИ в качестве главного антагониста.
Задача
Придумать концепцию игры со встроенной LLM (Большая языковая модель). Геймплей и подача истории должны быть тесно связаны с общением с ИИ. Пример - игра “Suck Up!”.
Решение
Написал трехактную структуру сюжета с разными концовками.
Вписал LLM в лор как основного персонажа, который является главным источником информации о происходящем, но не спешит ее раскрывать.
Общение игрока с ИИ происходит с помощью текста/голоса через интерфейс игры.
Подводные камни
Локальные LLM модели хорошего качества слишком требовательные, что сильно ограничивает аудиторию.
Хотя галлюцинации слабых LLM можно оправдать лором, есть риск, что они не доставят ожидаемый результат.
Облачные модели требуют поддержки серверов, что нетипично для одиночной игры.
room
Концепт кабинета руководителя
corridor
Концепт коридора с манекеном-врагом
ai-core
Концепт ядра ИИ
08
sky
Концепт комплекса - места действия игры
02 —

Коммерческий опыт разработки

7 лет · 2019 — сейчас Lead Dev .NET 8C# Playwright/CDPWebSockets WinFormsPHP/Symfony
Экосистема автоматизации ставок (Bet365)
Крупный коммерческий продукт. Я выступал как единственный технический специалист, работая в плотной связке с заказчиком. Провел проект через полный цикл жизни: от первых прототипов до масштабного рефакторинга и смены стека спустя 6 лет.
Задача и Ответственность

Автоматизировать проставку ставок в реальном времени на множестве аккаунтов Bet365 по сигналам внешних сканеров. Главные требования:

  • Нулевая терпимость к ошибкам: исключить дублирование ставок, неправильный расчет сумм или ставки на неверные исходы.
  • Обход антифрода: эмуляция действий реального человека, подмена отпечатков браузера, управление прокси.
  • Скорость: успевать забирать коэффициенты быстрее, чем букмекер их изменит или закроет линию.
Бизнес-результат

За 6 лет непрерывной работы система сгенерировала десятки тысяч долларов чистой прибыли — архитектура доказала свою надежность.

Версия 2 — актуальная (Архитектурный рефакторинг)
Авг 2025 — настоящее время · .NET 8 · Playwright/CDP · LiteDB

Миграция на современные технологии для масштабирования и оптимизации. Windows-сервис автоматизации ставок. Windows-сервис управляет независимыми воркерами, подключается к анти-детект Chromium браузерам через Playwright/CDP.

  • Каждый воркер поддерживает свой профиль, автологин на Bet365, трекинг баланса и аутентификации.
  • Управляет купоном через внутренние JS API сайта, ставки по сигналам внешних сканеров в реальном времени.
  • Фильтрация по профилям: спорт, рынки, коэффициенты, лимиты, защита от дублей.
  • Центральный движок маршрутизации сигналов координирует параллельных воркеров.
  • Веб-дашборд: состояние воркеров, история, графики баланса. Telegram-алерты.
  • Скриншоты браузера/рабочего стола для удалённого контроля.
  • Восстановление сессий, автовыравнивание часовых поясов, сверка результатов через инжектированный JS.
  • Отдельный .NET 8 Web API — агрегирует арбитражные сигналы с нескольких сканеров.
Dashboard
Панель управления — аккаунты и воркеры
History
История ставок, статистика, графики баланса
Stats
Сводная статистика по всем аккаунтам
VDS
Общая панель мониторинга VDS
Telegram
Уведомления в телеграм
Версия 1 — Legacy MVP
Мар 2019 — 2025 · .NET Framework 4.8 · WinForms · CDP · PHP/Symfony

Первая версия системы. Desktop-приложение для автоматического размещения ставок по входящим сигналам. Управление Chrome через CDP, параллельные боты.

  • Эмуляция ввода через InputSimulator. Интеграция с внешними API: сканеры, анти-детект браузеры, прокси.
  • Спуфинг fingerprint, антифрод-логика для каждого целевого домена.
  • Связка с PHP (Symfony) + MySQL для сбора и анализа статистики.
Main screen
Главный экран приложения
Profile settings
Настройки профиля
Stats
Статистика ставок
01
Панель управления бота
Панель управления бота
4 мес · Авг — Ноя 2025 .NET 8C# WebSocketsAsync
Крипто-торговый бот (Bybit / Gate.io)
Многопоточный автоматизированный крипто-торговый бот на C# (.NET 8) для фьючерсов Bybit и Gate.io, исполняющий сделки по внешним сигналам на нескольких аккаунтах.
  • Многопоточная архитектура: каждый воркер управляет полным циклом сделки — исполнение ордеров, отслеживание позиций через WebSockets, закрытие с трейлинг тейк-профит.
  • Оптимизация API: общие потоки рыночных данных, асинхронная обработка, внутренняя система событий для снижения нагрузки и эффективной работы нескольких ботов.
  • Надёжность: состояние сохраняется в JSON для безопасного восстановления после перезагрузок.
  • Результат: рентабельность торговой стратегии не подтвердилась, и проект был закрыт.
02
1 год · 2018 — 2019Founder Fullstack devData Mining PHPSQLJavaScript
Advspider — SaaS для аналитики рекламы
Собственный стартап. Первый сервис для поиска рекламы в Яндекс РСЯ. Уникальный алгоритм парсинга, база 500 000+ объявлений. Проект освещался в профильных медиа (Yagla).
Проблема рынка

На 2019 год не существовало удобных способов посмотреть объявления конкурентов в РСЯ. Основной рабочий способ был - открыть браузер в режиме инкогнито, сделать несколько интересующих поисков в Яндексе и ходить по сайтам с РСЯ блоками. Существующие на тот момент инструменты предоставляли только поиск рекламы конкурентов в результатах поиска Яндекса.

Решение

Я провел реверс-инжиниринг механизма выдачи РСЯ и написал алгоритм, позволяющий запрашивать объявления напрямую по ключевым словам.

  • Разработал бэкенд для агрегации и хранения креативов.
  • Создал веб-интерфейс с фильтрацией и поиском для конечных пользователей.
  • За период работы сервис собрал базу данных из ~500 000 объявлений
Финал проекта

В конечном итоге Яндекс изменил формат объявлений с текстовой на баннерную, что значительно снизило релевантность поиска по ключевым словам. Поддержка сервиса стала нецелесообразной, и я закрыл проект.

03
Интерфейс сервиса Advspider
Интерфейс сервиса Advspider
Открыт к
предложениям
Ищете инженера с нестандартным мышлением, который может автономно решать сложные технические задачи? Свяжитесь со мной.