Brightstone -- Player Locked step multiplayer retro 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. * Deterministic logic via Q15.16 fixed point numbers. * .gam image format, derived from .gif. Palette is globally predefined. * Textures are 32x32 pixels. * 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 + ulaw + 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). * Content usage has to be predefined, to allow preloading and compilation. ---- Building ---- ==== DOS ==== Nothing is needed. Just compile. ---- .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. 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.