Trying to use super-complicated Interest Manager system.

Hi,

I am an experienced C++ developer. I need to group the replicas for updates. for example, six different groups and a general group that includes all six previous groups. I know that BitmaskInterestHandleris suitable for this purpose but I’m totally confused. I read the doc, but from incomplete examples and brief explanations, it’s not possible to understand the overall structure. also there is no helpful comment on GridMate sources.

For those who have the same problem, there is a function ( ShouldSendToPeer )in the ReplicaChunkBaseclass that allows you to manage updates on the connected peers at the chunk-level. this function will be called before each update and relies on its returned value. this solved my problem :slight_smile:

(FYI, if you only have a few hundreds of replicas, you don’t really need an Interest Manager. IM is made to deal with 1000s of replicas that are frequently updating. GridMate is optimized to send only changes in replicas. So even if you have thousands of replicas but only a few of them change at any one point, you will not experience any performance issues.)

It sounds like you are using bitmask handlers in IM as map ids and only syncing that particular part of a map or a level. Yeah, that would work. If you look at how I use IM in my sample you should be able to apply the approach but use the existing GridMate::BitmaskInterestHandler.

Are you having issues or challenges with that?

Hi! I’m glad you are looking at Interest Manager in GridMate. :slight_smile:

I’ve written an outside simple object that makes use of IM in a way more simple short sample (than MultiplayerSample that ships with Lumberyard.) You can find it here: https://github.com/Aristo7/LYBook_1.17/tree/ch40_gridmate_large_worlds

To be fair, though, my sample covers a spatial partitioning which is way more common in game-dev use. Could you explain what you are trying to accomplish with bit-mask-like filtering? Is it a spatial break down or some other? Have many replicas are you using in your system?

Thanks! :slight_smile:

I checked your sample at github, it was very clear and simple, thanks for that.
Yes, its a kind of spatial break down and if i understood the concept of replicas correctly, we have about 100 or even more in each map.
In our game, each map contains several parts (for example, small caves). In fact, these are all part of a single map, but the players does not need to get updates from all parts. Actually we need updates based on these parts, not based on a bounding-box or anything else. you can see similar technique in games like Path Of Exile.

–edited–

mistype number of replicas :slight_smile:

Thank you for the useful information you provided. I did not expect GridMate to be able to handle a thousand replicas! its so nice.

Yes. I’m going to use GridMate::BitmaskInterestHandler and if I get into trouble, I’ll definitely use your help. Thank you :slight_smile:

A post was split to a new topic: Player Slice disappears on client when using Interest Manager

image

I add PlayerAoIComponent and PointOfInterestComponent to silce ,still the slice is created by server would not show on client ?pls how ?

@MrOleksandr 6666666