Делаю движок для 3D-игр на веб (ч.5)
Движок рассчитан на то, что игры в нём делает не человек, а ИИ-агенты.
Трамплины
Добавил «трамплин» как готовый кирпичик. Раньше, чтобы сделать прыжковую платформу, агенту приходилось писать отдельный скрипт, ловить касание игрока, спорить с физикой за тайминги. Теперь это одна строчка в описании объекта — указал силу подброса и кулдаун, готово.
Мульти-прыжок
Игрок может прыгать в воздухе сколько угодно раз, и это число привязано к игровой валюте. Прокачал «силу прыжка» — получил три прыжка подряд. Прокачал ещё — пять.
3D-надписи прямо в сцене
Раньше любую подпись приходилось вешать как HTML поверх экрана и каждый кадр считать, куда её спроецировать. Теперь надпись — это обычный объект сцены. Можно подписать «×100» над платформой, «WIN» над финишем, имя над персонажем — и оно висит в мире, само поворачивается к камере.
Инструменты для проверки уровней
Сделал три утилиты, которые гоняются перед коммитом любой правки сцены.
Первая — рендерит текстовое представление сцены сверху: где что стоит, какие стенки, какие триггеры. Специально для агентского глаза: теперь Claude «смотрит» на уровень не через скриншот, а через структуру, и перестаёт выдумывать координаты из головы.
Вторая — ищет типовые ошибки геометрии: пересекающиеся стены, невидимые коллайдеры, сенсор под полом, сенсор тоньше игрока, зона до которой не дойти.
Третья — запускает виртуального бота, который пробует дойти от старта до финиша. Не доходит за 30 секунд — значит уровень непроходим без читов, и это повод не коммитить.
Профайлер кадра
Раньше FPS-overlay показывал среднее число — а это бесполезно: рывки прячутся внутри среднего. Теперь видно медиану, 95-й перцентиль, максимум и сколько раз за минуту кадр прыгнул выше 33ms. Сразу понятно, где у игрока подвисает.
На видео – сырой прототип идеи, которую придумал и реализовал агент, он же сделал видео. Пока все оч сыро, но потихоньку двигаюсь к своей задумке с полностью автономной студией разработки игр. Впереди еще очень много работы.
~10 800 строк ядра, 339 автотестов.
Лига Разработчиков Видеоигр
10.2K постов23.4K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"