Our architecture consits of three components. A connection manager/command parser, a player character manager, and a world content manager. The player character manager handles keeping track of PCs and all things related to them. The connection manager/command parser, here forth called the game server keeps track of all skills and commands, and coordinates the resources of the game so they can be displayed properly in the client. Combat will also take place in the game server. The world manager takes care of handling all of the objects and NPCs in the game. It is where the zones are defined, resets occur, and where new zones are installed.
A client connects into the game server(through some YTBD firewall scheme) and the game server is responsible for matching a PC with that socket descriptor. From here all communication within the world goes through the game server. The benefit of this is that additional game servers can be brought up to serve more players as needed. These games servers can access the world server and the PC server in paralell and we have scalability taken care of. Since each of the three servers communicate through a protocol(custom designed), we should be scalable and reliable.(assuming built in redundancy coding)
The question: I would like to have the best performance possible while maintaining 5000+ players on at one time. Mind you the game is 2 years away. Given the above architecture are there any blatant things you can see that might be missing or considerations that look to be miseed? I know this is a broad question, but I am only really looking for a validation of sort that would indicate we are not headed in a blatantly wrong direction. My gut tells me no but I thought I would throw it on the board here and see what the rest of you have to say.
ps The alternative to this is to create on massive executable to forgo the protocol between servers. Another alternative is the use of threading or COM in conjunction with the servers as a way to encapuslate interoperabilitiy and inter-server-communication. Your thoughts?
[This message has been edited by kressilac (edited November 29, 1999).]