I've built a multiplayer game that requires a significant amount of data to keep track of the current game state. To put it in perspective, this game is a wildfire fighting game, and the map is a large 2D array of terrain objects. Each terrain object contains information on its type (ie, trees, grass, water, etc), its state (ie, alive, dead, burnt, etc), its location (ie x,y coords), etc etc. Currently, these maps contain approx 55,000 terrain objects, but later may potentially contain millions of terrain objects for epic size maps.
Currently, the initial map data is saved in an object that's loaded from a file, approx 1-3mb, which is loaded initially by each client. Then the "operator" client handles all the fire spreading calculations and sends that info to all the other clients. All that is working perfectly, but here's the part that's tricky for me. If a new player joins an existing game, I want to send them the updated game state, what trees are already burning, already dead, etc. Now since the "operator" client has already sent that data for each tree as it burns, I could hold that information in the BigBD. I'm not sure how to make that work properly, what kind of data structure would I need to implement.
Furthermore, the database would need to be able to handle multiple maps played by different groups of players in different game rooms. I hope I explained myself clearly and would appreciate any advice on how to set this up.
Thanks,
Jason