5 советов по использованию GitHub Copilot с Unity

Теперь, когда инструменты искусственного интеллекта Unity доступны в бета-версии , мы наблюдаем большой интерес к их новым функциям, а именно к встроенному в редактор помощнику на основе ИИ и его интеграции с популярными инструментами для разработчиков. Если вы впервые участвуете в бета-тестировании, вы можете узнать больше на веб-странице, посвященной инструментам искусственного интеллекта . Мы также создали серию видеоуроков , чтобы помочь вам освоить основные функции программы.
Мы побеседовали со Стейси Хаффнер о том, как она использует GitHub Copilot с Unity для оптимизации рабочих процессов разработки игр. Стейси — бывший ведущий специалист по взаимодействию с разработчиками в Microsoft, а также видеоблогер с более чем десятилетним опытом работы независимым разработчиком игр. Ее опыт охватывает технологии для разработчиков, включая .NET, Xbox и Unity. В свободное от работы время она занимается защитой интересов разработчиков, управляет собственной инди-студией и публикует раз в две недели обучающие материалы по разработке игр.
Давайте начнём.
Совет 1: Работайте с контекстным окном, а не против него.
«Контекстное окно — это рабочая память ИИ для сессии, которая имеет свои ограничения». В зависимости от используемой базовой модели, производительность может начать снижаться еще до достижения предела, поэтому точность ответов может снижаться по мере продолжения сессии. GitHub Copilot помогает в этом, позволяя сжимать сессию, но если вы запускаете сжатие после того, как базовая модель уже начала деградировать, деградировавшее состояние становится вашей новой базовой версией. Поэтому я рекомендую с самого начала выстраивать свой рабочий процесс, ориентируясь на это ограничение.
«Для более сложных функций я использую основной чат для координации этой работы». Для реализации масштабной функции я настрою основной поток на разбиение работы на отдельные, целенаправленные части, а затем запущу фоновые агенты для обработки каждой из них. Программист занимается реализацией, агент проверки проверяет её, и как только проверка проходит успешно, цикл повторяется до тех пор, пока функция не будет завершена. Каждый агент работает в своем собственном контексте, поэтому основной поток остается сфокусированным и стабильно функционирует в течение более длительного времени.

Совет 2: Настройте среду проекта.
«В основе GitHub Copilot лежат универсальные модели, но вы можете настроить поведение Copilot, добавив файлы конфигурации в папку .github вашего проекта». Вы можете добавить три основных типа файлов, чтобы помочь GitHub Copilot понять ваш проект и вашу предметную область.
- Пользовательские инструкции — это постоянно доступный контекст, который Copilot загружает для каждой сессии и который определяет базовую конфигурацию вашего проекта. Они должны включать ваши предпочтительные соглашения о кодировании, спецификации проекта Unity (например, версию Unity Engine и конвейер рендеринга), архитектурные шаблоны и общие предпочтения. Используйте их для условий, которые всегда должны выполняться независимо от того, над какой частью проекта вы работаете.
- Агенты — это эксперты в своей области, каждый из которых обладает собственными инструментами и инструкциями. У меня есть агенты, специализирующиеся на шейдерах, инструментарии пользовательского интерфейса, игровых системах и так далее. В самом простом случае вы выбираете агента, соответствующего выполняемой работе, но можно добавить больше структуры, включив передачу задач между агентами.
- Навыки представляют собой модульные, многократно используемые инструкции, которые загружаются только тогда, когда их запускает конкретная задача. Описание навыка загружается в каждой сессии, чтобы модель знала, когда его нужно вызвать, но полные подробности загружаются только тогда, когда они действительно необходимы. Например, мой агент UI Toolkit вызывает отдельные навыки для стилизации, написания UXML-кода и выполнения связанных задач в зависимости от потребностей. Это обеспечивает эффективное использование памяти моделью между задачами.

Совет 3: Хороший план может многое изменить.
«Планирование — это первый шаг перед началом любой реализации». Когда вы используете команду /plan, а затем указываете свои конкретные инструкции, GitHub Copilot анализирует ваш код и запрашивает план реализации, прежде чем написать хотя бы одну строку кода.
Обязательно опишите проблему или исправление как можно подробнее, затем попросите Copilot провести расследование и вернуться с вопросами. Обмен опытом поможет вам более детально продумать пользовательский опыт и функциональность, что часто приводит к выявлению нестандартных ситуаций. После завершения этой итерации поручите ИИ определить основные этапы реализации, включая используемые существующие системы, необходимые для создания новые классы и методы, а также то, как все это будет взаимодействовать друг с другом. Только после этого следует позволить программе написать код.

Совет 4: Не пропускайте проверку кода.
«Код, сгенерированный искусственным интеллектом, нуждается в проверке, особенно если он остается в проекте надолго». После того, как реализация будет завершена, следует рассматривать её как запрос на слияние и внимательно её изучить.
«До появления окна агента в VS Code я пробовал несколько разных подходов к этому вопросу, и теперь чаще всего использую именно его». Я могу выделить определенный фрагмент кода и использовать команду /Explain, чтобы ИИ пошагово объяснил, что он делает, или команду /Review, чтобы он проанализировал только что написанный код. После этого я буду добавлять комментарии непосредственно в изменения, как это делаю в реальном запросе на слияние, и отправлять их обратно в сборку ИИ для дальнейшей доработки.
«Эта привычка важна, потому что она позволяет поддерживать код в соответствии с моими стандартами и гарантирует глубокое понимание моих систем». Эти знания помогают мне принимать правильные дизайнерские решения по мере развития игры.

Совет 5: Используйте ИИ в качестве личного репетитора.
«Вы можете использовать GitHub Copilot для создания собственного обучающего руководства по любой концепции Unity , которую хотите изучить». Поскольку GitHub Copilot может читать ваш проект, вы можете попросить его адаптировать урок к потребностям вашей игры и вашему уровню навыков.
«Я давно хотел изучить шейдеры, поэтому создал агента Unity Shader Graph , который активно занимается обучением, и использовал его для создания наложений для прицеливания по земле в бою». Когда я сталкивался с концепцией, которую не до конца понимал, я мог задавать вопросы и переходил к следующему шагу только тогда, когда был к этому готов.
«Важно использовать серию уроков, которые со временем способствуют развитию самостоятельности». Например, я попросил его предоставить пошаговые инструкции для первых двух шейдеров. Это помогло мне разобраться с незнакомыми узлами и математическими вычислениями, так что я действительно понял, как работает каждый шейдер. Я хотел самостоятельно создать третий шейдер, поэтому, когда застрял, просто попросил подсказку, а не готовый ответ. Это дало мне несколько наводящих вопросов, которые помогли определить следующий шаг, и я продолжил двигаться вперед. К концу процесса я наконец понял, что именно создал.

Подробный обзор Stacey и доступ к бета-версии ИИ.
Для более подробного изучения этих тем Стейси опубликовала несколько видеороликов на своем YouTube-канале . Доступ к встроенному в редактор ИИ-помощнику Unity уже открыт в режиме открытого бета-тестирования. Начните бесплатную 14-дневную пробную версию здесь .
