2 сентября Google выпустила Gemini 3.8 Flash. В анонсе разработчики делали акцент на автономных агентах и решении сложных инженерных задач с длинным контекстом. Обещали серьёзный качественный скачок в кодинге. Журналист Habr, вдохновившись демонстрацией клона Minecraft, решил проверить, способна ли модель с нуля написать трёхмерный шутер от первого лица в стилистике тёмного фэнтези — в духе Doom, Heretic и Hexen. Условие: без готовых движков вроде Unity или Godot, только Three.js, нативный WebGL и самописный лаунчер на C#.

Эксперимент начался с базового каркаса: модель быстро создала сетку комнат, контроллер камеры с захватом курсора и простую отрисовку стен. Чтобы добиться эстетики классических ПК-игр, нейросеть использовала виртуальный буфер низкого разрешения 426×240 пикселей со ступенчатым масштабированием — картинка получила нужную пиксельную плотность без замыливания. Однако на этапе графических ассетов начались проблемы. Сгенерированные спрайты скелетов и демонов выглядели как плоские картинки, намертво прилипшие к белым фонам. При отображении через стандартную прозрачность Three.js вокруг костей оставался белесый ореол толщиной в три пикселя. Модель предложила скрипт на Python с попиксельным обходом и расширением маски — стало лучше.

ПроблемаРешение
Белый ореол вокруг спрайтовСкрипт на Python с попиксельным обходом и расширением маски
Лишний скелет на кадре выстрелаРучное удаление и пересборка вспышки
Слишком детализированный посохЦветовое квантование до 136×136 точек
Прозрачная перчаткаОтсечение фона строго по контуру
Босс пробивает потолокПоднятие высоты сводов до 7,5 метра

Следующая проблема возникла с кадром выстрела боевого посоха. В режиме покоя игрок видел латную перчатку и резное навершие с черепом. При нажатии кнопки атаки за посохом из ниоткуда появлялся полупрозрачный скелет, перекрывающий пол-экрана. Модель решила, что спецэффекту не хватает драматизма, и пририсовала мёртвого воина на задний план. Скелета пришлось стереть, а вспышку пересобрать с третьего раза. Оружие тоже выбивалось из стилистики: посох генерировался слишком детальным, напоминая современный 3D-рендер. Решение нашли через цветовое квантование — скрипт сжимал изображение до сетки 136×136 точек с адаптивной палитрой старых видеокарт, затем растягивал обратно методом ближайшего соседа.

Модель генерировала спрайты с белым ореолом и лишними деталями, потребовалась ручная доработка через альфа-маски.

Были и более тонкие баги. Латная перчатка героя просвечивала насквозь: модель выставила порог отсечения чёрного цвета на уровне 32 единиц яркости, а складки тёмной кожи на перчатке имели глубокий коричнево-чёрный оттенок. Алгоритм выжег более 60 тысяч тёмных пикселей внутри руки, приняв их за фон. Исправили, отсекая фон строго снаружи контура. Геометрия уровней тоже потребовала доработки. Автор выстроил четыре локации: Забытый склеп из серого песчаника, Затопленные катакомбы с зелёной водой, Зал жертвоприношений из кровавого камня и финальный Храм с колоннадами из чёрного обсидиана. Финального босса Архинекроманта Мортиса модель сделала ростом 5,5 метра, но архитектурный движок рассчитывал уровни под стандартную высоту стен 4,5 метра — босс застревал головой в потолке. Пришлось переделывать генератор карты, подняв своды финального уровня до 7,5 метра.

Эксперимент показал: Gemini 3.8 Flash умеет писать код и решать инженерные задачи, но без контроля человека не обойтись. Модель генерирует графику с артефактами, не учитывает геометрию уровней и требует итеративной доработки. Для опытного разработчика это инструмент ускорения, но для новичка — источник трудноуловимых багов. В целом, результат сопоставим с возможностями других LLM в кодинге, но заявленный «качественный скачок» пока не очевиден.