Conquest! has been developed over 20 years and as such has evolved quite a bit from the beginning, when it was a single process running as a bot on IRC. One of the major enhancements I made to the game was splitting it into a client/server model, which allows various clients (MUD, IRC, PC) to connect to the same game server. To facilitate this, all messages used in the game were assigned a unique number and moved to a file ("conquest.messages").
When a player interacts with the game, the server will send a response which contains that unique message number and any parameters which go along with it. It is up to the client to parse the message and display for the user. As such, there are over 1300 unique messages currently in Conquest!. Recently I have been trying to tighten these up, by correcting spelling or grammar mistakes, removing duplicates, and standardizing the language used by the game. It is a slow process, but definitely overdue.
On the disconnect front, I have removed the SO_LINGER option from the socket options on the server. I've been working with SeLTiC, who has created a ping program to find the disconnect "sweet spot". SO_LINGER modifies how the server deals with a close request from a client. Testing is underway to see if this solves the issue.
James has been working on Conquest! since 1993.