J'ai commencé à faire la même choses (plus ou moins) et j'ai opté pour :
- Un thread par client (mais qui gère tout le perso, pas seulement sa connection)
- Dans le thread principal, je ne gère que la map, et chaque thred "client" pointe vers une case de cette map
- Un thread de "thick" (défini la fin d'un tour si tu compte limiter le nombre d'actions dans le temps, redonner des HP en dormant, etc.)
- Les mobs sont gérés dans des threads identiques à ceux des joueurs, à l'exception qu'à la place d'une connection il y a un petit moteur d'IA qui les fait se déplacer et réagir avec leur entourage.
Je pense que mon système peut être très lourd, mais permet de vraiment s'élcater pour ce qui est de l'IA des mobs ; on peut vraiment imaginer des mobs qui évoluent comme les joueurs, à la recherche de matos et d'xp, qui se souviennent de trucs du genre "tiens, c'est toi le méchant qu'a butté ma femme ! tiens, meurts !"
Sinon, tu peux faire une recherche de "mud" sur le net, tu trouveras des serveurs open source tous fait pour ce type de jeu.