divine-marine

byBasir Garin

Создай игру про выживание в средневековье в плейс роблокс дай готовый скрипт

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirements Document for divine-marine

1. Introduction

divine-marine — это игра про выживание, размещаемая в Roblox (Place в Roblox). Игрок начинает свою первую жизнь первобытным человеком и проходит цепочку перерождений: каждая смерть или завершение жизни открывает следующий этап, игра становится интереснее, а сюжеты на разных этапах различаются.

Продуктовая цель — дать готовый скрипт (готовый код) для игры, в которой прогрессия читается как рост: от первобытной эпохи к последующим эпохам, каждая со своим сюжетом, своим набором механик выживания и своим визуальным характером, но принадлежащие одной семье.

Аудитория — игроки Roblox 10–18 лет, а также взрослые, выросшие на платформе и возвращающиеся к ней. Эмоциональный регистр — любопытство, открытие, теплота лагерного костра, удовольствие от наблюдения за тем, как линия жизни с каждой смертью становится умнее. Не гримдарк, не гипертехнологичность.

Тематика средневековья исключена как основной сеттинг и заменена поэтапной эволюцией от первобытного человека.

Page 1 of 37

2. System Overview

divine-marine — это Roblox-игра про выживание с поэтапной прогрессией перерождений. Текущая поставка включает:

  • Публичный вход (Landing) — анонимная стартовая страница, объясняющая, что это Roblox-игра про выживание, поэтапную эволюцию и разные сюжеты.
  • Игровой цикл — рождение первобытным человеком, выживание в текущей эпохе, смерть или завершение жизни, перерождение в следующую эпоху.
  • Прогрессия — раздел продолжения прогрессии по различающимся и становящимся интереснее этапам.
  • Сюжет — раздел сюжетного содержания, меняющегося между этапами перерождений.

Акторы:

  • Игрок — единственный активный человеческий участник. Начинает первобытным человеком, выживает в текущей эпохе, перерождается, чтобы перейти на следующий этап с более интересным геймплеем и новым сюжетом.
  • Roblox (платформа) — провайдер идентификации и хранения прогресса. Идентификация игрока и сохранение прогресса выполняются средствами Roblox.

Принятое поведение:

  • Игрок начинает с первобытной эпохи.
  • Завершение или смерть текущей жизни сохраняет и открывает последующий этап.
  • Каждый этап имеет отдельный сюжет и отличается от предыдущего.

Узкие исключения:

  • Средневековье исключено как основной сеттинг.
Page 2 of 37

2a. Product Interpretation and Delivery Boundary

Владение поставкой и доступом. Игра поставляется как Roblox Place. Идентификация игрока и сохранение прогресса выполняются средствами Roblox — приложение не владеет собственной системой учётных записей и не управляет паролями. Публичная стартовая страница (Landing) доступна анонимно и объясняет игру до входа. Все игровые поверхности (Primitive Start, Survival, Rebirth, Evolution, Stories) требуют входа через Roblox, поскольку прогрессия перерождений должна быть привязана к конкретному игроку и сохраняться между сессиями.

Текущая граница. Текущая поставка охватывает: публичное объяснение игры, рождение первобытным человеком, выживание в текущей эпохе, переход через смерть/завершение жизни к следующему этапу, просмотр прогрессии по этапам и сюжетное содержание, меняющееся между этапами.

Будущая граница. Дополнительные эпохи за пределами текущей цепочки, дополнительные сюжетные линии, социальные и соревновательные механики не входят в текущую поставку и не создают текущих страниц или требований.

2b. Source Content Inventory

Не применимо — директивы reference с content_source не предоставлены.

2c. Page Content and Component Coverage

Page 3 of 37

Landing

Информация и состояние:

  • Анонимная стартовая страница, объясняющая Roblox-игру про выживание, поэтапную эволюцию и разные сюжеты.
  • Заголовок «YOU ARE BORN PRIMITIVE» — крупный Jost 300, clamp(72px, 14vw, 176px), tight leading 0.92, разбит на три строки так, что слово «PRIMITIVE» занимает почти всю колонку.
  • Одна строка тела Fraunces 20px под заголовком.
  • Полоса из пяти точек эпох вдоль правого края: первая точка заполнена, остальные — контурные. Прогрессия видна до того, как какой-либо текст её объясняет.

Основные действия:

  • CTA «НАЧАТЬ ПЕРВУЮ ЖИЗНЬ» — сплошной блок #C4472B с радиусом 24px, прижат к нижнему левому углу текстового блока, не по центру.

Поддерживающие действия:

  • Прокрутка к полосам эпох (вертикальная последовательность полноэкранных цветных полос).

Доменные сущности:

  • Эпоха (номер, название, цвет-акцент, объект-артефакт).
  • Точка эпохи (заполнена / текущая / контур).
Page 4 of 37

