although i very much appreciate this is a 0.00001% public interest bit of knowledge, i just found the web's only surviving example of MetaPlace's markup language which its MetaScript interpreted.
in the late 90s and early 2000s, data streams sent between the server and client on mmo's was almost always a handtuned custom binary stream. e.g. UO was tuned down to the byte, because the target minimum connection speed was 14400 baud at some point (which is 1.3 kb/s).
by the late 2000s bandwidth had loosened up quite a bit, so it wasn't as critical to write super compressed data streams. in other words: you could start sending entire text streams instead just like http.
while most developers today angle for json or xml, raph said these were too heavy for use back in the late 00s.
instead, his team wrote a mini tag-based markup language.
in other words: you could just connect to an metaplace server and it would start barfing a stream of markup at you. it was up to your client software to interpret the markup language into graphics, 2d tile maps, GUIs, etc.
i'm so thankful that @crwth thought to capture that text stream. it turns out to be incredibly straightforward:
https://camelpate.blogspot.com/2009/06/outputtouser.html
[O_HERE]|10013|0:308|5|4|0|0|Crwth|0:1|0| |0
[P_ZOOM]|1.000000
[W_SPRITE]|24080:135|0.375|0.140625|255|255|255|http://assets.metaplace.com/worlds/0/24/24079/assets/images/dwnbtnpress.png|dwnbtnpresspng_|2|0|.|4|0|0
in the above three examples, each line of text is broken up into two parts:
[tagname]|argument1|argument2|argument3|argument4|...
the tag name goes in the brackets, and the arguments that you want to apply to that tag go between the pipes that follow it. unlike xml or json, there is no concept of nested properties (that i can see anyway).
#metaplace #ultima #ultimaOnline #programming