Делаю движок для 3D-игр на веб (ч.4)
Движок рассчитан на то, что игры в нём делает не человек, а ИИ-агенты. Вот, что добавилось в очередной итерации.
Жанровый фокус — инкрементальные симуляторы
Из всех жанров выбрал направление, которое в Roblox даёт самые играбельные синглплеер-игры за минимум усилий. Пока что движок затачивается под этот жанр.
Toolkit для жанра
В прошлой части садовод был самодостаточным, но при сборке второй и третьей игры выяснилось, что 60% кода каждый раз повторяется. Агент вытащил эти куски в движок: всплывающий «+1» текст над кликнутым объектом, угловые toast-уведомления, большой по центру reveal-эффект для эпических моментов, форматтер больших чисел (1.23K / 4.56M / 7.89B), автосейв по таймеру с версионированием схемы, поведения respawn-ноды и follower-пета, библиотека процедурных звуковых эффектов (coin / purchase / level-up / unlock — без бинарных файлов, через WebAudio). Третья игра стартует уже с 250 строк скриптов вместо 420.
Небольшие UI улучшения
HUD выглядел как CLI debug-overlay: моноширинный шрифт, плоские блоки, никаких эффектов. Переделали: жирный системный sans с чёрной обводкой текста, новый виджет button с rounded corners + hover/press состояниями + accent-полоской, currency-pill в углу (leaderstats-стиль с иконкой и значением), модальное окно с dim-backdrop, big center reveal для ASCEND-моментов.
Камера и звук
В Roblox-стиле free-cursor + правая кнопка крутит камеру. Реализовали как опцию controller.cameraMode: 'rmb-drag' рядом с дефолтным pointer-lock'ом. Курсор не залочивается — можно прицельно кликнуть на конкретную руду или питомца. Кадровая частота не падает при rmb-drag. Параллельно добавили camera.minY floor — камера больше не уходит под землю при больших pitch'ах (был баг: рейкаст для клика стартовал внутри collider'а земли).
Видео — Glow Rush, минутный playthrough
Записал агентом playthrough Glow Rush'а. AI реально играет: WASD ходит, клик-кликает по орбам (зелёные ×1, розовые ×2, золотые ×5), покупает Power/Speed/Magnet апгрейды как только хватает, ловит combo-streak с бонусом до +50%, нажимает ASCEND при 500 glow для большого celebrate-pop'а.
~8200 строк кода, 195 автотестов.
Лига Разработчиков Видеоигр
9.8K пост23.3K подписчиков
Правила сообщества
ОБЩИЕ ПРАВИЛА:
- Уважайте чужой труд и используйте конструктивную критику
- Не занимайтесь саморекламой, пишите качественные и интересные посты
- Никакой политики
СТОИТ ПУБЛИКОВАТЬ:
- Посты о Вашей игре с историей её разработки и описанием полученного опыта
- Обучающие материалы, туториалы
- Интервью с опытными разработчиками
- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе
НЕ СТОИТ ПУБЛИКОВАТЬ:
- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры
- Посты, единственная цель которых - набор команды для разработки игры
- Посты, не относящиеся к тематике сообщества
Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.
ЗАПРЕЩЕНО:
- Публиковать бессодержательные посты с рекламой Вашего проекта (см. следующий пункт), а также все прочие посты, содержащие рекламу/рекламные интеграции
- Выдавать чужой труд за свой
Подобные посты будут перемещены из сообщества в общую ленту, а их авторы по решению администрации могут быть внесены в игнор-лист сообщества.
О РАЗМЕЩЕНИИ ССЫЛОК:
Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:
- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества
- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз
- Cсылка размещается в формате: "Страница игры в Steam: URL"