8

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

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

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

Иерархия объектов

Раньше каждая штука в сцене висела сама по себе – нельзя было сказать «эта телега, а это её колёса, двигай вместе». Теперь можно: ставишь объекту parent: car, и он становится «приклеенным» к родителю. Подвинул машину – колёса поехали с ней. Удалил машину – колёса исчезли сами. Камера, физика и сейвы это понимают.

Сейвы

Любая игра теперь сохраняется в браузер одной строчкой api save. F5 – состояние возвращается: монеты, прогресс, анимации, иерархия. Каждая игра пишется в свой ключ, не пересекаются.

Производительность

Движок упёрся в количество draw calls – Three.js на каждый объект делает отдельный вызов GPU. Большие сцены проседали: 300 кубов = 30 fps. Сделал три слоя оптимизации: одинаковые объекты теперь отрисовываются одним вызовом, для процедурных деревьев/заборов листья сливаются в одну геометрию с per-vertex цветом. Демо-сцена «деревня» (192 объекта) упала с 480 → 199 draw calls. На реальной видеокарте уверенные 60 fps.

Игра-инкрементал

Чтобы проверить всё это в одной игре, агент сделал «садовод». Сажаешь куст → растёт через tween-анимацию → собираешь → монеты → разблокируешь цветы и деревья → апгрейды (удобрение, лучший сорт, авто-сборщик). Полностью персистится – закрыл вкладку, вернулся, всё на месте. Под капотом одновременно работают: иерархия (растение – child грядки), сейвы, частицы (искры при сборе, капли воды при посадке), tween (рост), picking (клик в центре экрана через рейкаст).

Видео – агент сам играет, ходит, прыгает, переключает три вида растений и собирает урожай.

~6900 строк кода, 136 автотестов.

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

ЗАПРЕЩЕНО:

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

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

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


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

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

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

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

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

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

"~6900 строк кода" не в количестве строк счастье, а в качестве кода.

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

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

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

Теги

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

Сообщества