After some time off from myself and some meditation during holidays, I have decided to stick with
Airplay Marmalade. They actually listened and did some repricing, while I came to to the terms that there is no such thing as free lunch, for the billionth time in my life now. Influenced or not by it, I remembered that there is whole other half of the game to be built on server side for our MMORPG, and started looking for best course of action. I found out that there is not really all that much quality reading material on subject floating around, and had to settle for short research papers and case studies. Also looked into existing multiplayer server frameworks but came to conclusion that I don’t really appreciate Windows servers. Even more importantly, I don’t really like to be vendor-locked-in and 3rd party dependent, more times than necessary that is. Besides, their Marmalade integration is not quite complete yet. Each type of online game seems to have it’s own vision of usable network implementation.
So, it is definitely going to be Node. All pre-benchmarks are impressive, syntax known, and coding simple. Also, I like to think that one day I will be able to build in-browser client which would be a nice match. Biggest realization for me was to put all world simulation to server side, and never ever trust the client for anything. I was hoping to avoid this. You see, all server-side resources will be paid by me, while client side will not. As much as I wanted to secure a smart client, it just can’t be done. Clients really need to be just dumb rendering terminals with UI and networking. Luckily, physics will be fairly simple while server centric architecture should reduce bandwidth. Also, I won’t be bothering too much with scaling, since odds are I won’t be needing it, lol! Here are some ad-hoc guesstimates, just so I can be quoted later on, proved dead wrong and fiercely ridiculed:
Around 4-10 Hz server side simulation tick.
Around 1-5 kb total player definition size.
Around 25 bytes per avatar player update packet.
Around 1:10 online/total user ratio.
Around 1000 online users support per server.
Actually I am really curious about last one and naturally I will be pushing this one as high as possible. Now I’m off to specifying messages and protocol and I won’t be back until I see the damn thing move on my screem in jerky and laggy fashion while trying to obey almighty server-side laws of physics! See you all in 10 years or so!