things!
This commit is contained in:
+36
-10
@@ -1,13 +1,39 @@
|
||||
Pustina -- Player
|
||||
BYOND-inspired optimized web-driven content player.
|
||||
All logic is processed on the server, whereas player only does display changes and sends unreliable inputs.
|
||||
This allows for no-update and hidden content strategies, allowing for mystic and truly seamlessly progressing world.
|
||||
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 frambuffer, default is 640x480, but platforms can implement their own. Scaling by 2 is possible.
|
||||
-- GIF image format for all drawing purposes. Delta Frame Optimiztion is encouraged.
|
||||
-- Images are 32x32 or multiples of it, aligning to the grid.
|
||||
-- 20 FPS display rate.
|
||||
-- Fonts are in ASCII bitmaps.
|
||||
-- Audio samples are in vorbis format. Music pieces are written in our own simple tracker format, using the same vorbis samples.
|
||||
|
||||
---- 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.
|
||||
|
||||
Reference in New Issue
Block a user