About game server architecture patterns
Hey there,
I found a really nice blog about game server architectures: https://gameserverarchitecture.com
If I would categorize the original MU Online game server into one of the mentioned architecture patterns, it's probably mostly the monolithic one, with some slight signs of the map centric pattern in case of 'Loren valley', 'Crywolf' etc. In case of the latter maps, the game client however starts a new connection to another server and is not using something like distributed network connections. Because of that, the player is noticing major lags when the map change forces the game client to connect to another game server.
For the OpenMU project, I will probably stick to the monolithic approach for now. MU Online is a game which doesn't require that much resources, so I think one physical server could easily handle thousands of players with todays hardware. However, I already did some changes which would allow to switch to a more map-centric architecture. For example, a player sees himself always with the same fixed player id and object ids are managed by the game maps.
Of course, the map centric pattern would probably be perfectly suited for MU Online and would allow to run a server efficiently in the cloud. You could start with one or two (WorldServer + 1 AreaServer) small and cheap servers and depending on the load, you could add or remove AreaServers dynamically at runtime. So for example, instead of spending like 50 € a month for a fully dedicated server, you could start with one to three cheap 3 € servers and add more servers on-demand.