The server only transmits changes to objects to a client when a specific piece of information about that object has changed. This is known as an "appearance". Additionally, all resources (icons, music) are cached in memory by heuristic, and, of course, on disk for persistence.
In response to Tom
Tom wrote:
The server only transmits changes to objects to a client when a specific piece of information about that object has changed. This is known as an "appearance". Additionally, all resources (icons, music) are cached in memory by heuristic, and, of course, on disk for persistence.

So when I connect to a game, the server sends me the appearance information for all the tiles I can see (suppose the view size is 11x11). If I take a step east there are 11 new tiles.

1: Does the server send me full appearance info for each tile? Or does it send me the type of each turf and the values that differ from the type's default values?

2: If I take 100 steps east, with each step I'll be informed of 11 new tiles/appearances. If I then take 100 steps west, I'm walking over turfs I've already seen. If the turfs haven't changed, does the server know this and not send me any information?
Each appearance is defined by visual characteristics like icon, icon_state, and so forth. When any of these change, we have a new appearance and the server sends it; the appearance data is not very big so we don't track each piece-- with the exception of the pixel-level positioning, which uses a separate system for speed. The idea is that your game has a fixed number of reusable tiles and once the client knows about these the server just has to relay them by id and pos.
The server remembers what appearance objects each client is aware of?

It sounds like the answers are:

1: Does the server send me full appearance info for each tile? Or does it send me the type of each turf and the values that differ from the type's default values?

The server sends each distinct appearance object and 11 appearance IDs.

2: If I take 100 steps east, with each step I'll be informed of 11 new tiles/appearances. If I then take 100 steps west, I'm walking over turfs I've already seen. If the turfs haven't changed, does the server know this and not send me any information?

When you take 100 steps east the server will send you all of the appearance objects you need and the appearance ID for each turf. When you take 100 steps west, you won't run into any new appearances. Each step the server will only send you 11 appearance IDs. It doesn't need to send you the actual appearance objects because it knows you already have them.
Right. The server keeps track of information about its clients (even more so in the new web/flash protocol) so we don't have to transmit more than necessary.
Page: 1 2 3