I'd like to see version numbers in the realname field, too.
FreeNode runs ircd-seven, their fork or the charybdis IRC server. According to
ircd-seven's ircd_defs.h (compare to
charydbis ircd_defs.h) the maximum realname length is 50 characters.
This is definitely enough to squeeze in both the game version, and most likely the compiler, too.
$ echo -n '|v12.12.12-beta12|GNUC: 40403 [64bit]|' | wc -c
38
It may even suffice to also add the build time (and date) stamp, but it may be necessary to format this as a Unix epoch to save space.
$ echo -n '|v12.12.12-beta12|GNUC: 40403 [64bit]|Jun 25 2013 22:02:29|' | wc -c
59
$ echo -n '|v12.12.12-beta12|GNUC: 40403 [64bit]|1372190549|' | wc -c
49
We need to be careful about the compiler string, though, since it can vary much, so maybe it'd be better to put this last, i.e. to have
|VERSION|BUILD TIMESTAMP|COMPILER| as in
|v12.12.12-beta12|1372190549|GNUC: 40403 [64bit]|
.
I have a feeling I brought this suggestion up with softcoder before, though, and that he said this would require patching the 3rd party library we depend on for the IRC code (and maintaining those patches) which he'd prefer not to. It would be good to have this repeated or corrected here because my memory is flaky.
Another option would be to replace the lobby group chat by one run by either the clients themselves (peer-to-peer, but this involves NAT issues, so rather not), or
XMPP (AKA "Jabber", a more modern protocol than IRC) with the
MUC (multi-user chat) extension. I would think that libpurple provides both.
It could also be something running on the masterserver, maybe something HTTP like/compatible. Ideally the transport layer should be
push, not
pull though, such as
websocket (and maybe 'activity streams' for the application/message protocol). This, however, would add plenty of new client (game)
dependencies which aren't nice either.
The upside of both XMPP/MUC (over BOSH or websocket) or some other application protocol based on websocket would be that it's usually easy to connect to it from a web application (yes there are also web clients for IRC but those are technologically awful).
Yet another option for push-style group chats is
SIMPLE (based on SIP), but I think this is actually a misnomer.
If we should ever shift to another protocol for the lobby chat (I don't really see this happening any time soon due to the extra dependencies it would introduce and the limited improvements it would provide), we should think about whether, and if so, how this should also be used during the game setup phase and / or in-game.
Back on topic: For now I guess we need to keep it simple, which may mean not having additional client information in the realname field.