3DPrompt.
GitHub
Вернуться в библиотеку
GPT-6 AstraОписание для вдохновения

ODD ARMS — Игра на выживание со странным оружием

Создайте трёхминутную игру на выживание на Three.js: игрушечный герой с банановыми клинками, тостерами и вантузами сражается с заводными монстрами на верстаке. Игроки могут создать собственного героя или оружие в Tripo Studio, импортировать GLB и начать игру.

ODD ARMS — Игра на выживание со странным оружием

Об этом примере

Отправная точка на основе публичного проекта автора, а не дословный оригинальный промпт. Ваш результат может отличаться.

Написано автором на основе исходного кода ODD ARMS (v0.2.0, commit 76df11f) и прохождения odd-arms.tripo.page в реальном времени 2026-09-18; все числа взяты из кода игры.

Three.jsигра на выживаниеавтоатакастранное оружиеигрушечная диорамаTripo Studioимпорт GLBсобственный герой

Промпт

# ODD ARMS — Твоя идея. Твой герой. ## 1. Цель Весь игровой интерфейс должен быть на английском языке (добавьте японский как необязательный язык, который можно выбрать в переключателе). Создайте полноценную браузерную игру на выживание длительностью три минуты в жанре «орды с автоатакой»: игрок выбирает игрушечного героя и два необычных оружия, а затем выживает 180 секунд в окружении стай монстров на верстаке мастера. Оружие атакует автоматически; игроку нужно только двигаться, делать рывки, собирать кристаллы, выбирать улучшения и выпускать заряженную нову. Главная особенность — персонализация: игроки могут создать собственного героя или оружие в Tripo, скачать GLB и добавить его в игру. Используйте https://odd-arms.tripo.page/ и предоставленные референсы для финального результата. Укажите авторство Deniffer: https://x.com/lumina__team. ## 2. Визуальное направление Представьте игру как миниатюрную игрушечную диораму, показанную с фиксированной трёхчетвертной камеры сверху, которая следует за героем. Игровое поле — тёмно-синий коврик для раскроя со слабой сеткой и напечатанными угловыми метками «ODD ARMS», лежащий на тёплом деревянном столе. Край стола заставлен крупными принадлежностями для рукоделия (катушками ниток, шкатулками с декоративными латунными розетками, кожаным скрученным чехлом для инструментов, латунной настольной лампой, деревянным игрушечным поездом и деталями игрушек), чтобы арена воспринималась как настоящая столешница. Используйте тёплый ключевой свет со стороны лампы, мягкий заполняющий свет, контактные тени и лёгкое свечение; персонажи должны быть глянцевыми, массивными и похожими на коллекционные фигурки, с насыщенными цветами. Интерфейс: кремово-белые скруглённые карточки с тёмно-синим текстом и кораллово-оранжевым акцентом; для заголовков — плотный узкий дисплейный шрифт («LET'S MAKE SOME TROUBLE.»), для основного текста — чистый узкий гротеск. В бою: карточка здоровья в левом верхнем углу, под ней счётчик серии, по центру сверху таймер «SURVIVE THE WEIRD», справа сверху — название волны, звук, настройки и Pause, справа — число поверженных врагов, по центру снизу — шкала уровня/опыта, слева снизу — три плашки оружия (orbit / returning / shooter с уровнями), справа снизу — управление и время восстановления рывка, над ними — плашка «Q NOVA READY!». Добавьте динамичные эффекты: числа урона, критические попадания, squash-and-stretch для врагов, отбрасывание, частицы при разрушении и лёгкую тряску камеры (отключайте тряску при включённом prefers-reduced-motion). ## 3. Мир Одна квадратная арена; ограничьте перемещение героя диапазоном ±23 единиц по обеим осям. Коврик для раскроя заполняет игровую область, а стол и реквизит находятся за пределами ограничения и служат только декорациями (столкновений с ними нет). В начале арена пуста, затем враги появляются по краям: на кольце в 12–16 единицах от героя (8–11 единиц в первую секунду) и движутся прямо к нему. Каждые 22 секунды происходит нашествие: полный круг врагов появляется на радиусе 13. Под текущей позицией героя появляются красные предупреждающие круги (первый на 28-й секунде, затем каждые max(4.4, 9 − t/50) с) и взрываются через 2 с. ## 4. Список ассетов Подготовьте стабильные слоты моделей: каждый слот должен загружать один GLB, центрировать его, автоматически масштабировать до заданной высоты и при ошибке загрузки переключаться на простой плейсхолдер. Герои (10, `hero:<id>`) — массивные игрушечные фигурки с легко различимым силуэтом: - `cat` Космокот — рыжий полосатый кот в белом скафандре и стеклянном шлеме. HP 100, скорость 6.8, магнит ×1.35, время восстановления рывка 2.4 с. - `frog` Лягушка-боец — зелёная лягушка в красных боксёрских перчатках. HP 130, скорость 6.8, урон от рывка 135. - `shroom` Грибной герой — гриб с красной шляпкой и небольшим плащом. HP 90, скорость 7.6, время восстановления рывка 1.8 с. - `capybara` Спокойная капибара — расслабленная капибара из горячего источника. HP 160, скорость 5.8, магнит ×1.15, время восстановления рывка 3 с, урон от рывка 110. - `ramen` Рамен-ронин — самурай с дымящейся миской рамена. HP 105, скорость 7.2, время восстановления рывка 2.2 с, урон от рывка 120. - `penguin` Офисный пингвин — пингвин в рубашке и галстуке. HP 80, скорость 7.1, время восстановления рывка 1.5 с, урон от рывка 75. - `axolotl` Аксолотль — розовый аксолотль-исследователь. HP 85, скорость 7.3, магнит ×1.6, урон от рывка 75. - `avocado` Авокадо-боксёр — авокадо-боксёр с косточкой-сердцевиной. HP 120, скорость 6.4, время восстановления рывка 2.1 с, урон от рывка 130. - `robot` Заводной бот — жестяной робот с заводным ключом. HP 115, скорость 6.2, время восстановления рывка 2.8 с, урон от рывка 165. - `snail` Рыцарь-улитка — рыцарственная улитка с раковиной размером с домик. HP 190, скорость 5.2, магнит ×1.2, время восстановления рывка 3.2 с, урон от рывка 120. Урон от рывка по умолчанию равен 90, если он не указан отдельно. Оружие (12, `weapon:<id>`), распределённое по слотам атак: - Orbit: `sardine` Сардинная бензопила (3 рыбки, радиус 2.9, урон 1, скорость 1.2); `cactus` Кактусовые дубинки (2 дубинки, радиус 3.3, урон 1.65, скорость 0.78, радиус попадания 1.25, отбрасывание 1.5); `plunger` Патруль вантузов (4 вантуза, радиус 2.25, урон 0.85, скорость 1.5). - Returning: `banana` Банановые клинки (2, урон 1, скорость 1.25); `pizza` Нож для пиццы (1 большой диск, урон 1.5, скорость 0.82, радиус попадания 1.65); `croissant` Круассан-клинки (3, урон 0.75, скорость 1.45); `boomerang` Бумеранг (1, урон 1.15, скорость 1.6); `donut-disc` Пончик-диск (1, урон 1.5, скорость 0.9, радиус попадания 1.3). - Shooter: `duck` Ракета-утка (самонаводящаяся, радиус взрыва 2, интервал 0.42 с); `toaster` Злой тостер (веер из 3 пробивающих выстрелов, урон 0.7); `teapot` Яростный чайник (2 медленных выстрела, радиус взрыва 2.8, интервал 0.8 с); `bubble-gun` Пузырьковый пистолет (2 пробивающих пузыря, урон 0.45, интервал 0.3 с). Стандартная экипировка: Космокот, Банановые клинки и Злой тостер; оружие orbit открывается при первом улучшении. Враги (3, `enemy:<id>`) — заводные игрушечные монстры: `red-chomper` (круглая красная игрушка с зубами, обычный враг, базовые HP 30, скорость 2.35), `spring-rabbit` (жёлтый кролик на пружинящих ногах, быстрый, базовые HP 23, скорость 3.5), `crown-bear` (большой лоскутный медведь в короне, танк, базовые HP 130, скорость 1.7, появляется после 60 с с вероятностью 17%, выпадает 3 XP). Реквизит сцены (`prop:<id>`): верстак, рама и угловые пластины коврика для раскроя, настольная лампа, игрушечный поезд, катушки ниток, декоративные шкатулки с розетками, чехол для инструментов, лоток с деталями игрушек. Коврик, сетка, кристаллы, снаряды, предупреждающие круги, частицы, источники света и интерфейс должны быть процедурными. ## 5. Игровой процесс и обратная связь Поток: Персонаж → Экипировка (одно возвращающееся оружие + одно стрелковое) → Готово (3D-превью героя на поворотном столике с выбранным оружием, вращение перетаскиванием) → «Let's play». На каждом шаге онбординга показывайте только соответствующую категорию, её описание, стиль игры и слабость. Запоминайте последнюю экипировку. Управление: WASD/стрелки — движение; Space — рывок в направлении движения (скорость ×3.7, краткая неуязвимость, наносит урон врагам в радиусе 2 единиц один раз за рывок); Q — выпускает новую при энергии 100 (радиус 11, урон 200, сильное отбрасывание, притягивает кристаллы); 1/2/3 или щелчок — выбор улучшения; Esc — пауза; автоматическая пауза при потере фокуса окном. На мобильных устройствах: слева виртуальный аналоговый джойстик, справа кнопки Dash и Nova с кольцами восстановления/заряда, мультитач, чтобы джойстик и кнопки работали одновременно; в портретной ориентации улучшения расположены над джойстиком, в альбомной — между большими пальцами. Правила: HP врага = base × (1 + t/260) × 1.3. Интервал появления max(0.18, 0.52 − 0.0016·t) с, максимум 180 врагов. Урон при контакте — 9 (18 от медведя), после попадания действует неуязвимость 0.85 с. Каждое убийство добавляет 2 единицы энергии и оставляет кристалл; каждое 9-е попадание одним оружием становится критическим и наносит ×1.7 урона. Серия из 25 убийств запускает бешенство на 5 с (скорость атаки ×1.65, время восстановления 13 с); получение урона сбрасывает серию. Опыт для уровня: 20, затем round(need × 1.4 + 10). Повышение уровня не ставит игру на паузу: варианты появляются в виде неблокирующих карточек выбора. При первом улучшении предлагаются три вида оружия orbit; после этого предлагайте три из следующих вариантов: Перегрузка орбитеров (+1 орбитер, максимум 7, +22% урона), Ещё один круг (быстрее, дольше и мощнее возвращение), Полный залп (более быстрая стрельба, +20% урона, больше снарядов), Живём один раз (+10% скорости, +30 HP). Каждый выбор восстанавливает 8 HP. Концовка: выжить 180 с → «Beautifully weird. You made it.»; HP 0 → «That was a glorious mess.» В обоих случаях покажите число поверженных врагов, лучшую серию и время выживания, а также приглашение создать собственный объект. Кнопки: Run it back / Change loadout. Сделайте игру своей: из экранов экипировки, паузы и результатов кнопка «Create my hero / weapon in Tripo» открывает https://studio.tripo3d.ai/ в новой вкладке; «Import GLB» загружает локальный .glb (≤15 MB, только встроенные текстуры, разбор в браузере, без загрузки на сервер), центрирует и масштабирует его, заменяя только внешний вид выбранного героя или оружия и сохраняя его характеристики. Показывайте понятные сообщения об ошибках для недопустимых файлов и сохраняйте исходную модель. Сравнение моделей: переключатель в шапке «Tripo3D ⇄ Simple3D (Blender)» заменяет всех героев, оружие, врагов и реквизит на соответствующий набор простых примитивов, не сбрасывая текущий забег. Перед заменой загрузите весь альтернативный набор; если не загружается хотя бы один файл, сохраните текущий набор. ## 6. Техническая реализация Vite + ванильный JavaScript + Three.js с GLTFLoader, освещением RoomEnvironment и тональным отображением ACES. Храните симуляцию в чистом модуле с фиксированным шагом и внедряемым источником случайных чисел, чтобы в тестах можно было симулировать полные забеги; рендерер только читает состояние. Кэшируйте каждый GLB один раз и клонируйте его для экземпляров; для повторяющихся декоративных объектов используйте инстансинг или LOD. Ограничьте pixel ratio (1.5 на мобильных устройствах, снижайте до 1 во время плотных волн), обновляйте тени не чаще 30 раз в секунду и меняйте текст HUD только при изменении значений. Разделите коллизии (простые круги) и визуальные меши. Шрифты, модели и текстуры должны поставляться с того же origin, чтобы сборка представляла собой статическую папку. Поддерживайте браузеры на компьютерах и телефонах шириной от 320 px, включая альбомную ориентацию и safe area. Сложность моделей должна соответствовать их размеру на экране; жёсткого ограничения на число полигонов нет. ## 7. Готово, когда - Полностью работает весь поток: онбординг, победа и поражение в бою, пауза/возобновление, перезапуск с той же экипировкой и смена экипировки. - Все 10 героев и 12 видов оружия загружаются и работают в соответствии с указанными характеристиками; 180-секундный забег с любой экипировкой завершается без ошибок. - Работают клавиатурное и сенсорное управление, включая одновременное использование джойстика и Dash. - Импорт GLB заменяет внешний вид выбранного героя или оружия и корректно отклоняет повреждённые файлы. - Переключатель Tripo3D / Simple3D заменяет все модели прямо во время забега. - Начальный экран, экран боя и экран результатов соответствуют референсам; предоставьте запускаемый исходный код, команду запуска и статическую production-сборку.

Как использовать этот промпт

01

Начните с подходящего инструмента

Откройте привычного помощника для программирования или 3D-инструмент. Попробуйте модель, указанную в примере, и изучите инструкции по настройке в связанных проектах.

02

Выберите одно изменение

Замените объект, художественный стиль или окружение. Чётко опишите камеру и взаимодействие. Сначала создайте небольшую версию, затем улучшайте по одной детали.

03

Добавьте собственные объекты в сцену

Для своего персонажа или реквизита создайте 3D-модель по короткому описанию предмета или референсу, затем импортируйте её в проект.

Права на превью принадлежат соответствующим авторам. Перед повторным использованием кода или материалов проверьте первоисточник и лицензию проекта.