[Freeciv-Dev] Re: [Patch] Attribute handling
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Am Freitag, 31. August 2001 12:02 schrieben Sie:
> > This is an updated version of the attribute handling stuff. From the
> Client/server model
> Each client player has an attribute block and the server also holds
> such an attribute block for every player. All attribute blocks the
> server holds are included in the save game. The client and server
> synchronize their blocks. The server sends it's block to the client
> at game start or reload. The client sends an updated block at each
> end of turn to the server. Since the maximum packet size is limited
> (to 4k) and the attribute block can have arbitrary size (although
> limited to 64k in this version) the attribute block can't be
> transferred in one packet. So the attribute block is divided into
> attribute chunks which are reassembled at the receiver. No part of
> the server knows any inner structure of the attribute block. For the
> server an attribute block is just a block of bytes.
> User interface
> Since an attribute block isn't a good user interface the user can
> access the attributes through a mapping/dictionary/hashmap/hashtable
> interface. This hashtable will get serialized to the attribute block
> and the other direction around. The key of the hashtable consists of:
> the (real) key, x, y and an id. The (real) key is an integer which
> defines the use and format of this attribute. The values can have
> arbitrary length. The internal structure of an value is unknown to
> the attribute handling.
> For easier access there are wrapper functions for the common types
> unit, city, player and tile. So there are easy methods for attaching
> arbitrary data to a unit, a city, a player (self or other) or a tile.
> If there are further questions please ask. If there are no comments
> this patch will be applied in some days.
I hope we get more and more agents in the future, which should
work together. So:
1. If agents are added to the client, will it be compatible to
old games (with a different attribute block)? This is important
2. What about block size? Will it be enough in the future? 64KB
upload needs about 20 seconds with my 56K modem, and this
shall happen every turn, when the line is busy anyway. That
is too much.
3. What's stored in the attribute block, aren't game facts (from
the game's point of view), but rather the players's intentions
and commands for the future (which of course will differ from
player to player). Don't you feel that it's a better approach
to store these things local for the client, and find a way to
link it to the game?
* Christian Knoke +49 4852 92248 *
* D-25541 Brunsbuettel Wurtleutetweute 49 *
* * * * * * * * * Ceterum censeo Microsoft esse dividendum.