all repos — xrxs @ bab155e6984eef938944c8ac9adfe5a727ada8be

experimental networked application/game server with 9p

added chunking/paging info to the spec
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmD18D8ACgkQO3+8IhRO
Y5gGxA/9GDbXoojCnQcFxy1fGtuDaw4AyAvbmpPSd/PiN4j+AnuA8N8b5AjyFgOY
xt2CRo9ioxmfLSukDpxZOYKtUhvyGd73u1LIbmdAHkmgcgE6vAHKlaWKn/WBFOiu
Y5zuYbV08/K5aRQRd9lmQFnnEmu4+njQVjf2AJjo0X4WpPEftwHp0RYqDPSxr7if
mglLPPr5PagF2R+bB7PX1tllMrgC/4ET2z8E3i//lKDlGua96h0TtYFsQq19IyzD
0OBSak3LNPiuOxv5gbes7Y2rwYu+/1QNZNm8P/hxkN2gUtPidItabaF04p+P0xp5
wen0NUNAQg50ruFW1WfWbv5BiT4PuwjWBGghEeJyvBE47WIcSVdzihmIl8J4NKcE
ZFT/CfuvqtLejSwZOSUwIf5gjWdfGAJikTZ2LM50Ydx+yOHYAQ8m+blmeEFL8Lbf
GLsysxaUtNQ7ezAom7RYI4Vz941gl1Zqatd6VILkHDr7f43NBt1vy8kXKMgO/7W4
jC3rIUdnnqv6wFSPdcKK95I+hv3YElpSL57ScpimIuR7Sm6GoPr3KyGoNtLZWok2
GMSOhCeFPvZoRLBko7z73AxkbUFPqywM7c+TAPv3WQXgt4cFrVsHHeZjJ+yP1Qqv
GxO82vq+aaU25+QRD4iugbtLT//YJ6CGhuf/qxtp72Euy1yzjPQ=
=2C13
-----END PGP SIGNATURE-----
commit

bab155e6984eef938944c8ac9adfe5a727ada8be

parent

f752f9deeb8baeee4745c4a5a9228760f44d49fe

1 files changed, 2 insertions(+), 1 deletions(-)

jump to
M README.mdREADME.md

@@ -11,6 +11,7 @@

* `/ctl`: Write-only control file for inputing system commands * `login PW`: Authenticate with `xrxs` -- password is hashed against realm password hash * `load CART`: Load a cartridge + * `chunk TYPE N`: Load data of type TYPE and chunk number N * `create REALM`: Create a new realm (start a new game) -- must have a cartridge loaded * `protect REALM PW`: Protect the realm with a password if not already. * `enter REALM`: Join an existing realm

@@ -23,7 +24,7 @@ * `/carts`: Available game/app cartridges for this server, read only; Carts are listed per line upon reading the file. It is backed by files on the server in a directory structure like `carts/<cart_name>/{<cart_name.rom>, data/, realms/}`.

* `/slot`: After loading the cartridge, its ROM is read from here; Read-only. -* `/data/`: Any supporting data that comes with the cartridge will be found here; to serve different files to different users, perhaps all resources of one filetype should be concatenated (ie, one file for all sprite data, one file for all text data, one file for all sound data) and let the client read whatever offset/length they need; read only +* `/data/`: Any supporting data that comes with the cartridge will be found here; They are in three parts: `sprite`, `audio`, and `text`. Because `uxn` is limited to 64-128kb input files, the filesizes of these data blobs should be 64kb max, and the `chunk` command should be used to page different files into the service when needed. The files on the server should be like `TYPE_dataN` where `TYPE` is one of `sprite`, `audio`, and `text`, and `N` is a nonnegative integer. `data0` is the default loaded if no specific chunk has been requested. Inputting a command `chunk sprite 2` will make `sprite_data2` available under `data/sprite`, and so on. * `/realms`: Open/saved realms, read-only. Realms and their associated universe are backed by real files on the server so that they can be preserved across service instantiations, in a directory structure like: `realms/<realm_name>/{realm, universe}`. Realms can either be solo, open, or protected; Open or protected realms can have limited member numbers. Depending on the cartridge, these settings can be user-managed or managed by the cartridge itself. Realms are listed per line upon reading the file like: `realmx 1 4 1`. `realmx` would be the name of the realm. The first number is number of members, second is member limit, third is 1 if protected, 0 if not. `0 1 1` represents a protected solo realm that is empty (saved game with password). `0 1 0` represents an unprotected solo realm that is empty (saved game with no password).