6

Делаю движок для 3D-игр на веб (ч.6)⁠⁠

Серия Делаю движок для 3D-игр на веб

Движок рассчитан на то, что игры в нём делает не человек, а ИИ-агенты.

Времени на движок у меня мало, основное уходит на OfferClaw. Поэтому работаю иначе: не пилю одну фичу до блеска, а гоняю много дешёвых экспериментов, чтобы нащупать те немногие решения, которые стоит тащить в долгую. Часть экспериментов закономерно идёт в мусорку, и это нормально, так и задумано. Ниже и то, что выжило, и то, что выкинул.

Веб-редактор, человек и ИИ в одном пространстве

Раньше игру можно было только править текстом и смотреть результат. Теперь есть полноценный редактор прямо в браузере: дашборд со всеми играми, по сцене летаешь как в Unity, двигаешь объекты стрелками-гизмо, есть undo&redo и история правок. Главное, что рядом работает ИИ-агент и ты видишь это вживую: его правки появляются в сцене, очередь его задач сбоку. Один и тот же 3D-мир как общий стол для меня и для агента.

Картинка стала чуть живее

Игры всё ещё выглядят просто, но я добавил базовую графику, чтобы они не были совсем серыми: лёгкое свечение, нормальный свет и отражения, процедурное небо, более чёткий объёмный текст, обводка объектов. Плюс библиотека процедурных объектов (кристаллы, камни, столбы, фонари), так что игре не нужны тяжёлые модели, всё генерится кодом.

Игры собирает конвейер, и теперь он умеет себя проверять

Игры я и раньше собирал не вручную, а через пайплайн: раскладка уровня, генерация декораций, палитры под общий стиль. Новое в этих неделях это «утверждения» (claims): машинно-проверяемые факты про игру, которые она обязана выполнять до коммита. Например «до финиша реально дойти в пределах высоты прыжка» или «глубокая шахта экономически выгоднее поверхностной». Если игра не удовлетворяет утверждению, коммита нет. Идея простая: сборка должна доказать заявленное, а не «вроде работает».

Бот, который играет за разные типы игроков

Сделал симулятор персон: он гоняет игру без окна за новичка и за спидранера и сам проверяет темп. На свежей игре-шахте он сразу нашёл проблему, которую я не видел: копать глубоко экономически бессмысленно, выгоднее тупо гриндить поверхность. Перебалансировал, глубина стала иметь смысл. Баланс ловит машина, а не я вручную.

Что не взлетело

Декларативный «язык логики». Пробовал слой, где агент описывает «событие, действие» (нажал, дал монету), чтобы вообще не писать код. Замерил на нескольких играх: склейку простых событий ловит, но как полноценный язык упирается в потолок быстро. В итоге оставил его не как замену коду, а как страховку-линтер, который ловит висящие и мёртвые связи. Главным инструментом не стал.

Визуальный граф логики (ноды-стрелочки, как в Blueprints). Собрал прототип, поигрался, выигрыша против простого текста не дал. Запарковал на отдельной ветке.

—

На видео очередной пример игры, которую полностью сделал агент и сам снял видео. Все еще примитивно, но с каждым шагом мне нравится все больше.

~17 000 строк ядра, 700+ автотестов.

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции

- Выдавать чужой труд за свой

Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"

0
Автор поста оценил этот комментарий

"игры в нём делает не человек, а ИИ-агенты" - очень интересная идея. Было бы круто еще в таком генераторе игр иметь под рукой библиотеку тайлов / ассетов / звуков, чтобы игру сразу можно было наполнять. Потому что для обычного пользователя далёкого от разработки игр и разработки в целом будет барьером куда-то идти искать

раскрыть ветку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества