Георгий | Unity Developer — Core & Gameplay
UTC+7 | 📍 Удаленно | Full-time / Part-time / Project-based
✉️ Mail: goset33pred@gmail.com
💬 Telegram: t.me/GosetTM
🐙 GitHub: github.com/goset33
💼 Резюме: Резюме
TD100
Заказчик: DreamShot
Жанр: 3D Top-Down Tower Defense
Моя роль: Unity Developer
Команда: я + 1 моделер
Сроки: 01.2026 — 04.2026
Стек: Unity, C#, Git, Input System, UI Toolkit, VFX Graph, MessagePack, Unity Localization
Платформа: Android (+ Windows-билд в ходе разработки)
Контент: 15 уровней / 3 башни / 6 врагов / локализация RU-EN
Билд: drive.google.com
Code Examples: gist.github.com
Геймплей TD100








Об игре
Классический казуальный Tower Defense — игрок проходит уровень за уровнем, убивает монстров и защищает свою базу. При том сложность уровней растет нелинейно, поэтому игроку необходимо прокачивать параметры башен в магазине, иначе у него не получится пройти дальше по игре.
Что я сделал
- Основной Core-геймплей: башни, враги, система волн, уровни
- Нелинейная прогрессия сложности уровней + 3 сложности одного уровня
- UI и взаимодействие с ним через UI Toolkit
- Магазин и система прокачки башен
- Система локальных сохранений через MessagePack
- Визуальные эффекты и частицы на VFX Graph
- Локализация на русский и английский
Технические решения
Оптимизация
- Проблема: Игра фризила при первой за сессию постройке башни, первом выстреле и первом взрыве ракеты.
- Решение: Система Object Pooling для башен, врагов, ракет а также Prewarmer для прогрева префабов, шейдеров и эффектов до старта игры.
- Эффект: Фризы были убраны, а все дальнейшие спавны на уровне происходят без лишних аллокаций памяти.
VFX
- Проблема: Обычные Particle System просчитываются на CPU, сильно влияя на FPS игры.
- Решение: Эффекты на VFX Graph считаются и рендерятся сразу на GPU, что лучше для производительности. Кроме того, на нем возможно реализовать более сложные эффекты.
Mega Quiz: Games
Жанр: Trivia
Моя роль: Unity Developer
Команда: Я + 1 геймдизайнер
Год: 2025
Стек: Unity, C#, Git, Unity Localization, UI Toolkit, PluginYG 2.0, R3, NPOI
Платформа: WebGL
Контент: 4 квиза / 400+ вопросов / локализация RU-EN
Билд: yandex.ru
GitHub: github.com







Об игре
Mega Quiz: Games представляет собой интерактивную казуальную викторину. Игрок проходит квизы по различным представленным играм, получая за это валюту и опыт. Опыт прокачивает этот квиз, постепенно повышая его уровень. Чем выше уровень квиза, тем сложнее набор вопросов. Валюта же используется в лидербордах Yandex Games, показывая, насколько хорошо прокачался игрок.
Вопросы квизов бывают разных уровней сложности. Также поддерживаются разные типы вопросов: стандартный, с картинкой, “счетчик”, на соединение пар. На высоких уровнях сложности квиза появляется таймер: либо общий на весь квиз, либо индивидуально на каждый вопрос.
Что я сделал
- Реализовал Core механики: типы вопросов, случайные вопросы из списка и случайная очередность, показ верного ответа, система жизней
- Система чтения и сериализации вопросов из Excel таблиц
- Кастомные UI Toolkit элементы ради большего контроля над UI
- Экран загрузки с динамическим прогресс-баром
- Использовал Yandex Games SDK для показа рекламы, лидербордов, облачных сохранений
- Подключил Яндекс Метрики для сбора статистики игры
- Локализация на русский и английский языки через Unity Localization
Технические решения
Работа с данными
- Проблема: Хороший квиз должен иметь сотни разных вопросов с несколькими вариантами ответа. Хранить их все в виде ScriptableObject нецелесообразно из-за большого объема данных. Можно банально запутаться в конфигах.
- Решение: Система, которая сможет парсить классические Excel таблицы при помощи библиотеки NPOI и сразу десериализовывать их в объекты вопросов. Сами таблицы будут храниться в папке StreamingAssets самого билда.
- Эффект: Игра в рантайме парсит таблицы и подгружает вопросы в память. Такой подход очень удобен при масштабировании игры и увеличении количества вопросов.
Castle Adventure
Жанр: 2D Platformer
Моя роль: Unity Developer
Команда: один я
Год: 2023
Стек: Unity, C#, Git, Unity uGUI, Unity Localization, SimpleLocalization, DOTween
Платформа: Android, Windows
Контент: 11 уровней / 4 врага / 1 босс / 2 типа атаки / локализация RU-EN
Билд: drive.google.com
Геймплей Castle Adventure








