Convert the game data into editable assets
assets/ now holds every track as a 16-colour indexed PNG (its palette is the track palette) plus a text file of lap gates and height map, and every vehicle as a PNG sprite sheet plus a text file with its name and handling (moved out of the code). The build embeds assets/ instead of unpacking the ADFs, so the disks are no longer needed to build either. skids extract converts original disks to assets and checks each file reads back identically; benchmark results from the assets match the disks exactly. Assets win over disk data with the same name, and --data assets picks up edits without a rebuild. assets/README.md describes how to edit everything.
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# Game assets
|
||||
|
||||
Everything the game uses is stored here as editable files. The build embeds
|
||||
this folder into the executable. To pick up changes:
|
||||
- **Rebuild:** `cargo run --release`.
|
||||
- **Or skip the rebuild:** run with `--data assets`. Files given with
|
||||
`--data` override the built-in copy.
|
||||
|
||||
These files were converted from the original Amiga disks with
|
||||
`skids extract --data <folder with the ADFs>`. That conversion is lossless,
|
||||
and running it again overwrites your edits.
|
||||
|
||||
## Tracks: `tracks/<name>/`
|
||||
|
||||
### `track.png`
|
||||
|
||||
The track picture: 1024 × 512, a 16-colour indexed (palette) image.
|
||||
|
||||
- **Palette:** the PNG's palette is the track's palette. Change a palette
|
||||
entry to recolour every pixel that uses it.
|
||||
- **Road vs scenery:** colours 8–15 are road (full grip, full speed).
|
||||
Colours 0–7 are scenery (less grip, slower).
|
||||
- **Painting a new route:** paint it with the upper eight colours and
|
||||
update the gates to match.
|
||||
- **Saving:** keep the image indexed if your editor allows it. If it saves
|
||||
as full-colour RGB instead, each pixel is matched to the nearest default
|
||||
colour, which loses your palette.
|
||||
|
||||
### `track.txt`
|
||||
|
||||
Plain text; lines starting with `#` are comments.
|
||||
|
||||
- **`gate x1 y1 x2 y2`:** lap gates in race order.
|
||||
- Gate 0 is the start/finish line, and the grid forms up behind it.
|
||||
- Cars must cross every gate, in order, to complete a lap. Computer
|
||||
drivers steer from one gate to the next.
|
||||
- Coordinates are on the isometric ground plane. To find where a point
|
||||
sits in the picture:
|
||||
`picture x = wx - wy + 512`, `picture y = (wx + wy) × 31/64 − 252`.
|
||||
- `skids trace --data assets --track N --out t.png` draws the gates
|
||||
(gate 0 in yellow) and the computer cars' paths over the picture.
|
||||
- **`height`:** 64 rows of 64 numbers giving ground height × 256. Each
|
||||
number covers a 16 × 8 pixel cell of the picture. Slopes push cars
|
||||
downhill and tilt the car sprites.
|
||||
- **`start`, `flags`:** values from the original data that the game
|
||||
doesn't use.
|
||||
|
||||
To add a track, make a new folder with both files. Tracks are listed in
|
||||
name order.
|
||||
|
||||
## Vehicles: `vehicles/<id>.png` and `<id>.txt`
|
||||
|
||||
### `<id>.png`
|
||||
|
||||
A 2048 × 800 sprite sheet: 32 headings across by 25 tilts down, each cell
|
||||
64 × 32.
|
||||
|
||||
- **Colours:** use only palette indices 0–3:
|
||||
- 0 transparent
|
||||
- 1 tyres / shadow
|
||||
- 2 trim
|
||||
- 3 bodywork
|
||||
|
||||
The colours in the file are only a preview; each player's car is
|
||||
recoloured at run time.
|
||||
- **Headings:** column 12 faces right, and columns advance clockwise in
|
||||
11.25° steps.
|
||||
- **Tilts:** row = roll × 5 + pitch (each 0–4), so row 12 is the car on
|
||||
flat ground.
|
||||
|
||||
### `<id>.txt`
|
||||
|
||||
The display name and handling:
|
||||
|
||||
| Setting | Meaning |
|
||||
|-----------|---------|
|
||||
| `top` | top speed on tarmac |
|
||||
| `accel` | acceleration |
|
||||
| `brake` | braking |
|
||||
| `grip` | sideways grip; higher means less sliding |
|
||||
| `turn` | steering rate |
|
||||
| `mass` | weight in collisions |
|
||||
| `offroad` | speed and grip multiplier on scenery |
|
||||
|
||||
To add a car, add a new `<id>.png` / `<id>.txt` pair.
|
||||
|
||||
## Palettes: `palettes/*.pal` (optional)
|
||||
|
||||
16 lines of `RRGGBB`. Each file overrides the PNG palettes:
|
||||
|
||||
- `track1-3.pal`: one track
|
||||
- `track1.pal`: every TRACK1 track
|
||||
- `default.pal`: all tracks
|
||||
Reference in New Issue
Block a user