← Назад к вопросам

Рсскажи про игры котрые делал

1.0 Junior🔥 121 комментариев
#Другое

Комментарии (1)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Опыт разработки игр на Unity

За более чем 10 лет работы с Unity я участвовал в создании игр различных жанров и масштабов — от мобильных гипер-казуальных проектов до многопользовательских PC-игр. Вот ключевые направления и проекты, над которыми мне довелось работать:

Мобильные гипер-казуальные и мидкор игры

  • Аркады и раннеры: Разрабатывал механики бесконечного бега с процедурной генерацией уровней, системы бонусов и внутриигровой экономики. Оптимизация под 60 FPS на слабых устройствах была ключевым приоритетом.
  • Паззлы и головоломки: Создавал логические игры с блоками, match-3 механиками и физическими паззлами. Здесь важна была отзывчивость интерфейса и продуманный, постепенный рост сложности.
  • Интеграция монетизации: Активно работал с Unity Ads, AppLovin, ironSource, настраивая места размещения рекламы (интерстишиал, ривард, баннер) и аналитику для A/B тестов.

3D-экшены и шутеры (PC/Мобильные)

  • Кооперативные PvE-проекты: Участвовал в разработке сетевого кооперативного шутера, где отвечал за сетевой код (Netcode) синхронизацию состояния игроков, ИИ врагов и систему спавна лут-дропов.
  • Система способностей и прокачки: Реализовывал сложные деревья талантов и систему скиллов с модификаторами, используя Scriptable Objects для данных и состояние (State Pattern) для управления логикой способностей.
  • Инструменты для геймдизайнеров: Создавал в редакторе Unity кастомные окна для настройки волн противников, баланса оружия и параметров миссий, что значительно ускоряло итерационный процесс.

Технические демо и прототипы (XR/Геймплейные механики)

  • Виртуальная реальность (VR): Разрабатывал прототипы для Oculus Quest и SteamVR, решая задачи комфортного локомоушена, интеракции с объектами и UI в 3D-пространстве.
  • Сложные игровые механики: Например, система разрушаемости окружения на основе программируемой рендер-конвейера (URP Shader Graph) и упрощенной физики, или динамическая система времени суток и погоды.

Ключевой проект в портфолио: Кооперативный шутер "Сфера Хаоса"

Это был наиболее комплексный проект, где я выступал в роли технического лидера небольшой команды.

  • Моя зона ответственности:
    *   **Архитектура:** Построение модульной архитектуры на основе **компонентного подхода** и зависимостей через Zenject.
    *   **Сетевая игра:** Реализация авторитарной серверной модели с использованием **Unity Netcode for GameObjects (ранее UNET)** и **Fish-Networking**, синхронизация не только позиций, но и сложных состояний (здоровье, статус-эффекты).
    *   **Искусственный интеллект:** Разработка ИИ врагов на **поведенческих деревьях (Behavior Tree)** с использованием Asset Store решений и собственных кастомных узлов для тактического поведения.
    *   **Оптимизация:** Профилирование и оптимизация **цикла рендеринга (CPU/GPU bound)**, работа с **пулами объектов (Object Pooling)** и **уровнями детализации (LOD)**.

// Пример кода из системы способностей с использованием ScriptableObject
[CreateAssetMenu(fileName = "NewAbility", menuName = "Game/Ability")]
public class AbilityData : ScriptableObject
{
    public string abilityName;
    public float cooldown;
    public GameObject vfxPrefab;
    public TargetType targetType;

    // Метод, содержащий логику применения способности
    public virtual void Execute(Character caster, Vector3 targetPosition)
    {
        // Базовая логика: спавн VFX, нанесение урона в области и т.д.
        if (vfxPrefab != null)
        {
            Instantiate(vfxPrefab, targetPosition, Quaternion.identity);
        }
        // Логика поиска целей и применения эффектов
        ApplyEffectToTargets(caster, targetPosition);
    }

    protected virtual void ApplyEffectToTargets(Character caster, Vector3 targetPosition)
    {
        // Переопределяется в конкретных способностях (Fireball, Heal и т.д.)
    }
}

// Пример конкретной способности
[CreateAssetMenu(fileName = "Fireball", menuName = "Game/Ability/Fireball")]
public class FireballAbility : AbilityData
{
    public float damage;
    public float radius;

    protected override void ApplyEffectToTargets(Character caster, Vector3 targetPosition)
    {
        Collider[] hitColliders = Physics.OverlapSphere(targetPosition, radius);
        foreach (var hitCollider in hitColliders)
        {
            Character enemy = hitCollider.GetComponent<Character>();
            if (enemy != null && enemy.team != caster.team)
            {
                enemy.TakeDamage(damage);
            }
        }
    }
}

Этот опыт научил меня не только решению узких технических задач, но и полному циклу разработки — от прототипирования механики и создания архитектуры, способной к масштабированию, до финальной полировки, оптимизации и вывода проекта на рынок. Каждый проект, будь то небольшая мобильная игра или сложный сетевой экшен, ставил уникальные задачи и углублял понимание движка Unity.

Рсскажи про игры котрые делал | PrepBro