6.5 KiB
Master of Vega — art spec
Every sheet below is optional. Each one starts with "path": null in
data/mastervega-artwork.json, and VegaArt.js paints a procedural stand-in
with the identical frame layout — the game is fully playable with zero art
files. To use real art: drop the PNG in assets/images/vega/ and set its
path in the artwork JSON. No code changes are needed.
Frame indexes are APPEND-ONLY. Never renumber an existing frame — the
indexes are baked into data/mastervega-rules.json and shifting them silently
mismaps every piece of artwork already drawn.
Status: ⬜ = not painted yet (procedural fallback in use).
1. ships — ⬜ assets/images/vega/ships.png
| Sheet size | 768 × 960 |
| Frame | 96 × 96 |
| Grid | 8 cols × 10 rows = 80 frames |
One row per species, one column per hull. Frame = species.shipFrame × 8 + hull.frame.
Columns (hull):
| Col | Hull | Notes |
|---|---|---|
| 0 | Scout | Small, fast, unarmed |
| 1 | Colony Ship | Bulbous, carries a habitat pod |
| 2 | Troop Transport | Boxy, no guns |
| 3 | Frigate | Smallest warship |
| 4 | Destroyer | Mid warship |
| 5 | Cruiser | Heavy warship |
| 6 | Battleship | The big one — should read as huge even at 24px |
| 7 | Star Base | Immobile orbital fortress; a ring/station, not a ship |
Rows (species): 0 Human, 1 Kestrelli, 2 Ursaal, 3 Umbrix, 4 Kkrix, 5 Mekhan, 6 Rrashaa, 7 Cerebrai, 8 Ssakar, 9 Lithox.
Ships face UP. The star map and battle screen rotate them. Each species has a colour in the rules file — art can ignore it (the sprite is used as-is) or lean into it. Silhouette matters more than detail: these draw at ~24–58 px.
2. planets — ⬜ assets/images/vega/planets.png
| Sheet size | 960 × 576 |
| Frame | 192 × 192 |
| Grid | 5 cols × 3 rows = 15 frames |
One frame per planet type, in rules order. Draw the planet as a centred disc filling ~84% of the frame, transparent outside it — the orrery and system view both place these on a black background and scale them.
| Frame | Type | Look |
|---|---|---|
| 0 | Terran | Blue oceans, green continents, white cloud |
| 1 | Ocean | Almost entirely water, scattered islands |
| 2 | Jungle | Deep green, permanent cloud banding |
| 3 | Steppe | Olive grassland, thin atmosphere |
| 4 | Arid | Tan, dry riverbeds |
| 5 | Desert | Orange sand seas, no water |
| 6 | Tundra | Pale blue-grey, heavy ice caps |
| 7 | Minimal | Grey-green, very thin air |
| 8 | Barren | Airless grey rock, craters |
| 9 | Dead | Darker, cracked, lifeless |
| 10 | Inferno | Molten orange, volcanic |
| 11 | Toxic | Sickly yellow-green fog |
| 12 | Radiated | Livid yellow-green, glowing |
| 13 | Gas Giant | Banded, a storm spot — not colonisable |
| 14 | Asteroid Belt | Scattered rocks, no disc — not colonisable |
3. stars — ⬜ assets/images/vega/stars.png
| Sheet size | 576 × 576 |
| Frame | 192 × 192 |
| Grid | 3 cols × 3 rows = 9 frames |
One frame per star class, in rules order: 0 Blue, 1 White, 2 Yellow, 3 Orange, 4 Red, 5 Brown Dwarf, 6 Binary, 7 Pulsar, 8 Black Hole.
Drawn with ADD blending on the star map (except the black hole, which is drawn normally) — so paint them glowing on transparent black, with the corona fading to fully transparent at the frame edge. The star map rotates the pulsar frame continuously and orbits a scaled copy of the binary frame, so keep the pulsar's beam axis vertical and the binary's companion at the frame centre.
4. portraits — ⬜ assets/images/vega/portraits.png
| Sheet size | 1280 × 512 |
| Frame | 256 × 256 |
| Grid | 5 cols × 2 rows = 10 frames |
One frame per species (species.portraitFrame), same order as the ship rows.
Head-and-shoulders, facing the viewer. Shown at 84–96 px on the species picker
and the diplomacy screen, so read at small size.
These are species portraits, not characters — this game deliberately does
not use the data/opponents.json roster or its videos.
| Frame | Species | Identity |
|---|---|---|
| 0 | Human | Traders and diplomats |
| 1 | Kestrelli | Avian aristocrats, superb pilots |
| 2 | Ursaal | Ursine heavy-worlders |
| 3 | Umbrix | Shapeshifters, spies, universally distrusted |
| 4 | Kkrix | Insect hive, tireless industry |
| 5 | Mekhan | Cyborgs, factories everywhere, filthy |
| 6 | Rrashaa | Feline gunners |
| 7 | Cerebrai | Vast fragile intellects |
| 8 | Ssakar | Reptilian broodmothers |
| 9 | Lithox | Crystalline, breathe nothing, colonise anywhere |
5. leaders — ⬜ assets/images/vega/leaders.png
| Sheet size | 640 × 640 |
| Frame | 160 × 160 |
| Grid | 4 cols × 4 rows = 16 frames |
One frame per leader (leader.portraitFrame), rules order. Frames 0–7 are
colony administrators, 8–15 are ship captains. Shown at 40–60 px.
6. buildings — ⬜ assets/images/vega/buildings.png
| Sheet size | 512 × 128 |
| Frame | 64 × 64 |
| Grid | 8 cols × 2 rows = 16 frames |
One frame per building (building.frame), rules order: Automated Factory,
Research Laboratory, Missile Base, Pollution Processor, Space Port, Cloning
Center, Ground Battery, Spy Center, Planetary Shield, Terraforming Plant, Stock
Exchange, Holo Simulator, Robotic Miners, Super Computer, Artemis System Net,
Enrichment Facility.
7. techicons — ⬜ assets/images/vega/techicons.png
| Sheet size | 480 × 336 |
| Frame | 48 × 48 |
| Grid | 10 cols × 7 rows = 70 frames |
- Frames 0–5: the six tech fields — Computers, Construction, Force Fields, Planetology, Propulsion, Weapons.
- Frames 6–65: the sixty individual techs, in the order they appear in
data/mastervega-rules.json(techs[].iconFrame). - Frames 66–69: spare.
8. Menu icon — ✅ assets/images/game-icons.png frame 92
The shared 660 × 660 sheet, 44 × 44 cells, 15 per row. Frame 92 is row 6, column 2 → pixel origin (88, 264). Painted.
Already supplied
| File | Size | Used for |
|---|---|---|
assets/images/vega/background-menu.png |
1920 × 1080 | Setup-screen background (darkened 62% so the cards stay legible) |
assets/images/vega/menu-title.png |
1368 × 768 | Setup-screen title, scaled to fit a 760 × 132 header box (aspect preserved) |
Sound
Already wired, no new audio needed: laser-zap.mp3, scifi-explode.mp3,
ta-rocket-1.mp3, ta-rocket-2.mp3. Soundtrack is the hacker set
(src/services/soundtrack.js).