Resource is actually file which is downloaded once and used when needed
(like image file in web technologies).
Resources are named like "images/shake/ralph-leg01.png"
-
just like filenames.
There are 2 kinds of resources: global and local.
Global resources are stored on special global servers and can be used by any server.
Local resources are downloaded from server which client is connected to and
prefixed with "l/"
.
Global resources may be used for character models and things like that
or for common textures, audio samples, etc.
Server can't view any global resource, can't even find out if it exists.
This is the way to avoid obtaining the information about which sites were visited by client.
On the other hand server can do anything with local resources even through Lua environment.
There's special system for downloading resources described in "idefs.h"
.
Resources can be downloaded before entering room or during traveling inside room - just like web pages. There's special metadata system. But it have to be supported by server. And if it is client can decide what kind of data to download and what to avoid or replace. For example, client can say that movies shouldn't be downloaded and also character models have to be ignored and replaced by default models. This metadata can also provide information on models' LOD (Level Of Detail), texture detail level, audio support and bitrate, etc.