Делаю движок для 3D-игр на веб (ч.2)
Движок рассчитан на то, что игры в нём делает не человек, а ИИ-агенты. Вот, что добавилось.
Анимация персонажа
Раньше игрок был просто капсулой. Теперь – скелетный человечек с idle/walk/run/jump/fall, плавными переходами и сохранением кадра анимации в save'ах. Чтобы не таскать в репе тяжёлые модели, агент собрал процедурного «boxbot'а» – блочного человечка прямо в коде (6 «костей», 5 клипов через keyframe-tracks).
Частицы
Простая CPU-система: пыль из-под ног, облачко на прыжке, искры на сборе.
Тестовая мини-игра
Обби-уровень целиком сделал агент. Я просто сказал «сделай уровень-обби как в Роблокс». Дальше агент всё сам: пилоны разной высоты, движущаяся платформа, лава с камнями-степпингами, чекпоинты с авто-сохранением, респаун со счётчиком смертей, финиш. Агент сам же протестировал и сбалансировал — погонял тестами, нашёл что прыжки натянутые, сжал расстояния. Потом написал AI-плейера который реально проходит уровень: смотрит мышью на цель, бежит на WASD и прыгает на Space.
Видео
Видео геймплея сделано и записано тоже агентом. Нормальное видео получилось только с третьей попытки. На видео результат прогресса по движку за два дня.
Студсы
Как в Роблоксе пока не получились. Попросил агента сделать «пупырышки» на кирпичиках. Накодил canvas-генератор, тайлится по размеру грани, но ощущения «лего» нет. Больше похоже на плитку с кружочками. Доделаем позже, нужна явная объёмность.