Can this asset support same multiple additive scene?

Hello, I would like to implement this feature into our game.


At 5:35, player interacted with NPC to trigger the quest. The player was isolated to fight the boss or play mini-game. After finishing the objective, the player was transferred back as you can see at around 8:56

I intend to use additive scene. For network, I can control the visibility of player. For physics, I will use PhysicsScene.Simulate to handle physics for each additive scene. But the problem is that I’m using navigate mesh for AI. Unity cannot separate navigate mesh from each additive scene. If many players are doing same quest at the same time then monsters navigate mesh will try to avoid other monsters from other additive scene on the server side. So, I’d like to ask that can this asset support this setup?

Hi

Unless you do any graph updates then the pathfinding will not cause any issues. For bosses like that you would probably not use local avoidance either so I don’t think that would be a problem.

I’m assuming here that the overall scene stays the same, like in the video. If you have to move the player to a completely different map then things get more complicated.

If you need local avoidance with multiple non-interacting groups it is also possible to set a layer for them so that you can have up to 32 different groups at the same time. It is also technically possible to have multiple independent local avoidance simulations, but that requires a few minor code changes to allow it.

Yes, we won’t use local avoidance for boss. But we will use it for small monsters. And yes, we won’t move players to different map. But we probably need to move players from current main scene graph to additive scene graph in order to separate them.

Our requirement is that 50 players can play in the same map. So, we need max 50 different groups at the same time. In reality, it may not reach that number but that’s our requirement. Reading your reply, I can assume that this is possible right? Is there any concern about performance?

I can’t say for sure if this will work for you. On the surface I cannot see any problems, but there may be some detail that I do not know about that will cause issues.

For 50 different groups you would need to extend the local avoidance system to support that (in practice changing an int to a long to get 64 bits instead of 32). There should not really be any performance issues with that I think, internally it’s essentially it’s just a simple if statement per agent.