Анализ, план, код, проверки: наш ритм разработки с ИИ 🤖
Мы никогда не скрывали, что активно используем ИИ в Blocks Beyond The Stars: без него игру такого размера в качестве проекта после работы просто не сделать. Но «разработка с ИИ» у нас не значит: набрать пожелание, взять результат и надеяться. За месяцы сложился чёткий порядок, который звучит удивительно старомодно, и работает именно поэтому. Сегодня мы расскажем о нём подробно.
Всё всегда начинается с человека и идеи. Прежде чем ИИ хоть что-то сделает, кто-то чего-то захотел или что-то заметил: игрок, который через клавишу обратной связи сообщает, что животные появляются внутри его стен, или мы сами, когда Justus посреди игры говорит, чего ему не хватает. ИИ у нас не выдумывает себе задачи. Ему их дают.
Затем ИИ работает по фазам. Их четыре, всегда в одном и том же порядке: анализ, планирование, реализация, проверка. (Пятый шаг, ручное тестирование, идёт после, но это снова работа человека, об этом чуть позже.) Главный трюк в том, чего ИИ нельзя делать: сразу писать код. ИИ, который сразу начинает печатать, с впечатляющей скоростью решает не ту задачу. Поэтому любая крупная задача начинается с анализа: что уже есть, где на самом деле причина, что ещё к этому привязано? Результат — текст, а не код.
Потом идёт план, и его читают. За анализом следует планирование: какие файлы будут затронуты, в каком порядке, какие ловушки известны, какие решения ещё открыты? Именно здесь всплывают вопросы, на которые лучше ответить до программирования («Должно ли это работать и в браузере?», «Что будет со старыми сохранениями?»). И только когда план готов, следует реализация, и это часто самая скучная часть всего дела. Так и должно быть.
Родственные вещи идут одной пачкой. Второе правило, которое экономит нам много времени: когда несколько проблем похожи или связаны между собой, например пять меню геймпада с одной и той же проблемой фокуса или пятнадцать находок из одного раунда тестирования, ИИ получает их одним заданием, а не пятнадцатью отдельными. Тогда ему нужно пройти по затронутому коду только один раз, решения подходят друг к другу, а не противоречат, и ничто не теряется между двумя заданиями.
Перед каждым релизом: два отдельных раунда проверки. После каждого крупного шага, и всегда перед тем, как новая версия попадёт к вам, мы ещё раз натравливаем ИИ на результат. Но с двумя намеренно раздельными проверками. Первая: действительно ли нужные функции и исправления сделаны полностью, или где-то ещё сидит недоделанный остаток, забытый крайний случай, недостающий перевод? Вторая, отдельным проходом: не породили ли изменения новые проблемы в других местах? Смешать оба вопроса в один не получается: кто ищет пробелы и побочный ущерб одновременно, находит половину того и другого. Заданные раздельно, эти два вопроса избавляют нас от огромного количества переделок; заметная доля того, что в примечаниях к релизу значится как «исправлено заодно», берётся именно из этих раундов проверки.
И в самом конце снова тестирует человек. Пятый шаг — это не фаза ИИ, а наша: ручное тестирование значит по-настоящему играть. Свежесобранная версия, настоящий геймпад, настоящий играющий ребёнок. Множество вещей, переживших любой анализ, умирает в первые пять минут на диване. Потому что вопрос, приятно ли это ощущается, не способен решить никакой анализ на свете.
Присмотритесь, и вы не найдёте в этом порядке магии ИИ, только старое доброе инженерное ремесло: сначала понять, потом спланировать, потом построить, потом проверить. А рамка вокруг всего этого у нас всегда одна: идея у человека, финальный тест у человека, а ИИ работает посередине. Нового здесь только то, насколько быстрым стал этот цикл. 🔍
Комментарии