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 редактируемых меша. Для игровой версии ее экспортировали в виде модели с 14968 треугольниками, распределенными между восемью материальными группами.
Отдельно 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. Для этого достаточно попросить модель развернуть проект и создать публичную ссылку.
Читайте также


