実際にモジュールの構成なんですが
単純に
サーバープログラム1つ
に対して
クライアントプログラム複数
という感じでいいのかな?
もしサーバーが1つならば全てのデータを自分で管理できるために
結構ギルド・パーティなんかは楽に実装できるとおもいます。

もしサーバーが複数・クライアント複数となると
複数のサーバー間でデーターをやり取りすることになるので
違うサーバーにいるギルドメンバーを検索してギルドチャットを発射することになり
ロジックが難しいですね。