divine-marine — это игра про выживание, размещаемая в Roblox (Place в Roblox). Игрок начинает свою первую жизнь первобытным человеком и проходит цепочку перерождений: каждая смерть или завершение жизни открывает следующий этап, игра становится интереснее, а сюжеты на разных этапах различаются.
Продуктовая цель — дать готовый скрипт (готовый код) для игры, в которой прогрессия читается как рост: от первобытной эпохи к последующим эпохам, каждая со своим сюжетом, своим набором механик выживания и своим визуальным характером, но принадлежащие одной семье.
Аудитория — игроки Roblox 10–18 лет, а также взрослые, выросшие на платформе и возвращающиеся к ней. Эмоциональный регистр — любопытство, открытие, теплота лагерного костра, удовольствие от наблюдения за тем, как линия жизни с каждой смертью становится умнее. Не гримдарк, не гипертехнологичность.
Тематика средневековья исключена как основной сеттинг и заменена поэтапной эволюцией от первобытного человека.
divine-marine — это Roblox-игра про выживание с поэтапной прогрессией перерождений. Текущая поставка включает:
Акторы:
Принятое поведение:
Узкие исключения:
Владение поставкой и доступом. Игра поставляется как Roblox Place. Идентификация игрока и сохранение прогресса выполняются средствами Roblox — приложение не владеет собственной системой учётных записей и не управляет паролями. Публичная стартовая страница (Landing) доступна анонимно и объясняет игру до входа. Все игровые поверхности (Primitive Start, Survival, Rebirth, Evolution, Stories) требуют входа через Roblox, поскольку прогрессия перерождений должна быть привязана к конкретному игроку и сохраняться между сессиями.
Текущая граница. Текущая поставка охватывает: публичное объяснение игры, рождение первобытным человеком, выживание в текущей эпохе, переход через смерть/завершение жизни к следующему этапу, просмотр прогрессии по этапам и сюжетное содержание, меняющееся между этапами.
Будущая граница. Дополнительные эпохи за пределами текущей цепочки, дополнительные сюжетные линии, социальные и соревновательные механики не входят в текущую поставку и не создают текущих страниц или требований.
Не применимо — директивы reference с content_source не предоставлены.
Информация и состояние:
Основные действия:
Поддерживающие действия:
Доменные сущности:
Ответственность компонентов:
Состояния:
Информация и состояние:
Основные действия:
Поддерживающие действия:
Доменные сущности:
Ответственность компонентов:
Состояния:
Информация и состояние:
Основные действия:
Поддерживающие действия:
Доменные сущности:
Ответственность компонентов:
Состояния:
Информация и состояние:
Основные действия:
Поддерживающие действия:
Доменные сущности:
Ответственность компонентов:
Состояния:
Информация и состояние:
Основные действия:
Поддерживающие действия:
Доменные сущности:
Ответственность компонентов:
Состояния:
Информация и состояние:
Основные действия:
Поддерживающие действия:
Доменные сущности:
Ответственность компонентов:
Состояния:
As a Игрок, I should видеть на анонимной стартовой странице объяснение того, что это Roblox-игра про выживание, поэтапную эволюцию и разные сюжеты, so that я понимаю, что меня ждёт, до начала игры.
As a Игрок, I should начать первую жизнь первобытным человеком и получить стартовое состояние, so that я вхожу в игру с первобытной эпохи.
As a Игрок, I should поддерживать жизнь персонажа в текущей эпохе, so that я продолжаю текущую жизнь.
As a Игрок, I should взаимодействовать с объектами текущей эпохи (например, кремнёвое рубило, огонь), so that я поддерживаю жизнь персонажа.
As a Игрок, I should перейти к следующему этапу после смерти или завершения текущей жизни, so that я продолжаю цепочку перерождений.
As a Игрок, I should иметь сохранённый и открытый последующий этап после завершения или смерти текущей жизни, so that мой прогресс не теряется.
As a Игрок, I should просматривать прогрессию по различающимся и становящимся интереснее этапам, so that я вижу, как игра усложняется и меняется от эпохи к эпохе.
As a Игрок, I should переходить к полосе конкретной эпохи кликом по точке рейла эпох, so that я быстро перемещаюсь по прогрессии.
As a Игрок, I should читать сюжет текущей эпохи, so that я вижу, как сюжеты различаются между этапами перерождений.
As a Игрок, I should видеть, что каждый этап имеет отдельный сюжет и отличается от предыдущего, so that игра становится интереснее с каждым перерождением.
Продуктовый контекст. Игрок — единственный активный человеческий участник divine-marine. Он играет в Roblox-игру про выживание, размещаемую как Place в Roblox. Идентификация и сохранение прогресса выполняются средствами Roblox, поэтому игрок входит в игру через платформу, а не через отдельную учётную запись приложения.
Основная цель. Пройти цепочку перерождений и увидеть, как игра усложняется и меняется от эпохи к эпохе. Игрок начинает первобытным человеком и с каждым перерождением получает более интересный геймплей и новый сюжет.
Отличительные принятые обязанности.
Релевантные входы и решения.
Взаимодействие с другими принятыми участниками. Игрок взаимодействует с Roblox как провайдером идентификации и хранения прогресса. Roblox не является человеческим участником; это провайдер, который обеспечивает вход и сохранение прогресса между сессиями.
Наблюдаемый успех. Игрок начинает первобытным человеком, выживает в текущей эпохе, перерождается в следующую эпоху с новым сюжетом и более интересным геймплеем, и видит свою прогрессию по этапам.
Что отличает эту роль. Работа игрока — это цикл «жизнь → выживание → смерть → перерождение → новая эпоха». В отличие от обычного прохождения, каждая смерть не является концом, а открывает следующий этап; прогресс читается как рост линии жизни, а не как накопление очков.
Восстановление при сбое: если изображение объекта эпохи на Landing не загрузилось, цветовое поле #C4472B остаётся, текст и CTA читаемы и работоспособны. Если сохранение не загрузилось на Primitive Start, игрок начинает с первобытной эпохи заново и видит уведомление.
Восстановление при сбое: если взаимодействие с объектом не удалось, объект остаётся доступным для повторной попытки.
Восстановление при сбое: если переход не завершился, игрок остаётся на экране Rebirth с возможностью повторить переход. Если сохранение не удалось, игрок видит уведомление; прогресс завершённой эпохи сохраняется при повторной попытке.
Восстановление при сбое: если данные прогрессии не загрузились, отображается первобытная эпоха как текущая; игрок может вернуться к Survival.
Восстановление при сбое: если сюжет не загрузился, отображается название эпохи и возможность повторить загрузку. Если сюжет эпохи ещё не открыт, отображается только название эпохи и метка «сюжет откроется в этой эпохе».
Muse: Charles & Ray Eames. Headline: Warm modernism for a life that keeps being reborn.
Тёплый модернизм для жизни, которая постоянно перерождается. Язык Eames — это буквально эволюция формы внутри системы: фанерный стул, фильм «Powers of Ten», выставка Mathematica, игрушка. Это точная структура продукта: этапы, каждый из которых выглядит по-разному, но принадлежит одной семье. Тёплый модернизм даёт каждой эпохе (первобытная, бронзовая, средневековая, индустриальная, современная) свой цветовой аккорд, сохраняя общую сетку, поэтому прогрессия читается как рост, а не как рескин. Это избегает тёмно-пустого sci-fi шаблона, который поставляет каждая Roblox-игра про выживание, и достаточно тепло для детей, не будучи инфантильным.
| Роль | HEX | Применение |
|---|---|---|
| Background | #F2EBDD | Тёплая кремовая бумажная основа — никогда не чисто белый |
| Surface | #FAF5EA | Более светлая поверхность карточек |
| Text | #1E1A17 | Чернильный текст для всего основного текста |
| Primary | #C4472B | Томатно-красный — основной цвет действия (Start Life, Rebirth, основные CTA), примерно 8% площади поверхности |
| Accent | #E8A33D | Горчичный — акцент эпохи, меняющий оттенок по эпохам |
| Muted | #7A6A57 | Ореховый/овсяный — метаданные, метки, линии |
| Health/Stamina | #2F6E6A | Бирюзовый — зарезервирован для метров здоровья/выносливости, чтобы состояние выживания никогда не путалось с действием |
Акценты эпох:
#B8791F#4E6B4A (лесной)#3F5A73 (сланцевый)#C4472B (томатный)Правило контраста: никогда не размещать текст #C4472B на #E8A33D — недостаточный контраст; использовать #1E1A17 на всех средних заливках.
clamp(72px, 14vw, 176px).clamp(40px, 6vw, 72px).Органический модерн. Скруглённые прямоугольники с радиусом 20–28px на карточках и кнопках (изгиб оболочки стула, не пилюля). Значки эпох — круги и полукруги, повторяющие точечный узор Eames House. Края панелей обрезаны тонким 4px внутренним бликом вместо тени. Прогресс-бары — толстые 12px капсулы с плоской заливкой и маленькой насечкой каждые 10%. Без стекла, без размытия, без неонового свечения.
Модульная галерейная последовательность. 12-колоночная сетка, щедрые 48px жёлоба на desktop, 20px на mobile. Каждая эпоха — горизонтальная полоса, заполняющая вьюпорт, чередующая кремовые и цветные фоны, поэтому прокрутка ощущается как прогулка мимо музейных панелей. Hero на Landing асимметричен: заголовок выровнен по левому краю на 8 колонок, единственное изображение объекта эпохи выходит за правый край. HUD выживания — нижняя левая сложенная колонка из трёх капсульных метров, никогда не поверх центра игровой области. Экран Rebirth — полноэкранное цветовое поле с одной центрированной колонкой текста. Переходы секций используют 2px ореховую линию на всю ширину с номером эпохи в поле.
Тёплая предметная и жизненная фотография объектов эпох на простых кремовых фонах — оббитый кремень, бронзовый топор, средневековый фонарь, паровой клапан, современная схема — снятые как музейные каталожные пластины с мягким направленным светом и видимой мягкой тенью. Плюс нарисованные от руки линейные диаграммы (пояснительная иллюстрация в стиле Eames), аннотирующие основную механику выживания каждой эпохи: огонь, земледелие, торговля, промышленность, информация. Без стоковых фотографий людей. Без 3D-рендеров со светящимися краями. Без клип-арта. Объекты эпох фотографируются или иллюстрируются в масштабе 1:1 на панели, чтобы ощущались как реальные артефакты, которые можно взять в руки.
Hero на Landing — полноэкранное тёплое кремовое поле (#F2EBDD), не центрированный SaaS-стек.
Левые 8 колонок несут крупный заголовок Jost 300 — «YOU ARE BORN PRIMITIVE» — установленный в clamp(72px, 14vw, 176px), с плотным интерлиньяжем 0.92, разбитый на три строки так, что слово «PRIMITIVE» занимает почти всю колонку. Под ним — единственная 2px ореховая линия и однострочный абзац тела Fraunces 20px. Основной CTA «НАЧАТЬ ПЕРВУЮ ЖИЗНЬ» — сплошной блок #C4472B с радиусом 24px, прижатый к нижнему левому углу текстового блока, не по центру.
Правые 4 колонки — полноэкранное цветовое поле #C4472B с единственной фотографией объекта эпохи (кремнёвое рубило), выходящей за верхний и правый края, обрезанной так, что инструмент больше кадра.
Тонкая вертикальная полоса из пяти точек эпох идёт вдоль самого правого края: первая точка заполнена, остальные — контурные. Прогрессия видна до того, как какой-либо текст её объясняет.
Без градиентного пятна, без плавающей стеклянной карточки, без центрированной кнопки.
Подпись-движения:
Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d
Фокальный субъект: кремнёвое рубило — объект первобытной эпохи, сфотографированный как музейная каталожная пластина на простом кремовом фоне, обрезанный так, что инструмент больше кадра, выходящий за верхний и правый края правого цветового поля #C4472B.
Тезис вход → трансформация → результат: при попадании hero в область просмотра тонкая линия-рисунок объекта эпохи прорисовывает себя один раз (вход); заголовок «YOU ARE BORN PRIMITIVE» и строка тела Fraunces появляются медленным 480 мс фейдом с подъёмом на 24px по cubic-bezier(0.22, 0.61, 0.36, 1) (трансформация); игрок видит прогрессию из пяти точек эпох и CTA «НАЧАТЬ ПЕРВУЮ ЖИЗНЬ», готовый начать первую жизнь (результат).
Словарь движения: сдержанный, плёночный. Медленные 480 мс фейды с подъёмом на 24px. Кроссфейд перехода эпох на Rebirth — 900 мс между двумя цветовыми полями, без вращения, без частиц, без отскока. Hover на карточках эпох поднимает их на 4px и сдвигает цвет-основу на один шаг. Единственный зацикленный элемент на Landing — тонкая линия-рисунок объекта эпохи, которая прорисовывает себя один раз при попадании в область просмотра.
Скомпонованный первый кадр: полноэкранное кремовое поле #F2EBDD; слева крупный заголовок Jost 300 в три строки; под ним 2px ореховая линия и строка тела Fraunces 20px; CTA #C4472B с радиусом 24px в нижнем левом углу текстового блока; справа полноэкранное цветовое поле #C4472B с кремнёвым рубилом, выходящим за верхний и правый края; вдоль самого правого края — вертикальная полоса из пяти точек эпох, первая заполнена, остальные контурные.
Состояние при reduced-motion: все входы становятся мгновенными переключениями прозрачности, линия-рисунок становится статической иллюстрацией. Прогрессия из пяти точек эпох остаётся видимой как статическая вертикальная полоса.
Игра размещается в Roblox (Place в Roblox). Provenance: explicit. Обоснование: это прямое требование пользователя.
Идентификация игрока и сохранение прогресса выполняются средствами Roblox. Provenance: required_inference. Обоснование: необходимо, чтобы принятая текущая цепочка перерождений была исполнимой без добавления продуктовой возможности.
Пользователь ожидает готовый скрипт (готовый код) для игры. Provenance: explicit. Обоснование: это прямое требование пользователя.
Читаемый текст и элементы управления остаются целыми на каждом вьюпорте: заголовки, словесные знаки, метки, числа, текст карточек и элементы управления остаются полностью внутри вьюпорта и своего контейнера на 375px, 768px и 1280px, переносясь или масштабируясь (например, font-size: clamp(...) с его мобильным размером), и никакой другой элемент не перекрывает их. Provenance: explicit (creative direction). Обоснование: требование направления дизайна.
При prefers-reduced-motion все входы становятся мгновенными переключениями прозрачности, линия-рисунок становится статической иллюстрацией. Provenance: explicit (creative direction). Обоснование: требование направления дизайна.
Никогда не размещать текст #C4472B на #E8A33D — недостаточный контраст; использовать #1E1A17 на всех средних заливках. Provenance: explicit (creative direction). Обоснование: требование направления дизайна.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No completed page designs yet.
Completed design pages will appear here when they are ready to preview.
No comments yet. Be the first!