Об игре
Castle Adventure представляет собой классический 2D платформер в стиле пиксель-арта. Игрок играет за принцессу и проходит уровень за уровнем, убивая по пути агрессивные шипастые кубы. На последнем уровне игрока ждет босс-файт.
У игрока есть 2 типа атаки: основная и дополнительная. Основной атакой игрок стреляет зеленым яблоком вперед себя. Яблоко без гравитации летит вперед пока не врежется во что-либо. Дополнительной атакой игрок бросает вперед красное яблоко, которое падает на землю и через некоторое время взрывается, нанося урон всем в радиусе.
Что я сделал
- Контроллер игрока: движение, стрельба, взаимодействие с миром и врагами
- Адаптация управления игрой между платформами — экранные кнопки для мобильных устройств и клавиши для ПК
- UI игры и взаимодействие с ним через Unity uGUI
- Система локализации на основе плагина SimpleLocalization локализует игру на русский и английский через таблицы из Google Sheets
Технические решения
Оптимизация
- Проблема: Unity не имеет встроенного Occlusion Culling для 2D игр, поэтому игре приходится обрабатывать лишние объекты за областью видимости игрока.
- Решение: Кастомная система OcclusionCulling2D, которая ищет всех врагов на сцене, проверяет, какие из них не видны игроку (через пересечение их Bounding Box с областью видимости камеры) и отключает их.
Искусственный интеллект
- Проблема: Врагам необходимо обнаруживать игрока в любом направлении для преследования. Рассчитывать это через простое расстояние между объектами нельзя, так как тогда мы не учитываем возможные препятствия на пути между игроком и врагом.
- Решение: Создание Raycast’ов из врага по окружности на равных угловых интервалах. Каждый Raycast проверяет столкновение с препятствиями и игроком.
- Эффект: Враги получают обзор на 360 градусов для обнаружения игрока, учитывая препятствия на их пути.
Локализация
- Проблема: Хранение таблиц переводов игры неудобно в билдах, отсутствует возможность динамически менять строки без пересборки игры.
- Решение: Интеграция плагина SimpleLocalization с Google Sheets. Система скачивает CSV файлы из Google Sheets, парсит их и загружает в словарь. Локализованные строки можно менять прямо с сайта без пересборки.
Что бы улучшил
- Вынес бы все параметры игрока, врагов, боссов в ScriptableObject-конфиги.
- Заменил большинство использований статических переменных на event-based структуру.
- Переделал логику босса на явную машину состояний.
- Разделил бы UI и игровую логику по отдельным скриптам и связал их через ивенты.
A* and Map Generation Demo
Цель демо: Разработать механику генерации 2D-карты при помощи шума Перлина и механику поиска пути на этой карте по алгоритму A* Pathfinding
Год: 2024
Стек: Unity, C#, Cinemachine, Input System, процедурная генерация, шум Перлина, A* Pathfinding
Билд: drive.google.com
Что реализовано
- Следование камеры за игроком с помощью плагина Cinemachine
- Процедурная генерация карты на основе шума Перлина
- Поиск и построение пути по алгоритму A*
- Движение игрока по построенному пути