deep-spicy is an Android game, delivered as an installable APK package. The product intent is deliberately narrow and comes directly from the authoritative user requirement: build an Android game and ship it as an APK. No genre, theme, or specific gameplay mechanic was specified by the user, so this document treats the game itself as the core deliverable and defines only the mechanics that are indispensable to make an installable, playable Android game usable end to end.
The audience is a Player — a person who installs the APK on an Android device, launches it, plays a session through the game's core interactive loop, and reaches a win/lose or score outcome. The product is Arabic-first: the interface defaults to Arabic with right-to-left layout, and a language toggle allows switching to Latin/left-to-right presentation.
This document preserves the explicit hard constraint that delivery format must be an Android APK, and it does not add adjacent product capabilities (no accounts, no storefront, no social features, no monetization) that the user did not request.
deep-spicy is a single Android application distributed as an APK. The player installs the package on an Android device, launches the app, and is presented with a playable entry screen. From there the player starts a session, plays the game's core loop using touch input, and reaches a results outcome that shows the session's score and best score, with the option to play again or return to the entry screen.
Actors
Accepted behavior
Ownership and exclusions
The product is a self-contained Android game. Its delivery boundary is the APK artifact: the player obtains the APK, installs it on an Android device, and runs it locally. There is no server-side component in the accepted scope, and no online account is required to play.
The current delivery horizon covers the three in-app screens (Landing, Game, Results) and the APK packaging itself. Everything the player does — starting a session, playing, seeing a result, and starting again — happens on the device. The language toggle is an in-app control, not a separate destination.
Future ideas that were not accepted as current requirements (for example additional game modes, online leaderboards, or store distribution) are explicitly out of the current scope and are not represented as pages or capabilities in this document.
Not applicable. No reference directive in the authoritative sources declares a content_source, so no source content inventory is included.
deep-spicy, a single primary call to action to start playing, and the current language state (Arabic default, Latin alternative). No score or session data is shown here.Each requirement is stated as a story point with provenance, lifecycle facts, and observable acceptance.
FR-1 — Android game delivered as an APK As a Player, I should receive the game as an installable Android APK package, so that I can install and play it on my Android device.
FR-2 — Install the APK on an Android device As a Player, I should install the delivered APK on my Android device, so that the game is available to launch.
FR-3 — Launch the game to the entry screen As a Player, I should launch the installed game and see the entry screen, so that I can begin playing.
FR-4 — Start a game session As a Player, I should start a game session from the entry screen, so that I can play.
FR-5 — Play the core interactive loop with touch input As a Player, I should play the game's core interactive loop using touch input, so that I can progress through a session.
FR-6 — Reach a win/lose or score outcome As a Player, I should reach a win/lose or score outcome at the end of a session, so that I know how I did.
FR-7 — Continue into a new session As a Player, I should start a new session from the results outcome, so that I can keep playing.
FR-8 — Toggle the interface language As a Player, I should toggle the interface language between Arabic and Latin, so that I can read the game in my preferred language.
FR-9 — Return to the entry screen As a Player, I should return to the entry screen from the results outcome, so that I can leave the session and start fresh later.
FR-10 — Pause and resume a session As a Player, I should pause and resume an active session, so that I can interrupt play without losing my session.
Product context. The Player is the sole active human actor in deep-spicy. They have obtained the game's APK and installed it on an Android device. They open the game to play, not to configure or manage anything — there is no account, no profile, and no setup step beyond installation.
Primary goal. To install the game, start playing quickly, and complete a session with a clear outcome they can understand and try to beat.
Distinct accepted responsibilities.
Relevant inputs or decisions. The Player decides when to start a session, how to play within the loop, whether to pause, whether to continue into a new session or return to the entry screen, and which interface language to use.
Interactions with other accepted participants. The Player is the only active human participant. The Android OS/device is a non-persona system actor that hosts the installed APK, supplies touch input, safe-area insets, and lifecycle events. The build/distribution toolchain is a non-persona system actor that produces the APK the Player installs. No other human participant is affected by the Player's actions.
Observable success. The Player installs the APK, launches the game, plays a session, sees a clear outcome with their score and best score, and can immediately start another session or return to the entry screen.
Source-backed constraints. The Player's device is Android, and the game reaches them as an APK. The interface is Arabic-first with RTL layout and a language toggle. No account or identity is required.
The creative direction is authoritative for this section. It names Bruno Simon as the muse and the headline idea: a playable world, built for thumbs. The register is a mobile game as a toy you hold — tactile, bright, immediate, forgiving — with playful discovery rather than tension or prestige as the emotional target. The product is Arabic-first, so the visual language must read right-to-left as naturally as left-to-right, with type that carries warmth in Arabic script.
Palette (light mode)
| Role | Hex | Usage |
|---|---|---|
| Background | #FFF3E2 | Warm cream ground — the "table" the toy sits on (~60%) |
| Surface | #FFFFFF | Crisp white cards and score tiles (~20%) |
| Text | #1B1A2E | Ink for all readable type (13.6:1 on cream) |
| Primary | #FF5A5F | Coral — primary action and player token (~10%) |
| Accent | #FFC93C | Lemon — reward/score accent and highlight on interactive shapes (~7%) |
| Muted | #6B6478 | Secondary text and subdued labels |
| Secondary (scene only) | #4ECDC4 (mint), #5AA9FF (sky) | Low-poly scene material only (~3%); never used as text |
Proportions: ~60% cream ground, ~20% white surface, ~10% coral, ~7% lemon, ~3% mint/sky. No blue-indigo anywhere in the UI layer; sky blue is reserved for 3D geometry only.
Typography
العب الآن and PLAY NOW sit at the same visual weight. Headings at weight 800, tight tracking (-0.01em), sentence case in Latin and unlettered Arabic.clamp(48px, 9vw, 120px)). Body 16/18/20px, labels 13px, score numerals 56px mobile → 96px desktop.Shape language
0 6px 0 rgba(27,26,46,0.18) give panels a physical, pressable thickness.Layout
Three screens, one continuous diorama. Landing: a full-bleed low-poly scene (floating island, blocks, a ramp) with the wordmark and a single giant pill CTA resting on the island's surface, plus a language toggle pinned top-right (Arabic default, RTL mirroring the whole layout). Game: the scene becomes the playfield; a minimal HUD — score chip top-centre, pause chip top-left (mirrored to top-right in RTL) — floats over it at 16px inset from the safe area, with the player's thumb controls in the bottom third. Results: the scene dims to 40% and a white scoreboard card slides up from the bottom edge, showing score, best, and two pill actions. Grid is 4/8pt; content column maxes at 1120px on desktop but the scene always bleeds edge-to-edge.
Imagery
No photography, no stock people. Everything visible is built geometry: low-poly 3D props (blocks, cones, a ramp, a spinning collectible), faceted in flat-shaded material with three-tone shading per face. Decorative spot art on the results screen is flat vector confetti and chunky star shapes in coral, lemon and mint. Icons are 2px-outline rounded pictograms with the same corner radius as the cards.
The landing screen is a playable diorama, not a headline block.
A full-bleed low-poly island floats on a warm cream sky (#FFF3E2), rendered as a real-time 3D scene, with the coral player token sitting on it and gently bobbing. The wordmark deep-spicy is set in Baloo Bhaijaan 2 at clamp(48px, 9vw, 120px), ink on cream, placed on the island's upper plateau — it is a physical object in the scene, casting a soft offset shadow, not an overlay. Beneath it, resting on the island surface, is one oversized coral pill CTA (العب الآن / PLAY) at 64px tall on mobile and 80px on desktop, pinned so it never leaves the viewport. A lemon chip in the top-right (top-left in RTL) toggles language.
There is no centred headline + subtext + blue button stack and no gradient blob: the hero is a place you are about to touch. The player token doubles as the cursor — on desktop it follows the pointer with spring physics and squashes on contact; on mobile it is the drag target, so the landing screen is already a tutorial for the game's input. This concept only recomposes accepted content, states, and controls (wordmark, start CTA, language toggle, player token) and introduces no new behavior, page, or destination.
Interaction Model: Animated Motion Tempo: expressive Hero Dimensionality: webgl
Landing Hero Motion Brief
cubic-bezier(0.34,1.56,0.64,1)), score numerals counting up with a 60ms per-digit tick, and the results card sliding up with a single soft bounce. The landing scene has one slow idle loop — the island bobs 8px over 6s and a few low-poly props rotate gently — which is the only ambient motion.prefers-reduced-motion, the idle loop stops, the island sits still, and all transitions become 120ms fades with no overshoot. No motion survives reduced-motion as an infinite loop, and no decorative motion plays during active gameplay.Landing Hero 3D Scene Brief — DIRECTION-DERIVED
The direction specifies webgl hero dimensionality, so a real-time 3D hero is expected. Build one crafted real-time object: a compact low-poly floating island scene that shows the product's defining state — a playable world with a coral player token resting on it. The scene uses flat-shaded, faceted geometry with three-tone shading per face (no smooth high-poly spheres, no soft ambient-occlusion realism), material colours drawn from the palette (cream ground, coral token, lemon highlights, mint and sky as scene material only). The wordmark and CTA are placed as objects on the geometry with offset shadows, not as HTML floating over a background image. The scene supports the single slow idle loop described above and degrades to a still, fully legible arrangement under prefers-reduced-motion.
NFR-1 — Android APK delivery format (explicit) The game must be delivered as an Android APK package. This is a hard constraint from the authoritative user requirement. Rationale: the user explicitly requested an Android game in APK format.
NFR-2 — Android device compatibility (required_inference) The APK must install and run on an Android device. Rationale: installation on an Android device is the indispensable prerequisite for the accepted play journey.
NFR-3 — Touch input (required_inference) The game's core loop must be operable with touch input. Rationale: the accepted play journey requires the player to play the loop on an Android device, whose primary input is touch.
NFR-4 — Arabic-first interface with RTL support (explicit) The interface must default to Arabic with right-to-left layout, and must support switching to Latin/left-to-right presentation via the language toggle. Rationale: the user requested the product in Arabic, and the creative direction establishes full RTL mirroring as a first-class mode.
NFR-5 — Local session state (required_inference) Session state (current score, best score) must be maintained locally on the device. Rationale: the accepted requirements include a results outcome showing session and best score, and no backend or account is in scope.
NFR-6 — Readable text and controls at every viewport (explicit, from the creative direction)
Headlines, wordmarks, labels, numbers, cards' text, and controls must stay entirely inside the viewport and their container at 375px, 768px, and 1280px, wrapping or scaling (for example font-size: clamp(...) with its mobile size) to fit, with no other element covering any part of them. Imagery, decoration, and motion may be cropped, bled off an edge, rotated, overlapped, or cut exactly as the direction asks, as long as they cover no readable text or control.
NFR-7 — Reduced-motion support (explicit, from the creative direction)
Under prefers-reduced-motion, the idle loop must stop, the island must sit still, and all transitions must become 120ms fades with no overshoot. No motion may survive reduced-motion as an infinite loop, and no decorative motion may play during active gameplay.
NFR-8 — No backend or network dependency (required_inference) The game must be fully playable without a network connection or backend service. Rationale: no backend, API, or online account is part of the accepted requirements, and the game is delivered as a self-contained APK.
The authoritative sources do not specify a technology stack beyond the Android APK delivery format. The following choices are labeled defaults and are selected to satisfy the accepted requirements without adding product scope.
[Default — not specified by user]webgl hero dimensionality. [Default — not specified by user][Default — not specified by user][Default — not specified by user]No backend service, database server, container orchestration, or cloud deployment is required by the accepted requirements. If a backend were later introduced, it would be out of the current scope.
Assumptions
Constraints
#0057FF, #2563EB, #4F46E5) or blue-on-white buttons; the accent is coral and lemon on warm cream. (explicit, from the creative direction)
لعبة أندرويد — حمّل الـ APK والعب
حرّك المؤشر — يجري الرمز ويرتد عند اللمس. اسحبه بإصبعك على الجوال. العربية

لعبة أندرويد — حمّل الـ APK والعب
حرّك المؤشر — يجري الرمز ويرتد عند اللمس. اسحبه بإصبعك على الجوال. العربية
No comments yet. Be the first!