Nicolas Weeger wrote:
> > At some level, it is very easy to fix - if player is on a space, and
> > anything (including face) on that space change, we just send all the
> > contents of that space again to the player.
>
> Why all items? Don't items on a space get a tag, that can be used to
> simply send this item's update to clients?
I agree: the server should remember which items and attributes he has
sent to the client. (Which IMO already have to be implemented in order
to make the item/upditem/delitem/delinv commands work right.) Using this
information, the server is able to issue correct upditem commands for
changed ground objects.
> > Now a simple answer could be we don't really care about bandwidth,
> > and I can put in my fix. I'm not sure if that is really the right
> > answer.
>
> If it is really that costly, I'd say no.
I think wasting bandwidth is ok if any other solution would be way too
complex to implement. But in this case I think such a "fix" would not be
the correct answer.
> The bug isn't important enough to warrant the fix.
I somewhat disagree here: the bug is at least (slightly) confusing. For
example, go into Beginners and follow the instructions of the first
handle ("Type an A to open"). This applies the handle but the ground
view does not change until you move off and on.
> Yes, client should handle all animation it can. Would simplify the
> server code, and save some bandwidth.
I also agree here.
> Also, one should consider the case where the modified face is not
> visible because the map layer is full (can happen if many objects).
Map layer does not apply here since it is the ground view. But still:
the ground view holds only a maximum of 50 objects.
But this case is implicitly handled by the previously suggested
solution: the server would detect that the changed object has not been
sent to the client. Therefore it would not send any updates to the
client.
Andreas
_______________________________________________
crossfire mailing list
[email protected]
http://mailman.metalforge.org/mailman/listinfo/crossfire