What kind of service are you trying to provide? How are requests from clients fulfilled by servers? How frequently do requests come in? What is the ratio of servers to clients expected to look like? What kind of resources does it take to fulfill the average request? Can you segregate request types based on their resource requirements, i.e. put lots of cheap requests on one server and spread out the expensive requests among multiple load-balanced servers?
Inter process communication between client and server via remote calls, client and server send to each other text strings. There will be several server-services: IRC, Anti cheat, trade, etc. each one with its particular set of scripts.
I am figuring the anticheat service to work like this:
For each action the client affecting the persistent data, once validated by client it will send a text-string to the server in the form: "script_command¶m1¶m2,..."
For example, if the player buys a potion, it will send to server: "buy_potion&life_potion"
At server side (where the incoming connection is assiciated to a player at login) it is verified if player can buy that potion and have enough money, if so, the operation becomes validated and changes are made to DB (no communication back to client), if operation not validated player is cheating and server will log/disconnect that client.
Another case:
The server want to display a message window to the client: it would send a string to the client in the form: "message_player&A message"
the client receives that string and calls its script "message_player" with the param "A message"
The system is for an MMO Tycoon style game. TCP and just sending strings between client and server for simplicity. I have been digging and thinking how to implement this and this is what I ended with. I think it is very low-bandwitch demanding, in any case, any suggestion is welcome, maybe Im making some mistakes or possible to improve.
Thanks in advance!