Files
brightstone/Player/docs.txt
T
veclavtlica adfae10938 things!
2026-09-11 02:21:21 +03:00

40 lines
1.9 KiB
Plaintext

Pustina -- Player
Locked step multiplayer oriented engine with great restrictions.
We do not use abstractions, as the simplicity of the required set of features should allow for platform-specific implementations.
---- Restrictions ----
* Fixed sized paletted frambuffer, defaulted to 640x480. Scaling by 2 is possible.
* Deterministic logic via Q15.16 fixed point numbers.
* .gam image format, derived from .gif. RLE and Delta Frame Optimiztion is added, palette is predefined.
* Images are 16x16 or multiples of it, aligning to the grid.
* Tile view is capped at 29x29, the rest is allocated to interface.
* 30 FPS display rate.
* Fonts are in ASCII bitmaps. Tile slicing commands are issued to render them in.
* Audio samples are in our own .sam format (s8 frame delta + lzw).
* Music pieces are written in our own simple .tam tracker format, using the same .sam sample db.
* Connections are over TCP and their supersets (like WebSocket).
* Textbox provides another client-controlled view, with history.
* Content usage has to be predefined, to allow preloading and compilation.
---- Building ----
==== DOS ====
Open Watcom 2.0 32bit toolchain is used under Linux host.
Place a copy of DOS4GW.EXE alongside the executable.
Expect to need to configure $INCLUDE and $LIB variables.
---- .sam format ----
Thin sample compressing scheme tailored for use with .tam tracker.
Leading and tailing silence is stored as number of frames.
Sample data is 1 channel only, but panning can be expressed via graph.
Sample bit format is signed 8 bit delta, first frame is delta against 0. Clamping is allowed.
Generic LZW compression is applied as the last step.
---- .dab format ---
Compressed streamed content database format.
It allows for seeked access of required portions only via the content table.
Content table stores pathing, content and compression metadata as well as sized offset inside the file.