I'm developing a game server that has four stages: AccountServer, CharServer, InterServer and ZoneServer, they are different process and probably will stay on different machines. They need to intercommunicate with each other for synchronizing data, process server changes and various other "time critical" operations.
I'm looking for an RPC approach with .Net for this. It must be work on both Linux, MacOS and Windows) and preferably use binary data over TCP/Unix Sockets/Named Pipes. I already considered some solutions:
- .Net Remoting: It's called legacy and I don't know much about it performance implications, doesn't support authentication easily.
- WCF: Uses SOAP, slow as I should get several calls per second
- CORBA: Seems promising but I didn't found any implementation for .Net
Any other solutions?