<URL: http://bugs.freeciv.org/Ticket/Display.html?id=39872 >
> [wsimpson - Fri Feb 22 07:29:28 2008]:
> Originally had thought about client.player, but changed
> it to .playing after considering the meaning. In freeciv,
> "player" is the civilization, not the user. That's what's
> somewhat confusing.
I think that reasoning could work for both "playing"
and "player"; it is just that 'client.playing' struck
me as some manner of boolean variable when I first saw
it (of course a quick bounce via cscope to the decla-
ration cleared up that misconception). Anyway it is a
very minor quibble, and this way (with "playing") at
least there is not a search ambiguity with 'struct
player' (were it "player").
> The clients are playing (or observing) the civilization.
I like to use a slightly more precise terminology:
- server: an entire civserver.
- client: an entire civclient.
- connection: a client that can connect to a
server. Can be detached, an observer, or control
- player: a game entity. A player can have zero
or more connections attached to it, though only
one controlling connection (the rest being
"Connection" corresponds to 'struct connection' and
"player" corresponds to 'struct player'. A "player"
is a civilization (so the terms are interchangeable).
Unfortunately at the moment a "connection" appears to
be used to represent both a network connection and
a user (e.g. 'struct connection' contains both low-
level networking fields and user-related fields such
as 'username' and 'access_level'). This is not really
a problem at present (since it is used only to handle
connections by clients/servers), but separating the
two might be beneficial for example to implement non-
blocking metaserver communication (a "connection"
would be made to the metaserver, its write buffer
filled with the POST request, and the main select loop
could be used to wait for writability).
Yes rather off-topic. But the metaserver (meta.freeciv.org)
is not responding today (again) so it is painfully
reminding me of this inconvenience. :(
Freeciv-dev mailing list