Захищайте орла на безкрайніх трав’янистих, засніжених і промислових полях бою або на 35 класичних картах. Зберіть десять припасів і знищуйте важкі ворожі танки, для знищення яких потрібно чотири влучання.
Початкове завдання на основі публічного проєкту автора, а не дослівний оригінальний промпт. Ваш результат може відрізнятися.
Специфікація реконструкції, створена на основі локально написаного проєкту Three.js зі станом runtime commit 670383f86f56c61e29e10d12424addf6f8defbe9 і перевіреного публічного ігрового процесу. Незалежний фанатський триб'ют Battle City (1985, Namco). Дані класичних мап і хвиль: gunnerson/battlecity (MIT); зібраний звук: JustoSenka/BattleCity (репозиторій MIT). Сімнадцять моделей згенеровано за допомогою Tripo P2. Це специфікація, створена на основі проєкту, а не дослівний оригінальний промпт для генерації.
1. Мета проєкту
Створіть Battle City 3D — браузерну гру про захист бази танками, натхненну класичною грою для Famicom 1985 року. Гравець керує танком, знищує хвилю з 20 ворогів, збирає припаси й захищає штаб із орлом. Відтворіть поточну перспективну 3D-версію, показану в референсних матеріалах, включно з нескінченною кампанією на основі seed і 35 класичними схемами на вибір. Збережіть зрозумілі аркадні правила, але надайте танкам, стінам і декораціям справжньої глибини.
2. Візуальний стиль
Використовуйте PerspectiveCamera у Three.js із кутом огляду 60 градусів. Стандартна камера поля бою розташована позаду й над гравцем, приблизно за 13 світових одиниць, на висоті 0,43 радіана. Плавно стежте за позицією танка й точкою перед ним; камера не повинна автоматично повертатися під час розвороту танка. Додайте вищу тактичну точку огляду, ручне орбітальне обертання перетягуванням і масштабування колесом миші. Для руху та стрільби використовуйте чотири основні осі мапи. Після орбітального обертання зіставляйте клавіші напрямку з найближчим основним напрямком відносно камери; ніколи не перетворюйте натискання клавіш на рух по діагоналі. Напрямок корпуса негайно узгоджуйте з напрямком пострілу, а висоту снаряда й дульного спалаху калібруйте відповідно до реальної гармати кожної моделі.
Використовуйте приземлені гусеничні танки, металеві башти, теракотову цеглу, темні сталеві блоки, блакитну воду, невисоку рослинність і відбивний лід. Продовжуйте землю за межами ігрової зони — до дерев, зруйнованих будівель і серпанку. Використовуйте тепле спрямоване освітлення, м’які тіні, заповнювальне освітлення, тонмапінг ACES і стримані дульні спалахи, віддачу, іскри та уламки, що відскакують. У снігових сценах змінюйте палітру землі й дерев; на промислових етапах надавайте перевагу сталі та зруйнованим будівлям.
Оформіть гру в темно-оливковому командному інтерфейсі з тепло-жовтою основною дією, рахунком, спільним запасом життів, піктограмами ворогів, що залишилися, назвою етапу та радаром. Розмістіть великий перемикач моделей Tripo 3D / Three.js над полем бою; він має показувати вибраний режим і обертальний попередній перегляд танка. Додайте локалізований ілюстрований довідник припасів та індикатори ефектів із таймером. На вузьких екранах залишайте видимими ігрове поле й основні сенсорні елементи керування.
3. Світ і сцени
Представте поле бою у вигляді сітки 26 на 26 тайлів, із напівшириною колізії танка 0,72. Розмістіть орла в точці (13,25), оточивши його U-подібною обороною з руйнівної цегли. Точки появи гравців: (9,25) і (17,25); ворота ворогів: (1,1), (13,1) і (25,1).
Передбачте дві кампанії: усі 35 класичних схем із таблицями хвиль по 20 ворогів і нескінченний генератор на основі seed, що циклічно змінює біоми — трав'яний, сніговий і промисловий. Генеруйте з'єднані коридори, достатньо широкі для всього корпуса, із прохідними сполученнями між точками появи гравців, воротами ворогів і місцями появи припасів. Додайте зміщене центральне сталеве укриття, щоб перекрити пряму лінію вогню від точки появи до орла, але зберегти доступ між вулицями. Дозвольте вибирати початковий біом або класичний етап і повторно генерувати випадкову мапу. Переносьте seed проходження, рахунок, життя та покращення гравців, які вижили, на наступний етап.
Цегла руйнується; сталеві блоки зупиняють звичайні снаряди й танки; вода блокує танки, але пропускає снаряди; рослинність приховує моделі ворогів; лід зменшує зчеплення. Віддалене оточення має бути декоративним і не впливати на ігрові колізії.
4. Перелік ресурсів
Використовуйте ці стабільні слоти 3D-моделей, які можна замінювати незалежно. Спочатку підготуйте моделі гравця, ворога, важкого танка й орла, а потім усі десять моделей припасів. Розміщуйте кожен ресурс на землі за його найнижчою точкою та нормалізуйте його орієнтацію, центр і масштаб. Повторно використовуйте шаблони, а не завантажуйте окрему модель для кожного ворога.
- player: гусеничний танк гірчично-жовтого кольору з добре помітною баштою та гарматою, спрямованою вперед; використовується танками гравців, для другого гравця має окремий колір кільця.
- enemy: компактний гусеничний танк ворога, який повторно використовується з різними відтінками для базового, швидкого та потужного варіантів.
- heavy: помітно важчий броньований танк, окрема від стандартного ворога сітка, над якою видно чотири сегменти броні.
- eagle: металева золота статуя орла на постаменті штабу.
- pickup-star: золота п'ятикутна зірка-покращення.
- pickup-helmet: захисна військова каска для тимчасового щита.
- pickup-clock: добре помітний годинник, що заморожує рух ворогів.
- pickup-shovel: лопата для укріплення штабу.
- pickup-life: мініатюрний танк, що представляє одне додаткове життя.
- pickup-grenade: ручна граната для знищення активних ворогів.
- pickup-ammo: ящик із боєприпасами для скорострільності.
- pickup-repair: ремонтний ящик для відновлення броні.
- pickup-magnet: підковоподібний магніт для збору припасів на відстані.
- pickup-boost: енергетична батарея для тимчасового прискорення.
- environment-building: обвітрена зруйнована багатоповерхівка, Tripo P2.0, заданий бюджет — 1 800 трикутників.
- environment-tree: нерегулярна сосна з видимим стовбуром, Tripo P2.0, заданий бюджет — 1 100 трикутників.
- environment-bush: невисокий листяний кущ із пучками трави, Tripo P2.0, заданий бюджет — 650 трикутників.
Показуйте припаси як обертові завислі колекційні моделі з кольоровими кільцями та відповідними мініатюрами в довіднику. Для повторюваних будівель, дерев і кущів використовуйте спільну геометрію та екземпляри матеріалів. Осаджуйте корені будівель і дерев на землю; основу куща трохи заглиблюйте, щоб вона зливалася з рельєфом. На снігових етапах додайте сніг на поверхні, повернуті вгору. Стіни тайлів, вода, лід, сітки снарядів, інтерфейс, джерела світла, частинки та проксі колізій мають бути процедурними. Анімуйте воду за допомогою хвиль, що рухаються у світовому просторі, змінюють нормалі та злегка зміщують поверхню; анімація має бути безперервною між сусідніми тайлами. Версія Tripo використовує 17 згенерованих моделей; у версії для порівняння і танки, і оточення замінюються геометрією, побудованою кодом, із тими самими правилами та колізіями. Обидві версії рендеряться за допомогою Three.js.
5. Ігровий процес і зворотний зв'язок
Підтримуйте одиночну гру та локальний кооператив для двох гравців зі спільним запасом із трьох життів. В одиночній грі використовуйте WASD або клавіші зі стрілками, а для стрільби — Space/J. У кооперативі перший гравець використовує WASD і Space/J; другий — клавіші зі стрілками та Enter/Numpad 0. P/Escape ставить гру на паузу; C змінює камеру; 1/2 вибирає режим моделей. На сенсорних екранах дозвольте одночасно утримувати напрямну панель і кнопку стрільби, скасовуйте введення після скасування вказівника та надайте дії паузи, продовження, переходу на наступний етап і повторної спроби без прокручування сторінки.
Швидкість гравця — 4,2 одиниці на секунду або 6,3 з прискоренням. Вороги бувають базового, швидкого, потужного й важкого типів; важкі танки мають чотири очки міцності й переживають перші три удари без щита. За знищення типу нараховуйте 100, 200, 300 або 400 очок; за кожне зібране припасування — 500 очок. Етап завершується після знищення 20 ворогів. Поразка настає, якщо орла знищено або спільний запас життів вичерпано й не залишилося жодного живого гравця. Додайте негайну повторну спробу, явний перехід на наступний етап і найкращий рахунок, збережений локально.
Реалізуйте всі десять припасів: зірка підвищує рівень до третього (швидші снаряди, два снаряди одночасно, потім снаряди, що пробивають сталь); каска створює щит на 12 секунд; годинник заморожує ворогів на 9 секунд; лопата укріплює базу на 16 секунд; мінітанк додає одне життя; граната знищує активних ворогів; боєприпаси дають 14 секунд скорострільності з можливістю мати до чотирьох активних снарядів; ремонт додає два очки міцності, але не більше трьох; магніт збирає видимі припаси в радіусі п'яти одиниць протягом 20 секунд; прискорення триває 12 секунд. Моделі припасів існують 25 секунд і з'являються в досяжних місцях; використовуйте перемішувану колоду, щоб урізноманітнити їхні типи. Магніт має враховувати тверді перешкоди.
Використовуйте зібрані семпли в стилі NES для вступу до етапу тривалістю 4,333 секунди, стрільби, руху та простою, ударів по цеглі й сталі, вибухів ворогів і гравця, появи та збору припасів, додаткового життя, удару по броні, льоду, паузи й завершення гри. Поточний проєкт використовує 15 звукових сигналів OGG від JustoSenka/BattleCity, commit 3a07004ba8e53baea74ff70d2ecc22b017eb9b20. Збережіть зазначення авторства та повідомлення про ліцензію репозиторію; описуйте їх як зібраний звук ремейку, не стверджуючи, що це побітова апаратна копія. Розблокуйте звук після жесту користувача, відкалібруйте гучність семплів, додайте регулювання гучності й вимкнення звуку та синхронізуйте звуки з подіями. Не додавайте сторонню безперервну музику бою.
6. Технічна реалізація
Використовуйте TypeScript, Three.js 0.180.0 і Vite 7, із відокремленими package.json та lockfile. Симуляція має бути незалежною від рендерингу й виконуватися з частотою 120 Гц. Використовуйте AABB корпуса, розділяйте рух за осями, обробляйте межі та розведення танків, а також безперервно перевіряйте проходження снарядів до найближчого контакту, включно з колізіями зустрічних снарядів із відносним рухом. Снаряди мають починати рух із корпуса й перевіряти траєкторію вперед, щоб запобігати проходженню крізь стіни впритул. Додайте прискорення та гальмування на льоду, а також гравітацію із загасаючими відскоками уламків. Це аркадна фізика поверхні, а не симулятор підвіски.
Завантажуйте GLB-ресурси з того самого джерела через GLTFLoader. Проксі колізій мають бути незалежними від геометрії ресурсів. Поточний runtime використовує квантизовані атрибути й текстури WebP (1024 пікселі для техніки та бази; 512 пікселів для припасів і оточення), без спрощення геометрії та декодера WASM. Обмежте завантаження чотирма воркерами, використовуйте URL із версією на основі хешу та діапазони по 256 KiB із тайм-аутом 20 секунд і максимум трьома спробами для кожного діапазону. Дозволяйте починати гру після готовності чотирьох основних моделей і звуку; припаси та ресурси оточення завантажуйте у фоновому режимі й створюйте лише ті типи припасів, моделі яких уже готові. Перемикання режиму моделей має зберігати стан гри.
Надайте інтерфейс англійською, спрощеною китайською, японською та корейською мовами. Вибирайте стандартну мову за мовою пристрою, але для zh-TW, zh-HK, zh-MO і zh-Hant використовуйте англійську; явно вибрані мови зберігайте. Підтримуйте клавіатуру, вказівник на комп'ютері та мультитач, а під час втрати фокуса ставте гру на паузу. Зберігайте всі ресурси, відомості про авторство й відтворювані скрипти локально у вихідному проєкті та постачайте статичний каталог dist без приватних облікових даних і залежності від runtime-бекенду.
7. Критерії завершення
Постачте редагований вихідний код, відомості про походження ресурсів і повідомлення про ліцензії, робочий процес npm для розробки та збірки, а також працездатний статичний попередній перегляд. Перевірте стандартну сцену Tripo, порівняння моделей, усі біоми, важкий танк, який витримує чотири удари, кожен ефект припасів, паузу й продовження, поразку та повторну спробу, а також перехід між етапами. Протестуйте 1 000 мап на основі seed щодо зв'язності для ширини корпуса та безпечних точок появи, а також усі класичні мапи, проходження крізь стіни, діагональні постріли, розведення танків, інерцію на льоду, введення відносно камери за кількох кутів повороту та перемикання режимів зі збереженням стану. Перевірте локалізований інтерфейс і керування двома пальцями на вузьких екранах, не заявляючи про тестування на фізичних пристроях, якщо використовувалася лише емуляція. Порівняйте фактичні стартові та бойові кадри з референсними зображеннями й відео; підтвердьте завантаження всіх 17 моделей і 15 звукових сигналів. Опублікуйте гру через наявний робочий процес CMS Web Page і перевірте фінальну публічну сторінку, а не вважайте збережений запис CMS завершеним розгортанням.
Як використовувати цей промпт
01
Почніть із відповідного інструмента
Відкрийте улюбленого помічника з програмування або 3D-інструмент. Спробуйте модель, зазначену в прикладі, і перевірте інструкції з налаштування в пов’язаних проєктах.
02
Виберіть одну зміну
Замініть об’єкт, художній стиль чи оточення. Чітко опишіть камеру та взаємодію. Спершу створіть невелику версію, а потім удосконалюйте по одній деталі.
03
Додайте власні об’єкти до сцени
Для власного персонажа чи реквізиту створіть 3D-модель за коротким описом предмета або зображенням-зразком, а потім імпортуйте її до проєкту.
Права на попередні перегляди належать відповідним авторам. Перш ніж повторно використовувати код або матеріали, перевірте першоджерело й ліцензію проєкту.