I am using nodejs and going to use the Redis pub sub system to scale (just in case). As you know already from games like Path of Exile, Diablo 3 and Devilian.. when you pull 20, 30 or even half of the map of monsters and use your skills to kill them all.... you can imagine the amount of data that needs to be sent over the pipe.
My dilemma is this:
Since my game is instance based, the monsters will not be loaded in all at once when a player creates a game. This was a bad design choice I made earlier and got help from this community. I learned here that we need to load them in dynamically based upon the player's position in the map. So that's fine and I got that part working now great. (Saves memory usage as well because if a player creates a game and just stands in town, there is no need to load all the rest of the 155 mobs in memory). -- I think this is the right way to do it?
My second dilemma is this:
When a player does use those aoe skills that hit multiple monsters and the game being server-side, the data across the pipe will be kind of intense? All the damage numbers that need to be sent to all 4 or 6 players in the player's range (could just be an array of 40 different numbers), but still, it's a lot of data being sent over. Factor in multiple games being opened and a high volume of online players. I'm pretty sure nodejs will need to be scaled. If you go to play.treasurearena.com and check out their websocket frames that's exactly how I am going to do it basically in the end.
This post is kind of all over the place and not even sure what category it belongs to. I'm just curious for games like Diablo 3 or Path of Exile that utilize high aoe skills; is a in-memory data structure store system like Redis used?