This first part will take care of the overall design of the whole server, and will not go into details is possible. The big stuff The only big decision here is that the server will be split into two parts: The server application; And the library, where the game world is defined. This will make the server similar to the LPMUDfamily of servers.
The server application
The server application is the actual program running on the server, and that handles all the low-level stuff like networking and parsing of input and, more importantly, defining format for the library.
- The server application will be programmed in C++, using the latest C++11 standard.
- When the C++11 standard is not enough, Boost will be used.
- The server application will be multi-threaded.
- The server application will be split into several modules.
The library The library is the actual game. Here creators add all the things that defines the world around the players, and how the players interact with this world around them. This library will be programmed in a special language that can be used from simple tasks like creating locations in an easy to understand way, all the way to make complex artificial intelligence automatons.