Dark Cosmos — App Store Launch Assets (v0.1)
Dark Cosmos — App Store Launch Assets (v0.1)
Section titled “Dark Cosmos — App Store Launch Assets (v0.1)”Date: 2026-06-30 Status: Design — awaiting review Goal: Produce a fully polished public App Store listing for the v0.1 release across iPhone, iPad, Apple TV, and Mac. Even though this is a v0.1 / proof-of-concept, every asset is built to look like a professionally released game — a half-effort listing kills the word-of-mouth that grows it.
1. Context & decisions
Section titled “1. Context & decisions”- Name:
Dark Cosmos. Verified free on the App Store (Apple search API: zero exact matches). Two common words → weak as a trademark, but this is a POC and the name can change later, so no formal trademark search now. The world is literally a dark neon cosmos (nebula/starfield backdrop, the Graviton’s “Singularity Collapse”, the “Event Horizon” weapon), so the name describes the game. - Distribution: full public App Store listing (not TestFlight-only). Chosen deliberately for maximum polish and discoverability.
- Timeline reality: assets built today; submit tomorrow. App Review is 1–3 days, so the listing goes live on approval, not strictly on Wednesday. No way around this for a public release.
- Device matrix (confirmed from
export_presets.cfg): iOS preset targets iPhone and iPad (targeted_device_family=2); tvOS is a separate preset; macOS is a native universal app; (Web is the demo, not a store target).
Veracity rule (load-bearing)
Section titled “Veracity rule (load-bearing)”v0.1 ships one mode — Dark Cosmos itself (main.V01_CRYSTALS_ONLY gates off Tutorial / Story / Survival; co-op gated by V01_LOCK_COOP; areas gated by V01_LOCK_AREAS). It is just the game now — drop the “Crystals” label entirely in player-facing copy and on the site. Every screenshot, the trailer, and all copy must depict only what the shipped build actually contains. Story mode, co-op, and explorable areas are not in it, so they appear nowhere in the assets.
Ground-truth facts (verified from data/bible.json + main.gd, 2026-06-30)
Section titled “Ground-truth facts (verified from data/bible.json + main.gd, 2026-06-30)”The spine of the pitch — all true:
- Two sticks. Left stick moves; right stick aims your main weapon; the rest of the arsenal auto-fires and auto-targets. (
input/input_router.gd_AIM_AXES= right stick.) - Build a drone army. A real Drone Bay (
DroneBayPanel,max_drone_slots,build_drone_loadout) where you configure and launch a loadout of fighting drones. - Lots of upgrades. Stat mods + transformative mods + per-weapon mods + evolutions; 4 upgrade choices per level in this ruleset (
RULESET_CRYSTALS). - Big bosses. A 5-boss rotation: Warden, the 5-attack boss, FunZo, Graviton, The Eye.
- A growing arsenal of 7 weapons (6 readily available + scatter unlocked via progression), each carrying an element.
Do NOT claim “14 elements” or “91 reactions.” Real numbers: 14 elements defined but only 6 wielded by weapons, ~11 seen across weapons+enemies (time/sound/nano never fielded); ~10 named reactions authored (Plasma, Superconduct, Thermal Shock, Combustion, Electrolysis, Collapse, Absolute Zero, Blight Implosion, Shatter, Paradox), the rest a generic burst. Frame reactions as a mechanic (“stack an element, hit with a different one, set off a reaction”), not a headline count.
2. Deliverables
Section titled “2. Deliverables”| # | Deliverable | Spec |
|---|---|---|
| 1 | Capture harness | Dev-only Godot tooling that renders the premium (Metal) look and saves frames at every device aspect ratio + records the trailer master. Not shipped in the game. |
| 2 | Screenshots | 6 scenes × 4 device families (~22–24 final images), composited through one branded neon template at exact device pixel dimensions. |
| 3 | Listing copy | Name, subtitle, promotional text, keywords, full description, What’s New, plus category + age rating answers. |
| 4 | App preview trailer | One master gameplay capture → 3 cuts (iPhone / iPad / Apple TV). Mac App Store takes no preview. |
| 5 | Icon | Review existing 1024² icon; confirm it reads at small sizes; polish/re-cut if needed. |
| 6 | Polish extras | Press one-sheet + hero feature graphic (for the site / future PR). |
| 7 | Site refocus | Rebrand bullet-heaven.lumara.digital → Dark Cosmos, refocus all content on the one shipped mode (drop the “Crystals” label), update legend/copy to the twin-stick / drone-army / bosses pitch, and host the privacy-policy page (a hard submission requirement — see §10). |
3. Imagery source & capture pipeline (Approach A)
Section titled “3. Imagery source & capture pipeline (Approach A)”Render the game on the Mac forced onto the RenderingDevice renderer so the full premium stack lights up — HDR bloom, gravity lens, GPU particles, hero/boss lights, chromatic aberration, shockwaves, thruster trail, colour grade, nebula (builds 82–96). The HDR/effects code keys off RenderingServer.get_rendering_device() != null, which is true for the Mobile/Forward+ renderers and false for gl_compatibility. So:
godot --path . --rendering-method mobile res://marketing/capture/capture.tscngives the same look the Apple TV ships, capturable at any resolution.
Harness design (marketing/capture/, dev-only, excluded from exports):
- Boots the real
Mainin attract mode (the existingAutoPlayer) so the game plays itself, and uses the dev console seams (cycle-23 Remote Playtest Console:Sim.dev_spawn_custom,dev_spawn_boss,pause_spawns,dev_clear_enemies,dev_invuln,timescale) to stage each scene deterministically — spawn a dense pack, drop a boss, trigger a reaction, force a level-up/codex card. - Pins
QualityManagerat L0 (every effect on, no adaptive degrade) and hides all debug UI (F2 overlay, build label, dev pairing code). - Sets
get_window().sizeto each target resolution and savesget_viewport().get_texture().get_image()→marketing/raw/<scene>_<WxH>.png. - Determinism untouched: this is render-side only; the harness lives in
marketing/, the determinism test never references it.
Fallback: if Metal-on-Mac capture misbehaves, capture stills from the gl_compatibility build (or the web demo via headless Chrome) — correct framing, flatter look. Stills only; the trailer needs the Metal path.
Target resolutions (landscape — the game is a landscape twin-stick title):
| Family | Screenshot size | Notes |
|---|---|---|
| iPhone 6.9“ | 2796 × 1290 | Apple auto-scales this down to all smaller iPhones. Confirm exact accepted size in App Store Connect at build (2868×1320 also valid). |
| iPad 13“ | 2732 × 2048 | Required for iPad apps. |
| Apple TV | 1920 × 1080 | (3840×2160 also accepted; 1080p is universal.) |
| Mac | 2880 × 1800 | 16:10. |
The game uses canvas_items stretch + expand aspect, so wider screens simply reveal more arena — every ratio frames cleanly with no letterboxing.
4. Screenshot scenes (the 6, in carousel order)
Section titled “4. Screenshot scenes (the 6, in carousel order)”A deliberate story across the carousel, built on the verified pitch — hook, control, depth, payoff:
- Survive the neon horde — dense mid-combat swarm. The hero shot / first screenshot / poster frame.
- Twin-stick control — move and aim at once while your weapons auto-fire into the pack (show the aim direction + multiple weapons firing).
- Set off elemental reactions — a Plasma reaction mid-burst with the reaction name floating (mechanic, no inflated count).
- Lots of upgrades — the level-up card screen (cyan weapon / gold mod / steel stat cards, with the now→after preview), 4 choices.
- Build your drone army — the Drone Bay loadout and/or deployed drones fighting alongside you. (Headline hook.)
- Fight big bosses — a Graviton fight with the gravity-lens distortion and the boss HP/name bar.
(Reserve, if a scene captures weak: the enemy codex “NEW ENEMY” card; Warp dash streaks; a 3-minute-mark crescendo.)
5. Marketing compositor (branded template)
Section titled “5. Marketing compositor (branded template)”Raw gameplay frames → final store images through one consistent template, rendered to exact device pixel dimensions via headless Chrome (HTML/CSS gives crisp typography and pixel-exact output):
- Layout: near-full-bleed gameplay frame + a slim caption band carrying the scene headline in the neon brand voice, a subtle Dark Cosmos wordmark, and a dark-cosmos gradient bleed that matches the site (
bullet-heaven.lumara.digital). - Safe areas per family: Apple TV overscan margins; iPhone landscape avoids the Dynamic Island / home-indicator zones; iPad/Mac use generous margins. Captions never sit where the device chrome clips them (10-foot-UI lesson from the TV overscan work).
- Pipeline: an HTML page sized to the exact device resolution embeds the raw frame + caption, screenshotted full-page at
deviceScaleFactor=1. One template, data-driven over the 6 scenes × 4 families. - Consistency: identical type ramp, colour, and wordmark placement across all images so the set reads as one designed system.
6. App preview trailer
Section titled “6. App preview trailer”- Capture: Godot Movie Maker mode (
--write-movie) records a deterministic attract-mode session on the Metal renderer at high resolution (~60–90s of juicy auto-play). Deterministic sim + AutoPlayer = a clean, repeatable master. - Edit (ffmpeg): trim to the strongest 20–25s, open on a Dark Cosmos title card, add 3–4 caption beats matching the screenshot headlines, a synthwave/neon music bed, and fade in/out.
- Cuts: export per Apple App Preview specs (H.264/HEVC, 30fps, correct per-family resolution) for iPhone, iPad, Apple TV. Mac takes no preview.
- Music: compose an original electronic track. Synthesize a ~25–30s dark-cosmos synthwave/electronic bed in code (Python + numpy → WAV: sub bass, arp, pad, kick/snare, lead), tuned to the trailer’s beats. Original = royalty-free, fully owned, no licensing. Iterate on feel before baking it in.
7. Listing copy (drafts — to refine)
Section titled “7. Listing copy (drafts — to refine)”All true to the shipped build, built on the verified pitch. Drafts as starting points:
- Name (≤30):
Dark Cosmos - Subtitle (≤30):
Twin-stick survival roguelite(29) - Promotional text (≤170): Two sticks, an auto-firing arsenal, and a drone army you build as you go. Stack elemental reactions, grab upgrades, and survive the neon dark against huge bosses.
- Keywords (≤100, comma-sep):
survival,roguelite,twin stick,neon,drone,shooter,horde,arcade,action,bullet heaven,arena,upgrade,boss - Description: short paragraphs — twin-stick control (move + aim, the rest auto-fires); lots of upgrades every level (stats, transformative mods, weapon evolutions — two runs play differently); build a drone army in the Drone Bay; elemental reactions (carry an element, hit with a different one, set off a burst); huge bosses; endless survival; thousands of entities at a stable frame rate. No story mode / co-op / numbers we can’t back.
- What’s New (v0.1): First release. Drop into the neon dark, build your arsenal and your drones, set off elemental reactions, and see how far one run can take you.
- Category: Games → primary Action, secondary Arcade.
- Age rating: abstract/neon violence, no gore → expect 9+ (resolve via Apple’s questionnaire).
8. Icon
Section titled “8. Icon”Existing icon.png is 1024×1024. Review against small-size legibility (it must read at 60px on a home screen and as a TV/Mac icon). Polish or re-cut only if it doesn’t hold up small. tvOS additionally needs the layered .brandassets set — already solved by scripts/fix-tvos-appstore-icons.py (keep using it).
9. Polish extras
Section titled “9. Polish extras”- Press one-sheet (PDF/PNG): title, one-line pitch, key features, 3 screenshots, contact/links — useful if a friend shares it onward.
- Hero feature graphic: a wide key-art frame for the site and any future store/PR placement.
10. Required metadata / compliance (public-listing blockers)
Section titled “10. Required metadata / compliance (public-listing blockers)”- Privacy policy URL (required). The game POSTs anonymous telemetry (perf + gameplay summaries, coarse device id, session id — no PII). Draft a privacy page that makes clear the data is only for performance and diagnostics — not linked to identity, not sold, not used to track. Host it on the site (e.g.
/privacy). - App Privacy questionnaire (required). Declare exactly that: “Diagnostics” / “Usage Data” collected, not linked to the user, not used for tracking.
- Support URL + marketing URL: the site, rebranded to Dark Cosmos (see §2 deliverable 7). The “Bullet Heaven” name is being removed from the site so app and marketing URL match.
11. Output structure
Section titled “11. Output structure”marketing/ capture/ # dev-only Godot capture harness (excluded from exports) raw/ # raw viewport PNGs + trailer master template/ # HTML/CSS compositor template appstore/ iphone/ ipad/ tv/ mac/ # final composited screenshots previews/ # final trailer cuts (iphone/ipad/tv) copy.md # final listing copy icon/ # icon (+ any re-cut) press/ # one-sheet + hero feature graphicmarketing/ is committed (source of truth for assets) but capture/ is added to each preset’s exclude_filter so it never ships in a build.
12. Sequencing
Section titled “12. Sequencing”- Copy + compliance (fast; unblocks submission, surfaces the privacy/age-rating work early).
- Site refocus + privacy page (rebrand to Dark Cosmos, drop “Crystals”, host
/privacy— the privacy URL is a submission blocker). - Capture harness + raw frames (the technical unlock for everything visual).
- Screenshots (compositor + 6×4 render).
- Trailer (compose music → master capture → edit → 3 cuts).
- Icon check + polish extras (as time allows).
- Assemble in App Store Connect + submit.
13. Risks & fallbacks
Section titled “13. Risks & fallbacks”- Metal-on-Mac capture flaky → stills fall back to
gl_compatibility/ web-demo capture (flatter look, correct framing); trailer stays on the Metal path. - App Review rejection (e.g. privacy/age-rating mismatch) → the §10 compliance work up front is the mitigation; build the listing to pass first time.
- Per-family resolution drift → confirm exact accepted dimensions against App Store Connect at build time before mass-rendering.
14. Out of scope
Section titled “14. Out of scope”- Localized listings (English only for v0.1).
- Story-mode / co-op assets (gated off the build).
- A real marketing campaign, paid ASO, or trademark registration (revisit if the game grows).