Ответственность компонентов:

  • Асимметричный hero: заголовок в левых 8 колонках, полноэкранное цветовое поле #C4472B в правых 4 колонках с фотографией кремнёвого рубила, выходящей за верхний и правый края.
  • Тонкая линия-рисунок объекта эпохи, которая прорисовывает себя один раз при попадании в область просмотра.
  • Полоса эпох: вертикальная последовательность полноэкранных цветных полос (cream → bronze #B8791F → forest #4E6B4A → slate #3F5A73 → tomato #C4472B), номер эпохи крупно в внешнем поле, название эпохи — крупный Jost-заголовок внутри полосы.

Состояния:

  • Загрузка: мгновенная отрисовка статического первого кадра; линия-рисунок ожидает попадания в область просмотра.
  • Пустое: не применимо — контент статичен.
  • Успех: игрок видит заголовок, строку тела, CTA и полосу эпох; CTA ведёт к началу первой жизни.
  • Ошибка: если изображение объекта эпохи не загрузилось, цветовое поле #C4472B остаётся, текст и CTA остаются читаемыми и работоспособными.
  • Восстановление: повторная загрузка страницы восстанавливает изображение; CTA остаётся доступным.
Page 5 of 37

Primitive Start

Информация и состояние:

  • Начальная точка прохождения: игрок рождается первобытным человеком и получает стартовое состояние.
  • Отображение текущей эпохи (первобытная), номера эпохи и стартовых показателей выживания.
  • Точка эпохи текущей эпохи отмечена анимированной 1px-риской на рейле эпох.

Основные действия:

  • Начать первую жизнь первобытным человеком.

Поддерживающие действия:

  • Просмотр стартового состояния перед началом.
  • Переход к Survival после начала жизни.

Доменные сущности:

  • Персонаж (первобытный человек).
  • Эпоха (номер, название, цвет-акцент).
  • Стартовое состояние (здоровье, голод, тепло).

Ответственность компонентов:

  • Рейл эпох: постоянный 5-точечный вертикальный рейл на правом краю, заполненные точки для завершённых эпох, анимированная 1px-риска для текущей, контур для будущих. Клик по точке переходит к полосе этой эпохи.
  • Карточка-плитка объекта эпохи: кремнёвое рубило на кремовом фоне, тонкая ореховая линия, метка Jost малыми прописными и табличное число уровня эпохи.
  • Колонка-инструмент HUD: три сложенных 12px капсулы (здоровье, голод, тепло) в нижнем левом углу с табличными цифрами Jost над каждой.
Page 6 of 37

Состояния:

  • Загрузка: стартовое состояние подгружается из сохранения Roblox; показывается индикатор загрузки.
  • Пустое: если сохранение отсутствует, игрок начинает с первобытной эпохи и базовым стартовым состоянием.
  • Успех: игрок рождается первобытным человеком, стартовое состояние отображено, доступен переход к Survival.
  • Ошибка: если сохранение не загрузилось, игрок начинает с первобытной эпохи заново; прогресс не теряется молча — игрок видит уведомление.
  • Восстановление: повторная попытка загрузки сохранения; при повторной неудаче — старт с первобытной эпохи.
Page 7 of 37

Survival

Информация и состояние:

  • Основное игровое пространство для поддержания жизни персонажа в текущей эпохе.
  • Текущая эпоха, номер эпохи, название эпохи.
  • Показатели выживания: здоровье (teal #2F6E6A), голод (mustard #E8A33D), тепло (tomato #C4472B) — три сложенных 12px капсулы в нижнем левом углу с табличными цифрами Jost над каждой.
  • Рейл эпох на правом краю.

Основные действия:

  • Поддерживать жизнь персонажа: добывать пищу, поддерживать тепло, сохранять здоровье.
  • Взаимодействовать с объектами эпохи (например, кремнёвое рубило, огонь).

Поддерживающие действия:

  • Просмотр текущего состояния выживания.
  • Переход к Rebirth при смерти или завершении жизни.

Доменные сущности:

  • Персонаж (текущая эпоха, показатели выживания).
  • Объект эпохи (артефакт, механика выживания).
  • Эпоха (номер, название, цвет-акцент).

Ответственность компонентов:

  • HUD как колонка-инструмент: три сложенных 12px капсулы в нижнем левом углу, никогда не поверх центра игровой области.
  • Карточки-плитки объектов: каждый предмет, инструмент и существо представлены как кремовая карточка с объектом 1:1 на простом фоне, ореховая тонкая линия, метка Jost малыми прописными и табличное число уровня эпохи.
  • Рейл эпох: постоянный 5-точечный вертикальный рейл на правом краю.
Page 8 of 37

Состояния:

  • Загрузка: игровое пространство текущей эпохи загружается; HUD показывает текущие показатели.
  • Пустое: не применимо — игровое пространство всегда содержит текущую эпоху и персонажа.
  • Успех: персонаж жив, показатели выживания в допустимых пределах, игрок продолжает текущую жизнь.
  • Ошибка: если показатель выживания достигает критического значения, жизнь завершается и игрок переходит к Rebirth.
  • Восстановление: после перехода к Rebirth игрок начинает следующую жизнь в следующей эпохе.
Page 9 of 37

Rebirth

Информация и состояние:

  • Экран перехода после завершения или смерти текущей жизни к следующему этапу.
  • Полноэкранное цветовое поле эпохи, в которой игрок только что умер, удерживается 600 мс, затем кроссфейдом за 900 мс переходит в поле следующей эпохи, пока название эпохи набирается в display-размере.
  • Номер эпохи и название следующей эпохи.

Основные действия:

  • Подтвердить переход к следующей эпохе.

Поддерживающие действия:

  • Просмотр названия следующей эпохи.
  • Переход к Evolution или Survival следующей эпохи.

Доменные сущности:

  • Завершённая жизнь (эпоха, причина завершения).
  • Следующая эпоха (номер, название, цвет-акцент).
  • Счётчик перерождений.

Ответственность компонентов:

  • Кроссфейд перерождения: полноэкранное цветовое поле, удержание 600 мс, кроссфейд 900 мс, набор названия эпохи в display-размере. Без модального окна, без конфетти, без отскока.
  • Рейл эпох: заполненная точка для завершённой эпохи, анимированная 1px-риска для текущей.
Page 10 of 37

Состояния:

  • Загрузка: цветовое поле эпохи смерти отображается немедленно.
  • Пустое: не применимо — переход всегда имеет завершённую и следующую эпоху.
  • Успех: кроссфейд завершён, название следующей эпохи набрано, игрок продолжает в следующей эпохе.
  • Ошибка: если переход не завершился, игрок остаётся на экране Rebirth с возможностью повторить переход.
  • Восстановление: повторный переход к следующей эпохе; прогресс завершённой эпохи сохранён.
Page 11 of 37

Evolution

Информация и состояние:

  • Раздел продолжения прогрессии по различающимся и становящимся интереснее этапам.
  • Вертикальная последовательность полноэкранных цветных полос, каждая — другая эпоха (cream → bronze #B8791F → forest #4E6B4A → slate #3F5A73 → tomato #C4472B), номер эпохи крупно во внешнем поле, название эпохи — крупный Jost-заголовок внутри полосы.
  • Рейл эпох на правом краю: заполненные точки для завершённых эпох, анимированная 1px-риска для текущей, контур для будущих.

Основные действия:

  • Просматривать этапы прогрессии.
  • Переходить к полосе конкретной эпохи кликом по точке рейла.

Поддерживающие действия:

  • Просмотр номера и названия каждой эпохи.
  • Возврат к Survival текущей эпохи.

Доменные сущности:

  • Эпоха (номер, название, цвет-акцент, статус: завершена / текущая / будущая).
  • Прогрессия (последовательность эпох).

Ответственность компонентов:

  • Полосы эпох: вертикальная последовательность полноэкранных цветных полос с номером эпохи во внешнем поле и названием эпохи внутри.
  • Рейл эпох: постоянный 5-точечный вертикальный рейл на правом краю, клик по точке переходит к полосе этой эпохи.
  • Разделитель секций: 2px ореховая линия на всю ширину с номером эпохи в поле.
Page 12 of 37

Состояния:

  • Загрузка: полосы эпох отрисовываются последовательно; рейл показывает текущий статус.
  • Пустое: если прогрессия отсутствует, отображается только первобытная эпоха как текущая.
  • Успех: игрок видит все эпохи, их статус и может перейти к любой полосе.
  • Ошибка: если данные прогрессии не загрузились, отображается первобытная эпоха как текущая; игрок может вернуться к Survival.
  • Восстановление: повторная загрузка прогрессии; при повторной неудаче — отображение первобытной эпохи.
Page 13 of 37

Stories

Информация и состояние:

  • Раздел сюжетного содержания, меняющегося между этапами перерождений.
  • Сюжет текущей эпохи, отображаемый текстом Fraunces.
  • Номер эпохи и название эпохи.
  • Рейл эпох на правом краю.

Основные действия:

  • Читать сюжет текущей эпохи.

Поддерживающие действия:

  • Просмотр сюжетов других эпох по мере их открытия.
  • Возврат к Survival текущей эпохи.

Доменные сущности:

  • Сюжет (эпоха, текст, статус: открыт / закрыт).
  • Эпоха (номер, название, цвет-акцент).

Ответственность компонентов:

  • Текстовый блок сюжета: Fraunces 400/600 с «soft» оптическим размером, тёплый как печатная музейная этикетка.
  • Рейл эпох: постоянный 5-точечный вертикальный рейл на правом краю.
  • Разделитель секций: 2px ореховая линия на всю ширину с номером эпохи в поле.
Page 14 of 37

Состояния:

  • Загрузка: текст сюжета текущей эпохи загружается.
  • Пустое: если сюжет эпохи ещё не открыт, отображается только название эпохи и метка «сюжет откроется в этой эпохе».
  • Успех: игрок читает сюжет текущей эпохи.
  • Ошибка: если сюжет не загрузился, отображается название эпохи и возможность повторить загрузку.
  • Восстановление: повторная загрузка сюжета; при повторной неудаче — возврат к Survival.

3. Functional Requirements

FR-1. Публичное объяснение игры

As a Игрок, I should видеть на анонимной стартовой странице объяснение того, что это Roblox-игра про выживание, поэтапную эволюцию и разные сюжеты, so that я понимаю, что меня ждёт, до начала игры.

  • Provenance: required_inference
  • Trigger/Input: открытие Landing.
  • Observable result: заголовок «YOU ARE BORN PRIMITIVE», строка тела Fraunces 20px, CTA «НАЧАТЬ ПЕРВУЮ ЖИЗНЬ», полоса из пяти точек эпох.
  • Access state: анонимный доступ (access_requirement: none).
  • Failure/recovery: если изображение объекта эпохи не загрузилось, цветовое поле #C4472B остаётся, текст и CTA читаемы и работоспособны.
  • Continuation: CTA ведёт к началу первой жизни.
Page 15 of 37

FR-2. Начало первой жизни первобытным человеком

As a Игрок, I should начать первую жизнь первобытным человеком и получить стартовое состояние, so that я вхожу в игру с первобытной эпохи.

  • Provenance: required_inference
  • Trigger/Input: нажатие CTA «НАЧАТЬ ПЕРВУЮ ЖИЗНЬ» на Landing.
  • Observable result: игрок рождается первобытным человеком, стартовое состояние (здоровье, голод, тепло) отображено.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если сохранение не загрузилось, игрок начинает с первобытной эпохи заново; игрок видит уведомление.
  • Continuation: переход к Survival.

FR-3. Выживание в текущей эпохе

As a Игрок, I should поддерживать жизнь персонажа в текущей эпохе, so that я продолжаю текущую жизнь.

  • Provenance: explicit
  • Trigger/Input: вход в Survival.
  • Observable result: показатели выживания (здоровье teal #2F6E6A, голод mustard #E8A33D, тепло tomato #C4472B) отображаются как три сложенных 12px капсулы в нижнем левом углу с табличными цифрами Jost.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если показатель достигает критического значения, жизнь завершается и игрок переходит к Rebirth.
  • Continuation: продолжение текущей жизни или переход к Rebirth.
Page 16 of 37

FR-4. Взаимодействие с объектами эпохи

As a Игрок, I should взаимодействовать с объектами текущей эпохи (например, кремнёвое рубило, огонь), so that я поддерживаю жизнь персонажа.

  • Provenance: required_inference
  • Trigger/Input: взаимодействие с объектом эпохи в Survival.
  • Observable result: объект представлен как кремовая карточка с объектом 1:1 на простом фоне, ореховая тонкая линия, метка Jost малыми прописными и табличное число уровня эпохи.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если взаимодействие не удалось, объект остаётся доступным для повторной попытки.
  • Continuation: продолжение выживания в текущей эпохе.

FR-5. Переход к следующему этапу после смерти или завершения жизни

As a Игрок, I should перейти к следующему этапу после смерти или завершения текущей жизни, so that я продолжаю цепочку перерождений.

  • Provenance: required_inference
  • Trigger/Input: смерть или завершение текущей жизни в Survival.
  • Observable result: экран Rebirth показывает полноэкранное цветовое поле эпохи смерти, удерживает 600 мс, затем кроссфейдом за 900 мс переходит в поле следующей эпохи, пока название эпохи набирается в display-размере.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если переход не завершился, игрок остаётся на экране Rebirth с возможностью повторить переход.
  • Continuation: продолжение в следующей эпохе.
Page 17 of 37

FR-6. Сохранение и открытие последующего этапа

As a Игрок, I should иметь сохранённый и открытый последующий этап после завершения или смерти текущей жизни, so that мой прогресс не теряется.

  • Provenance: required_inference
  • Trigger/Input: завершение или смерть текущей жизни.
  • Observable result: последующий этап сохранён и открыт; счётчик перерождений обновлён.
  • Access state: идентификация игрока и сохранение прогресса выполняются средствами Roblox.
  • Failure/recovery: если сохранение не удалось, игрок видит уведомление; прогресс завершённой эпохи сохраняется при повторной попытке.
  • Continuation: продолжение в следующей эпохе.
Page 18 of 37

FR-7. Просмотр прогрессии по этапам

As a Игрок, I should просматривать прогрессию по различающимся и становящимся интереснее этапам, so that я вижу, как игра усложняется и меняется от эпохи к эпохе.

  • Provenance: explicit
  • Trigger/Input: открытие Evolution.
  • Observable result: вертикальная последовательность полноэкранных цветных полос, каждая — другая эпоха (cream → bronze #B8791F → forest #4E6B4A → slate #3F5A73 → tomato #C4472B), номер эпохи крупно во внешнем поле, название эпохи — крупный Jost-заголовок внутри полосы.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если данные прогрессии не загрузились, отображается первобытная эпоха как текущая; игрок может вернуться к Survival.
  • Continuation: переход к полосе конкретной эпохи или возврат к Survival.

FR-8. Переход к полосе конкретной эпохи

As a Игрок, I should переходить к полосе конкретной эпохи кликом по точке рейла эпох, so that я быстро перемещаюсь по прогрессии.

  • Provenance: required_inference
  • Trigger/Input: клик по точке рейла эпох на правом краю.
  • Observable result: переход к полосе выбранной эпохи.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если переход не удался, игрок остаётся на текущей полосе.
  • Continuation: просмотр выбранной эпохи.
Page 19 of 37

FR-9. Чтение сюжета текущей эпохи

As a Игрок, I should читать сюжет текущей эпохи, so that я вижу, как сюжеты различаются между этапами перерождений.

  • Provenance: explicit
  • Trigger/Input: открытие Stories.
  • Observable result: текст сюжета текущей эпохи отображается Fraunces 400/600 с «soft» оптическим размером.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если сюжет не загрузился, отображается название эпохи и возможность повторить загрузку.
  • Continuation: возврат к Survival текущей эпохи.

FR-10. Отдельный сюжет и отличие каждого этапа

As a Игрок, I should видеть, что каждый этап имеет отдельный сюжет и отличается от предыдущего, so that игра становится интереснее с каждым перерождением.

  • Provenance: required_inference
  • Trigger/Input: переход к следующей эпохе.
  • Observable result: следующая эпоха имеет собственный сюжет, собственный цвет-акцент и собственный набор механик выживания.
  • Access state: требуется вход через Roblox (access_requirement: login).
  • Failure/recovery: если сюжет эпохи ещё не открыт, отображается только название эпохи и метка «сюжет откроется в этой эпохе».
  • Continuation: чтение сюжета новой эпохи.

4. User Personas

Page 20 of 37

Игрок

Продуктовый контекст. Игрок — единственный активный человеческий участник divine-marine. Он играет в Roblox-игру про выживание, размещаемую как Place в Roblox. Идентификация и сохранение прогресса выполняются средствами Roblox, поэтому игрок входит в игру через платформу, а не через отдельную учётную запись приложения.

Основная цель. Пройти цепочку перерождений и увидеть, как игра усложняется и меняется от эпохи к эпохе. Игрок начинает первобытным человеком и с каждым перерождением получает более интересный геймплей и новый сюжет.

Отличительные принятые обязанности.

  • Начать первую жизнь первобытным человеком и получить стартовое состояние.
  • Поддерживать жизнь персонажа в текущей эпохе: здоровье, голод, тепло.
  • Взаимодействовать с объектами текущей эпохи (например, кремнёвое рубило, огонь).
  • Пережить смерть или завершение текущей жизни и перейти к следующему этапу.
  • Просматривать прогрессию по различающимся этапам.
  • Читать сюжет текущей эпохи и видеть, как сюжеты различаются между этапами.

Релевантные входы и решения.

  • Решение начать первую жизнь (CTA «НАЧАТЬ ПЕРВУЮ ЖИЗНЬ»).
  • Решение о том, как поддерживать жизнь в текущей эпохе (добыча пищи, поддержание тепла, сохранение здоровья).
  • Решение взаимодействовать с объектом эпохи.
  • Решение просмотреть прогрессию или сюжет.
Page 21 of 37

Взаимодействие с другими принятыми участниками. Игрок взаимодействует с Roblox как провайдером идентификации и хранения прогресса. Roblox не является человеческим участником; это провайдер, который обеспечивает вход и сохранение прогресса между сессиями.

Наблюдаемый успех. Игрок начинает первобытным человеком, выживает в текущей эпохе, перерождается в следующую эпоху с новым сюжетом и более интересным геймплеем, и видит свою прогрессию по этапам.

Что отличает эту роль. Работа игрока — это цикл «жизнь → выживание → смерть → перерождение → новая эпоха». В отличие от обычного прохождения, каждая смерть не является концом, а открывает следующий этап; прогресс читается как рост линии жизни, а не как накопление очков.

5. Core User Flows

Page 22 of 37

Flow 1. Первое знакомство и начало первой жизни

  1. Стартовый контекст: Игрок открывает Landing анонимно, без входа.
  2. Действие: Игрок читает заголовок «YOU ARE BORN PRIMITIVE», строку тела Fraunces 20px и видит полосу из пяти точек эпох (первая заполнена, остальные контурные).
  3. Наблюдаемый результат: Игрок понимает, что это Roblox-игра про выживание, поэтапную эволюцию и разные сюжеты.
  4. Действие: Игрок нажимает CTA «НАЧАТЬ ПЕРВУЮ ЖИЗНЬ» — сплошной блок #C4472B с радиусом 24px, прижатый к нижнему левому углу текстового блока.
  5. Наблюдаемый результат: Игрок входит через Roblox и попадает на Primitive Start.
  6. Действие: Игрок начинает первую жизнь первобытным человеком.
  7. Наблюдаемый результат: Стартовое состояние (здоровье, голод, тепло) отображено; точка первобытной эпохи отмечена анимированной 1px-риской на рейле эпох.
  8. Следующий шаг: Переход к Survival.

Восстановление при сбое: если изображение объекта эпохи на Landing не загрузилось, цветовое поле #C4472B остаётся, текст и CTA читаемы и работоспособны. Если сохранение не загрузилось на Primitive Start, игрок начинает с первобытной эпохи заново и видит уведомление.

Page 23 of 37

Flow 2. Выживание в текущей эпохе

  1. Стартовый контекст: Игрок находится в Survival текущей эпохи.
  2. Действие: Игрок поддерживает жизнь персонажа: добывает пищу, поддерживает тепло, сохраняет здоровье.
  3. Наблюдаемый результат: Три сложенных 12px капсулы в нижнем левом углу показывают здоровье (teal #2F6E6A), голод (mustard #E8A33D) и тепло (tomato #C4472B) с табличными цифрами Jost над каждой.
  4. Действие: Игрок взаимодействует с объектом эпохи (например, кремнёвое рубило, огонь).
  5. Наблюдаемый результат: Объект представлен как кремовая карточка с объектом 1:1 на простом фоне, ореховая тонкая линия, метка Jost малыми прописными и табличное число уровня эпохи.
  6. Следующий шаг: Игрок продолжает текущую жизнь или, при критическом показателе, переходит к Rebirth.

Восстановление при сбое: если взаимодействие с объектом не удалось, объект остаётся доступным для повторной попытки.

Page 24 of 37

Flow 3. Смерть и перерождение в следующую эпоху

  1. Стартовый контекст: Игрок находится в Survival текущей эпохи; показатель выживания достигает критического значения или жизнь завершается.
  2. Действие: Игрок переходит к Rebirth.
  3. Наблюдаемый результат: Полноэкранное цветовое поле эпохи, в которой игрок только что умер, удерживается 600 мс.
  4. Наблюдаемый результат: Кроссфейд за 900 мс переходит в поле следующей эпохи, пока название эпохи набирается в display-размере. Без модального окна, без конфетти, без отскока.
  5. Наблюдаемый результат: Последующий этап сохранён и открыт; счётчик перерождений обновлён; точка завершённой эпохи заполнена на рейле эпох.
  6. Действие: Игрок подтверждает переход к следующей эпохе.
  7. Следующий шаг: Игрок продолжает в следующей эпохе с новым сюжетом и более интересным геймплеем.

Восстановление при сбое: если переход не завершился, игрок остаётся на экране Rebirth с возможностью повторить переход. Если сохранение не удалось, игрок видит уведомление; прогресс завершённой эпохи сохраняется при повторной попытке.

Page 25 of 37

Flow 4. Просмотр прогрессии по этапам

  1. Стартовый контекст: Игрок находится в игре после входа через Roblox.
  2. Действие: Игрок открывает Evolution.
  3. Наблюдаемый результат: Вертикальная последовательность полноэкранных цветных полос, каждая — другая эпоха (cream → bronze #B8791F → forest #4E6B4A → slate #3F5A73 → tomato #C4472B), номер эпохи крупно во внешнем поле, название эпохи — крупный Jost-заголовок внутри полосы.
  4. Действие: Игрок кликает по точке рейла эпох на правом краю.
  5. Наблюдаемый результат: Переход к полосе выбранной эпохи; заполненные точки для завершённых эпох, анимированная 1px-риска для текущей, контур для будущих.
  6. Следующий шаг: Игрок возвращается к Survival текущей эпохи.

Восстановление при сбое: если данные прогрессии не загрузились, отображается первобытная эпоха как текущая; игрок может вернуться к Survival.

Flow 5. Чтение сюжета текущей эпохи

  1. Стартовый контекст: Игрок находится в игре после входа через Roblox.
  2. Действие: Игрок открывает Stories.
  3. Наблюдаемый результат: Текст сюжета текущей эпохи отображается Fraunces 400/600 с «soft» оптическим размером; номер и название эпохи видны.
  4. Действие: Игрок читает сюжет текущей эпохи.
  5. Наблюдаемый результат: Игрок видит, как сюжеты различаются между этапами перерождений.
  6. Следующий шаг: Игрок возвращается к Survival текущей эпохи.

Восстановление при сбое: если сюжет не загрузился, отображается название эпохи и возможность повторить загрузку. Если сюжет эпохи ещё не открыт, отображается только название эпохи и метка «сюжет откроется в этой эпохе».

Page 26 of 37

6. Visuals Colors and Theme

Muse: Charles & Ray Eames. Headline: Warm modernism for a life that keeps being reborn.

Тёплый модернизм для жизни, которая постоянно перерождается. Язык Eames — это буквально эволюция формы внутри системы: фанерный стул, фильм «Powers of Ten», выставка Mathematica, игрушка. Это точная структура продукта: этапы, каждый из которых выглядит по-разному, но принадлежит одной семье. Тёплый модернизм даёт каждой эпохе (первобытная, бронзовая, средневековая, индустриальная, современная) свой цветовой аккорд, сохраняя общую сетку, поэтому прогрессия читается как рост, а не как рескин. Это избегает тёмно-пустого sci-fi шаблона, который поставляет каждая Roblox-игра про выживание, и достаточно тепло для детей, не будучи инфантильным.

Page 27 of 37

Палитра (светлый режим)

Роль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 на всех средних заливках.

Page 28 of 37

Типографика

  • Заголовки: Jost — вес 300–500, геометрический и слегка гуманистический, плотный трекинг (-0.02em) в display-размере, sentence case для названий эпох и all-caps только для маленьких меток эпох с межбуквенным интервалом 0.12em.
  • Тело: Fraunces 400/600 с «soft» оптическим размером — средневековая теплота печатной музейной этикетки.
  • Числа: номер эпохи, счётчик перерождений, здоровье — Jost 500 табличные, чтобы читались как инструментальные показания.
  • Шкала: модульная 1.333: 128/96/72/54/40/30/22/16.
  • Display-названия эпох: clamp(72px, 14vw, 176px).
  • Заголовки секций: clamp(40px, 6vw, 72px).
  • Тело: 18px desktop / 16px mobile, line-height 1.65.
  • Метки: 12px uppercase 0.12em.

Язык формы

Органический модерн. Скруглённые прямоугольники с радиусом 20–28px на карточках и кнопках (изгиб оболочки стула, не пилюля). Значки эпох — круги и полукруги, повторяющие точечный узор Eames House. Края панелей обрезаны тонким 4px внутренним бликом вместо тени. Прогресс-бары — толстые 12px капсулы с плоской заливкой и маленькой насечкой каждые 10%. Без стекла, без размытия, без неонового свечения.

Page 29 of 37

Компоновка

Модульная галерейная последовательность. 12-колоночная сетка, щедрые 48px жёлоба на desktop, 20px на mobile. Каждая эпоха — горизонтальная полоса, заполняющая вьюпорт, чередующая кремовые и цветные фоны, поэтому прокрутка ощущается как прогулка мимо музейных панелей. Hero на Landing асимметричен: заголовок выровнен по левому краю на 8 колонок, единственное изображение объекта эпохи выходит за правый край. HUD выживания — нижняя левая сложенная колонка из трёх капсульных метров, никогда не поверх центра игровой области. Экран Rebirth — полноэкранное цветовое поле с одной центрированной колонкой текста. Переходы секций используют 2px ореховую линию на всю ширину с номером эпохи в поле.

Изображения

Тёплая предметная и жизненная фотография объектов эпох на простых кремовых фонах — оббитый кремень, бронзовый топор, средневековый фонарь, паровой клапан, современная схема — снятые как музейные каталожные пластины с мягким направленным светом и видимой мягкой тенью. Плюс нарисованные от руки линейные диаграммы (пояснительная иллюстрация в стиле Eames), аннотирующие основную механику выживания каждой эпохи: огонь, земледелие, торговля, промышленность, информация. Без стоковых фотографий людей. Без 3D-рендеров со светящимися краями. Без клип-арта. Объекты эпох фотографируются или иллюстрируются в масштабе 1:1 на панели, чтобы ощущались как реальные артефакты, которые можно взять в руки.

Page 30 of 37

7. Signature Design Concept

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 с единственной фотографией объекта эпохи (кремнёвое рубило), выходящей за верхний и правый края, обрезанной так, что инструмент больше кадра.

Тонкая вертикальная полоса из пяти точек эпох идёт вдоль самого правого края: первая точка заполнена, остальные — контурные. Прогрессия видна до того, как какой-либо текст её объясняет.

Без градиентного пятна, без плавающей стеклянной карточки, без центрированной кнопки.

Page 31 of 37

Подпись-движения:

  • Полосы эпох: Landing и Evolution — вертикальная последовательность полноэкранных цветных полос, каждая — другой цвет-основа эпохи (cream → bronze #B8791F → forest #4E6B4A → slate #3F5A73 → tomato #C4472B), номер эпохи крупно во внешнем поле, название эпохи — крупный Jost-заголовок внутри полосы.
  • Рейл точек эпох: постоянный 5-точечный вертикальный рейл на правом краю каждой аутентифицированной страницы, заполненные точки для завершённых эпох, анимированная 1px-риска для текущей, контур для будущих. Клик по точке переходит к полосе этой эпохи. Служит и навигацией, и прогрессом.
  • Карточки-плитки объектов: каждый предмет, инструмент и существо представлены как кремовая карточка с объектом 1:1 на простом фоне, ореховая тонкая линия, метка Jost малыми прописными и табличное число уровня эпохи — как каталожная карточка, а не игровая плитка инвентаря.
  • Кроссфейд перерождения: экран Rebirth — единственное полноэкранное цветовое поле эпохи, в которой вы только что умерли, удерживается 600 мс, затем кроссфейдом за 900 мс переходит в поле следующей эпохи, пока название эпохи набирается в display-размере. Без модального окна, без конфетти, без отскока.
  • HUD как колонка-инструмент: метры выживания (здоровье, голод, тепло) — три сложенных 12px капсулы в нижнем левом углу с табличными цифрами Jost над каждой, окрашенные в teal #2F6E6A, mustard #E8A33D и tomato #C4472B соответственно — читаются как датчики в стиле Braun, никогда как плавающие стеклянные полосы.

8. Interaction Model & Motion Direction

Interaction Model: Animated Motion Tempo: restrained Hero Dimensionality: layered_2d

Page 32 of 37

Landing Hero Motion Brief

Фокальный субъект: кремнёвое рубило — объект первобытной эпохи, сфотографированный как музейная каталожная пластина на простом кремовом фоне, обрезанный так, что инструмент больше кадра, выходящий за верхний и правый края правого цветового поля #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: все входы становятся мгновенными переключениями прозрачности, линия-рисунок становится статической иллюстрацией. Прогрессия из пяти точек эпох остаётся видимой как статическая вертикальная полоса.

Page 33 of 37

9. Non-Functional Requirements

NFR-1. Размещение в Roblox

Игра размещается в Roblox (Place в Roblox). Provenance: explicit. Обоснование: это прямое требование пользователя.

NFR-2. Идентификация и сохранение прогресса средствами Roblox

Идентификация игрока и сохранение прогресса выполняются средствами Roblox. Provenance: required_inference. Обоснование: необходимо, чтобы принятая текущая цепочка перерождений была исполнимой без добавления продуктовой возможности.

NFR-3. Готовый скрипт

Пользователь ожидает готовый скрипт (готовый код) для игры. Provenance: explicit. Обоснование: это прямое требование пользователя.

NFR-4. Читаемость текста и элементов управления

Читаемый текст и элементы управления остаются целыми на каждом вьюпорте: заголовки, словесные знаки, метки, числа, текст карточек и элементы управления остаются полностью внутри вьюпорта и своего контейнера на 375px, 768px и 1280px, переносясь или масштабируясь (например, font-size: clamp(...) с его мобильным размером), и никакой другой элемент не перекрывает их. Provenance: explicit (creative direction). Обоснование: требование направления дизайна.

NFR-5. Доступность при reduced-motion

При prefers-reduced-motion все входы становятся мгновенными переключениями прозрачности, линия-рисунок становится статической иллюстрацией. Provenance: explicit (creative direction). Обоснование: требование направления дизайна.

Page 34 of 37

NFR-6. Контраст

Никогда не размещать текст #C4472B на #E8A33D — недостаточный контраст; использовать #1E1A17 на всех средних заливках. Provenance: explicit (creative direction). Обоснование: требование направления дизайна.

10. Tech Stack

  • Платформа: Roblox (Place в Roblox) — игра размещается в Roblox. Provenance: explicit.
  • Идентификация и хранение прогресса: средства Roblox. Provenance: required_inference.
  • Готовый скрипт: готовый код для игры. Provenance: explicit.
  • Frontend-поверхности: Roblox-совместимые UI-поверхности для Landing, Primitive Start, Survival, Rebirth, Evolution, Stories. Provenance: required_inference.
  • Backend-интеграция: требуется для сохранения и открытия последующего этапа, счётчика перерождений и сюжетного содержания. Provenance: required_inference.

11. Assumptions and Constraints

Page 35 of 37

Assumptions

  • A-1. Идентификация игрока и сохранение прогресса выполняются средствами Roblox; приложение не владеет собственной системой учётных записей. Provenance: required_inference.
  • A-2. Игрок начинает с первобытной эпохи. Provenance: required_inference.
  • A-3. Завершение или смерть текущей жизни сохраняет и открывает последующий этап. Provenance: required_inference.
  • A-4. Каждый этап имеет отдельный сюжет и отличается от предыдущего. Provenance: required_inference.
  • A-5. Текущая цепочка эпох включает первобытную, бронзовую, средневековую, индустриальную и современную эпохи, как показано в направлении дизайна. Provenance: required_inference.

Constraints

  • C-1. Тематика средневековья исключена как основной сеттинг (заменена на поэтапную эволюцию от первобытного человека). Provenance: explicit.
  • C-2. Игра размещается в Roblox (Place в Roblox). Provenance: explicit.
  • C-3. Пользователь ожидает готовый скрипт (готовый код) для игры. Provenance: explicit.
  • C-4. Публичная стартовая страница (Landing) доступна анонимно; все игровые поверхности требуют входа через Roblox. Provenance: required_inference.
  • C-5. Дополнительные эпохи за пределами текущей цепочки, дополнительные сюжетные линии, социальные и соревновательные механики не входят в текущую поставку. Provenance: required_inference.
Page 36 of 37

12. Glossary

  • divine-marine — название проекта; Roblox-игра про выживание с поэтапной прогрессией перерождений.
  • Place в Roblox — размещаемая в Roblox игра.
  • Эпоха — этап прогрессии, начиная с первобытной; каждая эпоха имеет собственный сюжет, цвет-акцент и набор механик выживания.
  • Перерождение — переход от завершённой или прерванной смерти жизни к следующему этапу.
  • Первобытный человек — стартовое состояние игрока в первой жизни.
  • Рейл эпох — постоянный 5-точечный вертикальный рейл на правом краю аутентифицированных страниц; заполненные точки для завершённых эпох, анимированная 1px-риска для текущей, контур для будущих.
  • Карточка-плитка объекта — кремовая карточка с объектом 1:1 на простом фоне, ореховая тонкая линия, метка Jost малыми прописными и табличное число уровня эпохи.
  • HUD как колонка-инструмент — три сложенных 12px капсулы (здоровье, голод, тепло) в нижнем левом углу с табличными цифрами Jost.
  • Кроссфейд перерождения — переход на экране Rebirth: полноэкранное цветовое поле эпохи смерти удерживается 600 мс, затем кроссфейдом за 900 мс переходит в поле следующей эпохи.
  • Сюжет — сюжетное содержание, меняющееся между этапами перерождений.
Page 37 of 37

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: View intro
Landing: Start first life
Primitive Start: View starting state
Primitive Start: Begin primitive life
Survival: 1. Maintain survival stats
Survival: 2. Interact with era object
Survival: 3. Reach critical stat
Rebirth: 4. Hold death era field
Rebirth: 5. Confirm era transition
Evolution: 6. View progression bands
Evolution: 7. Jump to era via rail
Stories: 8. Read current era story

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: View intro
Landing: Start first life
Primitive Start: View starting state
Primitive Start: Begin primitive life
Survival: 1. Maintain survival stats
Survival: 2. Interact with era object
Survival: 3. Reach critical stat
Rebirth: 4. Hold death era field
Rebirth: 5. Confirm era transition
Evolution: 6. View progression bands
Evolution: 7. Jump to era via rail
Stories: 8. Read current era story