OpenAI випустила гайд зі створення ігор за допомогою GPT-6 Astra
OpenAI опублікувала гайд зі створення браузерних ігор за допомогою моделі GPT-6 Astra. Компанія показала, як штучний інтелект може допомагати розробникам із проєктуванням механік, написанням коду, створенням 3D-моделей, тестуванням та оптимізацією продуктивності. Одним із прикладів стала гра Void Explorer з тисячами зоряних систем і планет.
Автор проєкту Томас Рікуард розповів у блозі OpenAI Developers, що у Void Explorer є 2048 зоряних систем і понад 10 тисяч процедурно згенерованих планет.
Гравець може обрати будь-яку видиму зірку як ціль і здійснити до неї переліт. Після прибуття можна увійти в атмосферу планети, приземлитися, вийти з корабля та досліджувати поверхню. Після цього передбачена можливість знову піднятися в повітря та продовжити подорож.
Однією з вимог під час розробки було зробити так, щоб усі об'єкти, які бачить гравець, залишалися досяжними. При цьому розробник хотів зберегти реалістичні відстані між об'єктами у всесвіті.
Для цього Astra запропонувала використовувати процедурну генерацію рельєфу та його поетапний рендеринг.
Гру написали на TypeScript і Vite. Спочатку для рендерингу використовували WebGL2 через Three.js. Згодом за рекомендацією Astra розробник перейшов на архітектуру WebGPU у Three.js. При цьому системи генерації всесвіту, навігації та створення рельєфу залишилися без змін.
Робочий процес, за словами Рікуарда, передбачав постановку завдань перед моделлю. Розробник описував бажану механіку та обмеження, а Astra пропонувала варіанти архітектури й генерувала необхідний код.
ШІ також використовували для пошуку візуального стилю. Спочатку модель створювала концепт-арти, після чого на основі обраного варіанта була підготовлена 3D-модель космічного корабля у Blender.
Вихідна модель у Blender містила 193 редаговані меші. Для ігрової версії її експортували у вигляді моделі з 14 968 трикутниками, розподіленими між вісьмома матеріальними групами.
Окремо Astra використовували для тестування гри. Розробник надав моделі доступ до внутрішнього стану проєкту через спеціальний JavaScript-інтерфейс.
Завдяки цьому ШІ міг запускати окремі тестові сцени, зокрема орбіту, імпульсний переліт, вхід в атмосферу та посадку на узбережжі. Модель також могла робити скриншоти, перевіряти готовність рельєфу та стежити за показниками продуктивності.
Після виявлення проблеми Astra могла внести зміни у код, перезапустити тестування та перевірити результат. Для автоматизації тестів використовували Vitest і Playwright.
Під час роботи над грою Astra також виконувала оптимізацію.
Зокрема, обсяг даних рельєфу, які передавалися системі, вдалося скоротити приблизно з 35 МБ до 15 МБ.
Кількість скасованих завдань генерації рельєфу за тестовий проміжок скоротилася з 6074 до 13. За даними розробника, цього вдалося досягти після стабілізації алгоритму вибору рівня деталізації рельєфу.
Після заміни моделі корабля кількість draw calls зменшилася зі 119 до 77. Водночас кількість трикутників зросла з 48 809 до 61 092.
Середній інтервал між кадрами у тестовому середовищі скоротився з 251,48 мс до 199,26 мс.
Зменшення обсягу даних рельєфу забезпечили завдяки індексованим мешам. Вони дають змогу повторно використовувати спільні вершини сусідніх трикутників замість дублювання однакових даних.
OpenAI показала ще дві гри
Окрім Void Explorer, компанія продемонструвала ще два проєкти, створені за подібним принципом.
Sunwake — гра про керування невеликим човном на процедурно згенерованому океані. Візуальна модель хвиль і фізика плавучості тут використовують одну й ту саму систему.
Hollowflux — 2D-екшн-RPG про підземну світну річку. У грі сітка комірок відстежує рівень води, течії, піну та електричний заряд. Дії персонажа під час бою можуть впливати на поведінку води.
Усі три проєкти доступні безпосередньо у браузері.
OpenAI також зазначає, що готову браузерну гру можна опублікувати за допомогою плагіна Sites. Для цього достатньо попросити модель розгорнути проєкт і створити публічне посилання.
Читайте також