If it does not save the map, our buddy Tom should "fix" that. I don't know if that would be a big issue to do tho. The concept seems simple enough. Put as much static elements of the game into the players client, upon log in, do a check for changes, if any, get em, etc...

By resources I meant pretty much everything that a player should not be able to change. Icons and its states, player icons also (maybe by database check to get players Icons and looks), Map, Music, Effects, etc... Not player data or overall data, that could hinder(?) the game.

~My english, not great.~
In response to 2DExtremeProductions (#40)
2DExtremeProductions wrote:
If it does not save the map, our buddy Tom should "fix" that. I don't know if that would be a big issue to do tho. The concept seems simple enough. Put as much static elements of the game into the players client, upon log in, do a check for changes, if any, get em, etc...

The optimal way to do this doesn't just require the client to remember things, it would require that the server remember what each client knows. If the client remembers map information but the server doesn't know what map information the client has, the server won't know when a map update is unnecessary - it'll have to send all map information to the client again.

The server could, instead, just remember which clients have up-to-date information about an object. When the server needs to tell the client about an object, it can check to see if the object has changed since the client was last updated. If the object hasn't changed at all, it doesn't send any information to that client. If the object has changed the server will send a full update to the client.

The first method could use a lot of memory especially for games with many players. I don't think BYOND currently works that way. The second method is simpler and I'd hope that BYOND implements something like that.
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 (#42)
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