Аналіз, план, код, перевірки: наш ритм розробки зі ШІ 🤖
Ми ніколи не приховували, що багато користуємося ШІ у Blocks Beyond The Stars — без нього гру такого розміру як проєкт після роботи просто не потягнути. Але для нас «розробка зі ШІ» не означає: набрати побажання, взяти результат, сподіватися. За місяці склався сталий порядок, який звучить напрочуд старомодно — і працює саме тому. Сьогодні розповімо про нього докладно.
Усе завжди починається з людини та ідеї. Перш ніж ШІ щось зробить, хтось чогось захотів або щось помітив: гравець клавішею відгуку повідомляє, що тварини з'являються всередині його стін — або ми самі, коли Justus посеред гри каже, чого йому бракує. ШІ тут не вигадує завдань. Йому їх дають.
Далі ШІ працює за фазами. Їх чотири, завжди в одному порядку: аналіз, планування, реалізація, перевірка. (П'ятий крок, ручне тестування, настає потім — але це знову справа людини, про це за мить.) Найважливіший трюк — те, чого ШІ не можна: одразу писати код. ШІ, що відразу починає друкувати, вирішує не ту проблему з вражаючою швидкістю. Тому кожне більше завдання починається з аналізу — що вже є, де насправді причина, що ще з нею пов'язано? Результат — текст, а не код.
Потім іде план — і його читають. Після аналізу йде планування: які файли буде зачеплено, у якому порядку, які пастки відомі, які рішення ще відкриті? Саме тут спливають запитання, на які краще відповісти до програмування («Чи має це працювати й у браузері?», «Що буде зі старими збереженнями?»). Лише коли план готовий, настає реалізація — і це часто найнудніша частина всього. Саме так і має бути.
Споріднене йде одним пакетом. Друге правило, що заощаджує нам багато часу: коли кілька проблем схожі або пов'язані — п'ять меню геймпада з однією й тією самою проблемою фокусу, чи п'ятнадцять знахідок з того самого раунду тестів — ШІ отримує їх зв'язаними в одне завдання, а не п'ятнадцятьма окремими. Тоді йому треба пройти зачеплений код лише раз, рішення пасують одне до одного, а не суперечать, і ніщо не випадає між двома завданнями.
Перед кожним релізом: два окремі раунди перевірки. Після кожного більшого кроку роботи — і завжди перед виходом нової версії до вас — ми ще раз пускаємо ШІ на результат. Але з двома свідомо окремими розслідуваннями. Перше: чи цільові функції й виправлення справді повністю готові — чи десь ще сидить напівготовий залишок, забутий крайній випадок, відсутній переклад? Друге, окремим проходом: чи не спричинили зміни нових проблем деінде? Змішати обидва в одне запитання не вийде — хто шукає прогалини й побічну шкоду одночасно, знаходить половину одного й половину іншого. Поставлені окремо, ці два запитання заощаджують нам величезну кількість переробок; чимала частка речей, що в нотатках до релізу зазначені як «виправлено принагідно», походить саме з цих раундів перевірки.
А в самому кінці людина тестує знову. П'ятий крок — не фаза ШІ, а наш: ручне тестування означає по-справжньому грати. Свіжозбудована версія, справжній геймпад, справжня дитина за грою. Багато речей, що переживають будь-який аналіз, гинуть за перші п'ять хвилин на дивані. Бо чи відчувається це правильно — запитання, на яке жоден аналіз у світі не відповість.
Придивіться — і ви не знайдете в цьому порядку жодної магії ШІ, лише споконвічне інженерне ремесло: спершу зрозуміти, потім спланувати, потім збудувати, потім перевірити. А рамка навколо всього для нас завжди та сама: ідею має людина, фінальний тест робить людина — ШІ працює посередині. Нове лише те, наскільки швидким став цей цикл. 🔍
Коментарі