From: Brian G. <br...@ge...> - 2007-06-22 18:31:01
|
On Jun 21, 2007, at 1:51 PM, Toby Collett wrote: > Currently the maps can be dynamic, but there is no way to inform > the clients that there have been changes, perhaps all we need is to > be able to push update reports (not the updated data itself). For > big maps that would allow client to intelligently age data in areas > they are not currently active in and only actually re request it > when they approach the areas that have had updates. > > All that would be needed for this would be a new data message with > type=DATA, subtype=PLAYER_MAP_DATA_UPDATE_REPORT > and a message body with the update region > start (x,y) and size (width, height) A similar mechanism is already available. The driver can publish a PLAYER_MAP_DATA_INFO message, which contains the current (and possibly changed) map metadata (in a player_map_info_t). Subscribed parties (clients or drivers) can compare this metadata to their cached copies and decide whether to issue a PLAYER_MAP_REQ_GET_DATA request to get the new map. In the long run, it would be nicer to expose which part of the map has changed since last publication. But that can get tricky, since the "map diff" should be computed on a per-subscriber basis. brian. |