Im currently working on a 3D multiplayer shooter rpg game with atleast 500 enemies and 5k-10k bullets.
At the moment im porting it to ECS/DOTS for performance reasons.
But the real end goal is to have a multiplayer game with about 400-500 players in a starting area(Scene) with no enemies, and then about 100 people in another Scene with enemies.
Just to be clear, the players in Scene A will not be able to interact with players in Scene B, they might both be instanced on the same server though.
Scene A will be a sort of safezone with no enemies, but because there are at max 400 to 500 players, each able to shoot say 20 bullets a second, it would peak at 10.000 bullets a second, ofcourse it wil be extremely rare that all players in the safezone will randomly start shooting at the same time, but it can happen.
Then take into account, the use of special abilities, like throwing a bomb, or creating a particle effect around the player, or boosting all players attack in a certain radius of the player performing the special ability. This can all also happen in the safezone.
To make things more performant in Scene B, lets just call it the Forest, im aiming for a 100 to 120 players with 500-100 enemies, it will be a big open forest type map, which means players will be spread out all over the place, with enemies inbetween them also moving and shooting at them, so again you could expect in the range of 5k-10k active bullets with just 100 players in the Dungeon Scene and about 500-1000 enemies max, whichever is feasible.
My question is, since netCode is primarily being built right now for max 80 players, what other networking solution should I use for this specific project, considering Im using ECS/DOTS? (for atleast Enemies, all bullets, players and maybe special abilities)
TL;DR:
I’m making an online MMO type game, with about 400-500 players and 0 enemies active, OR 100 players and 500-1000 enemies active in a different Scene(like a dungeon). Considering the need for like 8k-10k active bullets all over the dungeon map because players will be spread over a very large area, all of them fighting different enemies, which also fire a lot of shots back.
My questions are twofold,
-
I want to make atleast all the bullets, the enemies, the player and maybe the players special abilities with ECS/DOTS.
Should I keep the inventory, items, equipment, map, trees, player stats, player health etc, on MonoBehaviours, or should I make a pure ECS game, considering the end goal is to make it into an MMO as described above, the real question is, in which case would the networking be easier? Pure ECS networking, or Monobehaviours+ECS networking? -
Considering question 1. What networking solution should I use?
Thanks, I appreciate the help.