all repos — xrxs @ 4430d607d6be9d3423626f6eaef27621e2d418ea

experimental networked application/game server with 9p

README: consistency
Iris Lightshard nilix@nilfm.cc
PGP Signature
-----BEGIN PGP SIGNATURE-----

iQIzBAABCAAdFiEEkFh6dA+k/6CXFXU4O3+8IhROY5gFAmD18dYACgkQO3+8IhRO
Y5gzvQ/+OA+jTYOFitSLVJFwxtSUTziURfonHj3tua4v7QQ4vPRY6t+odcXYgkKy
LJkqyAeaEZyl03PorKQDfyYlvQD8Xw8TlQNILPi3uhoHk7Rv/MBDJc+YBIkrRKyn
L6LWSE0e3xWWHSpyYlN6TtJMC0EwyMwm8WNZt8z2wYT4mSbxYJ41zDRxByRIIv+e
RhTdsIumPoZItex7AF7x6kIeRoofFb2L7UsNciKK5oFxbzXMmhSbQ+Fn66jFsFWo
JK+kqEEfYfUrrEGAlm1W8TqjLTkI0M7sMivTYGzDOlfTWv7TJTP7HNBBbj6jVeLH
H38Hx2kK85BHSmDGHSuROL1q0YU9RSyqMVm3WFJf9VY33VW4f/I33JSmHhzvYwcJ
2gtw5SM/Q9a//nOZh9W9CFDxy0N4UtHYHh0NQhG5Zk/XJD02N/1JglQRoe6SrSvi
dsEFenY1F5OO15McuS7dd+Fh79mp6W/MReHDYjwyhsNk0rDGkarZC2rl8udWVq5n
WrjKfcwpWJUhHhybuz6NScX+lScC03IDlfI4Yr6ImZJM7pEUjiOK0rrdXFuZxaa5
oV/KG2dmLhAN1/qu1CSmzb0nTbiJVyRh2NRB8/sLYr22TNLeHZvQdQJGaYTdyKzV
/RnQw5yGVfc+QZ/dgPs2rT7bmFGdNUgJwJNZlNBSSrGLLaXQqxc=
=AhTx
-----END PGP SIGNATURE-----
commit

4430d607d6be9d3423626f6eaef27621e2d418ea

parent

bab155e6984eef938944c8ac9adfe5a727ada8be

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

jump to
M README.mdREADME.md

@@ -20,13 +20,13 @@ * `unload`: Unload the cartridge

* `/users`: Read-only; Self and others in the realm are readable from here, one per line. It contains only yourself before joining a realm. Your username on your machine is used as your username in `xrxs` -- if your name is taken, you will get an error on attaching. -* `/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/}`. +* `/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; 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). +* `/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: `carts/CART_NAME/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: `REALM_NAME 1 4 1`. First would obviously 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). * `/universe`: Write here to update serverside state for this cart/realm; Read from here to get the complete current state. This is backed by a key-value-pair list on the server.

@@ -41,6 +41,6 @@

Each realm directory on the server should have the following files: * `realm`: Basic data for the realm, file should contain only the maximum number of members, and the password hash, if any, separated by a space - * `universe`: The actual game state in for the realm, key value pairs, one per line, as "key = value"; limit 15 characters for keys, 63 for values. + * `universe`: The actual game state in for the realm, key value pairs, one per line, as `KEY = VALUE`; limit 15 characters for keys, 63 for values. The realm should be synchronized to disc when realm membership, limit, or password change. Fenagling some periodic autosave should be possible...