16-bit Pixel RPG — Style Prompt

A short film that looks, sounds and behaves like a mid-90s console role-playing game: 320×180 pixels, a limited indexed palette, text boxes that type, menus, save files, chip music with echo. References (grammar only): mid-90s console RPGs as a system of dialog boxes, menus, battles, overworlds and save points; the palette tricks of indexed hardware (palette swaps, fades by steps, cycling); the colour-depth history of consoles (4 shades → 8-bit → 16-bit). Never use existing game names, characters, UI frames, fonts, logos, melodies or sound effects. Learn the grammar, not the assets.

1. Essence, and what it is not

Not 2.5D Pixel Art (no depth of field, bloom or real-time light), not CRT nostalgia (no scanlines, no grain), not a parody.

2. Materials & rendering

3. Colour logic

4. Type & subtitles

5. Motion quality

6. Camera grammar

A vocabulary, not a route. Game cameras are simple and legible. Opening and ending come from the topic.

Move What it expresses Can serve
Side-scroll with parallax layers journey; loneliness; progress a commute; a quest; a timeline
Locked frame with UI on one third a choice; a system speaking a menu decision; a stats reveal
Battle side view (enemy / party / windows) conflict as a system an exam; a negotiation; an illness
Top-down overworld pan the whole world; where things are a city; a map of a company; a trip
Integer-pixel tilt up something tall awe; scale a tower; a door; a mountain
Hold while the palette changes loss or change without motion grief; a memory fading; nightfall
Back view at a threshold resolve; the unknown ahead a first day; a launch; a departure
Zoom by mosaic into a thumbnail entering a memory or a file a flashback; a save slot; a photo

Framing: characters stay above the dialog box (floor line above its top edge); menus leave the action visible.

7. Sound palette

8. Native moves

A menu: use the ones your story needs.

9. Pitfalls of the medium

10. Engine

In demo/: px.js (indexed framebuffer, palettes and LUTs for every colour depth, Bayer dither, mosaic), font.js (variable-width pixel font), ui.js (windows, dialog, menus, file list, status bars), sprites.js (rig + ASCII heads), portraits.js (32×32 portraits + expressions), props.js, scenes.js (parallax, index lighting, tilt), main.js (shots, transitions, palette timing, sound events, subtitles). ?sheet=1 renders a model sheet; ?frame=<scene>&lut=<table> renders an environment through any colour-depth table. File list and build steps: DEMO.md "Build notes".

11. Variation space

You decide which game system the topic hides, the characters, the eras, the palette plan, the opening and the ending. All far from our demo:


How our demo was made (story, shots, score, end card, build): DEMO.md. Read it after your treatment exists.