Делаю движок для 3D-игр на веб (ч.2)
Движок рассчитан на то, что игры в нём делает не человек, а ИИ-агенты. Вот, что добавилось.
Анимация персонажа
Раньше игрок был просто капсулой. Теперь – скелетный человечек с idle/walk/run/jump/fall, плавными переходами и сохранением кадра анимации в save'ах. Чтобы не таскать в репе тяжёлые модели, агент собрал процедурного «boxbot'а» – блочного человечка прямо в коде (6 «костей», 5 клипов через keyframe-tracks).
Частицы
Простая CPU-система: пыль из-под ног, облачко на прыжке, искры на сборе.
Тестовая мини-игра
Обби-уровень целиком сделал агент. Я просто сказал «сделай уровень-обби как в Роблокс». Дальше агент всё сам: пилоны разной высоты, движущаяся платформа, лава с камнями-степпингами, чекпоинты с авто-сохранением, респаун со счётчиком смертей, финиш. Агент сам же протестировал и сбалансировал — погонял тестами, нашёл что прыжки натянутые, сжал расстояния. Потом написал AI-плейера который реально проходит уровень: смотрит мышью на цель, бежит на WASD и прыгает на Space.
Видео
Видео геймплея сделано и записано тоже агентом. Нормальное видео получилось только с третьей попытки. На видео результат прогресса по движку за два дня.
Студсы
Как в Роблоксе пока не получились. Попросил агента сделать «пупырышки» на кирпичиках. Накодил canvas-генератор, тайлится по размеру грани, но ощущения «лего» нет. Больше похоже на плитку с кружочками. Доделаем позже, нужна явная объёмность.
Делаю движок для 3D-игр на веб (ч.1)
Движок рассчитан на то, что игры в нём делает не человек, а ИИ-агент (Claude Code, Cursor и подобные). Видео примеров игр из движка будут в следующих постах.
Почему именно так. Обычные движки (Unity, Godot) – это визуальные редакторы для людей: окна, панели, мышка. ИИ-агенты умеют в них работать, но не идеально. Зато агенты отлично умеют редактировать текстовые файлы. Поэтому в моём движке вся игра – это просто папка с JSON-файлами (где что стоит) и маленькими JS-файлами (как оно себя ведёт). Открыл, поправил текст – игра обновилась.
Что внутри. Картинку рисует Three.js, физику считает Rapier (тот же, что в коммерческих движках), всё работает прямо в браузере без установки.
Что уже умеет:
Игрок от 3-го лица: бегает, прыгает, камера за спиной
Физика, столкновения, триггеры
Анимации, звук с 3D-позиционированием, всплывающий интерфейс
«Префабы» – сделал шаблон врага один раз, расставил по уровням
Горячая перезагрузка: правишь сцену – игра меняется на лету, не теряя позицию игрока
Инспектор по кнопке F2 – видно все объекты, можно мышкой подвинуть
Главная фишка – отдельный мост к Claude Code / Cursor. Агент через него умеет: проверять сцены на ошибки и подсказывать опечатки, запускать игру в фоне без окна, нажимать кнопки за игрока, гонять «робот-плейтест» (сыграть 30 раз, посчитать сколько раз победил), делать скриншоты и смотреть на них своими глазами – то есть оценивать игру как игрок, а не как программист.
Размер: ~3000 строк ядра, 50+ автотестов, всё локально, готовая игра собирается в обычный сайт и кладётся на любой хостинг.
Игры на этом движке пока очень примитивные получаются, потому что сделаны буквально только первые шаги.
Хочу сделать игру ( есть идея) не хочу рпгмэйкер
Коротко , нет опыта и образования в данной сфере , просто хочу попробовать сделать игру , не могу выбрать движок для новичка невдупленыша !
О задумке -2 д с элементами 3д в стиле квестов
Пиксель графика или нечто в этом роде
Может кто проходил или проходит этот путь , заранее спасибо
Картинка близко о чем я думаю
Стерильный дизайн vs дизайн 00-х
Делаем wellness-приложение с дракончиком-маскотом, и я поняла, что ужасно устала от слишком вылизанных «безопасных» дизайнов.
Мне нравится более дерзкий и странноватый вариант, а коллеги топят за милого.
Прикладываю три концепта. Какой из них реально цепляет взгляд и запоминается?
Только честно, я всё пойму.
Анимация похищения красного шарика и раскадровка svg ниже
Создание 3d приборов для игры
Всем, Ку!
Прежде всего хочется сказать огромное спасибо всем кто проявил интерес к прошлому выпуску. Честно говоря, это было неожиданно и крайне радостно! Спасибо за сообщения и общение, сейчас это очень ценно и придает силы)
Стартуем
Пройдя самый ранний этап этой истории, о котором я рассказывал, мы оказались на старте. Инвестор есть, договоренности в силе, работаем.
Первым делом решили создать все, что необходимо для капсулы Steam. Вникая в этот вопрос, пришли к выводу, что ролик, картинки и хорошее описание - наш вариант. Ничего в этом плане придумывать не стоит, все уже придумано.) Забегая вперед, скажу, что Steam меня поразил удобством, хотя на первый взгляд - глаза разбегались, но со временем появилось понимание принципов интерфейса и то, что это очень удобно.
Важное решение
Как я писал ранее, я не один десяток лет проработал в области компьютерной графики, решая задачи создания видео. Очевидно, что на этом этапе у нас было два пути:
Создать ролик-иллюзию не привязанный к игровому движку, используя различные производственные решения вплоть до ИИ. А уже после разбираться с тем как приблизить визуализацию к тому, что показали.
Собирать ровно столько игры, сколько позволит на этом этапе создать этот самый ролик и получить его с игрового движка.
С одной стороны первый вариант позволяет в более сжатые сроки получить капсулу и "глянцевый ролик", с другой- сама концепция имитации нам оказалась идеологически не близка. Более того, с точки зрения производства было понятно, что первый вариант это работа над роликом и только потом мы приступим к игре.
Решение было принято. Мы на этапе создания ролика уже создаем игру, разрабатывая 3д объекты и окружение.
Один из главных героев - прибор питания. В документации на первой странице крупно распечатан телефон пожарной службы.
Главный герой
Одна из фундаментальных игровых механик это работа с приборами. Настройка, создание цепей, использование и обслуживание. Фактически мы взаимодействуем с внешним миром через приборные цепи и позже получаем ответ извне, ну или сразу (смотря, что игрок решит выкинуть). Именно с разработки приборов мы стартовали.
Тех.процесс
Тестируя различные варианты в течение недели пришли вот к такому процессу:
blender - моделирование.
rizomuv - создание развертки.
3d painter - создание текстур.
Весь процесс в ускоренном варианте на примере микшера:
Позже к этому списку мы добавим plasticity, позволяющий очень быстро работать с формой.
Кстати и rizomuv и plasticity имеют "бриджи" для blender, что делает работу значительно удобнее.
На первый прибор потратили около трех дней (без учета поиска), позже вышли на прибор - день.
Оптимизация
В blender'е есть хороший инструментарий для создания библиотек объектов. После первой пары приборов стало понятно, что есть ряд элементов, которые точно будут повторяться. Болты, заклепки, элементы серий и пр. Для ускорения процесса и удобства, начали собирать небольшую библиотеку из собственных объектов.
Касательно части текстур в 3d painter'е создали шаблон для выгона текстурных карт. Опять же методами тестирования пришли к тому, что жмем в jpg все кроме нормалей (тут без вариантов).
Так же решили на раннем этапе работать с оптимизацией, и не тащить на движок мегабайты) Прямо в самом 3d painter'е можно порезать форматы того, что явно не нуждается в 2к.
Тут, конечно, можно много рассуждать на тему текстурных атласов, но поскольку финальная сборка приборов происходит на движке (ручки, переключатели и пр. отдельные классы), мы решили не зашивать целый прибор в одну текстуру, так как есть возможность пере-использования элементов, что может дать прирост производительности.
Средний размер объекта с текстурами получился от 10 до 30 Мб. в зависимости от прибора.
Заключение
Вот такой процесс нашли по созданию приборов, сейчас он немного меняется от прибора к прибору, но фундамент остается крепким)
Пишите, кому интересно, буду рад обсудить и пообщаться!
На финишной, перед роликом протестировали VR на rtx 3060ti. Было интересно посмотреть на нагрузку и оказаться в том мире, что создаем. Нагрузка показала, что вариант более, чем рабочий, а погружение- что с объемами все как надо.
Steam:










