Нейросеть vs. Программисты: Анализ 3 игровых проектов

Разбор трёх игровых проектов, созданных с разной степенью участия нейросети, и анализ качества кода, написанного человеком и ИИ. Цель — оценить эффективность использования нейросети в разработке и сравнить результат с работой программистов разного уровня квалификации.

Проект 1: FPS Master

Проект FPS Master реализует механику стрельбы с использованием Ray Cast и деколирования при попадании. Анализ кода выявил следующие особенности:

  • Структура проекта: Отсутствие слоистой архитектуры, композитного корня и разбиения на предметные модели. Наличие лишь четырёх компонентов с глобальной ответственностью (Gun, Health, Player, UI).
  • Компонент Gun: Большое количество полей (перенасыщение ответственности), затрудняющее отслеживание состояния системы. Использование private полей с нижним подчёркиванием. Смешение слоёв (обработка Input через старую систему ввода). Дублирующиеся строковые литералы.
  • Компонент Health: Нарушение целостности объекта в методе TakeDamage. Отсутствие защиты инварианта (currentHealth может стать отрицательным). Удаление объекта в самом компоненте (Destroy), нарушающее принцип разделения ответственности.
  • Компонент UI: Подписка на событие GunChanged, но отсутствие отписки, что может приводить к ошибкам (например, Exception при смене сцены).
  • Оценка: Уровень кода соответствует стажёру или Junior-разработчику с невысокими требованиями. Возможность использования нейросети с незначительными правками. Стоимость кода в 15 000 рублей признана завышенной. Качество кода низкое, отсутствие базы для расширения.

Проект 2: Сложная архитектура

Второй проект демонстрирует более серьёзную архитектуру: разделение на вью, игровую логику и данные. Использование Scriptable Objects для настройки оружия и уровней. Однако, обнаружены недостатки:

  • Game Logic: Наследование от MonoBehaviour в классе Bullet, ограничивающее возможности использования паттернов проектирования. Неэффективная реализация стрельбы (изменение позиции через +=, без учёта физики, что приводит к прохождению пуль сквозь объекты).
  • Метод Init: Неправильное расположение метода Init между private методами.
  • Обработка коллизий: Неоптимальная обработка коллизий (использование OnTriggerEnter). Возможность многократного нанесения урона одному объекту.
  • FPS Camera Controller и Weapon Controller: Стандартный контроллер и компонент с большим количеством ответственности, свидетельствующие о плохом разделении функционала.
  • Оценка: Уровень разработчика — опытный Middle, но с недостатком дисциплины. Использование профессиональных фишек, но присутствие мелких ошибок, ухудшающих общее впечатление. Стоимость в 50 000 рублей признана завышенной.

Проект 3: Возможное использование нейросети

Третий проект демонстрирует высокую степень однородности с предыдущими, что наводит на мысль о повторном использовании кода или использовании нейросети.

  • Повторный код: Использование идентичного кода из предыдущих проектов (например, EnemyHealth, FPS Controller, Camera Controller).
  • Композитный корень: Использование Composite Root для сборки проекта, но отсутствие расширяемой фабрики.
  • Оценка: С большой вероятностью код написан нейросетью и доработан человеком. Уровень — Junior или стажёр. Стоимость проекта составила 5000 рублей, что признано адекватным.

Анализ трёх проектов показал, что нейросеть может генерировать рабочий код, но для создания качественного проекта необходима доработка и проверка человеком. Разработчик должен обладать необходимыми знаниями, опытом и дисциплиной, чтобы использовать нейросеть как эффективный инструмент, а не полагаться полностью на её возможности. Стоимость разработки, особенно в случае использования нейросети, необходимо тщательно оценивать, учитывая затраты времени и качество полученного результата. Нейросеть ускоряет некоторые процессы разработки, но не заменяет профессионального программиста.

Что будем искать? Например,программа