I'm working at this time on a personal multiplayer android game project, involving robot battle like the ones in animes. It is a work on at least 1 year for commercial purpose.
I'm writting most of the compoung of the game, inspiring from irrlicht for the 3D part, SFML for the system and network part and I'll use FMOD for sounds and Bullet for physics.
My concern here is for the network part. I didn't made any MP game on my own, but I got solid concept and ideas from my previous job in a game company.
Here is what I've planned so far for networking :
I'll have 4 entities to manage in my architecture :
- Multiple game clients
- Multiple dedicated server instances
- One master server
- One database (with timed backups)
I planned to manage the game like World of tanks, meaning :
- Each client only display the game in its current state and send player inputs.
- Each dedicated server manage physics, game states and player input altogether.
- Each dedicated server send resulting game states to the client on regular basis and more immediate game events (death, shots, impact, end game)
World of tanks is a PC game and allow 30 player by match, I'll restrict my game to 8 player per match to reducec networking traffic and CPU usage of the devices.
The master server will manage the client to dedicated server connection and usage, game statistics and player accounts.
The database will store the player accounts, match result and player assets as robots frame and customisation.
I have my plan, but how to put it to use?
My issue is, I have no solid server-side knowledges to construct all this. I can't even know if my idea is viable, so here I come :
I want to know : Do you have some good books, tutorials or examples about the kind of architecture I'm doing? I don't even know how I'll implement the dedicated server instanciation, connection and run from the master server. :/
I want to expect : What kind of issue I should face with this kind of architecture? Do you have some technical numbers to share, like an acceptable amount of data to transit from the mobile device to the server? Among this number, what can 3G support? What can Wi-fi support?
I want to do : To send all the data, I'll need a solid contract with some network provider for a good bandwidth, but what about the server itself? Would it be better to buy my own rack so I can act directly on it, or should it be better to rent a server in a profesionnal company with all the technical support? Also, what about the database? What would be a good RDBM, good to manage thousands of account, assets and stuff with good security without using too complicated SQL request?
I want to... Know more! : If you have had an experience like this, would you give me some more advices on aspects I didn't mentionned yet?
Edited by Spidyy, 11 February 2013 - 09:05 PM.