Download

Question about Actors concerning Network bandwith

Hello there :slight_smile:

I have a question about Actors concerning Network bandwidth… Our game project generates vor every player in the game a random (medival) “City”. A buch (30-100, depending on level) of buildings, and a wall. But I am not sure how to implement this in a efficient way. Currently, the City generates a “Grid” of possible “slots” for buildings, randomly generates a wall and spawns a Building-Actor subclass for every Grid-Cell that lies inside of the walls.

But the walls consist of Segments: The Watchtower, placed on the edges of the wall, and Wall-Segments, that connect those Towers. For those wallsegments it is calculated how many are needed to fill up the space between two Tower, and for each needed segment a “WallSegment” Actor is spawned.

So, at the end of the day, we have about 130 Actors for a single city, where 80% will never have to do anything, most of the buildings are decoration (with the possibility to be replaced by gameplay-relevant building-classes) and the wall consists of dozens of actors.

1.) This doesn’t sound good from a programming view. Very confusing and we have to use special container-classes to keep track of all wall-Segments and buildings.
2.) The game is a RTS-MMO in 3D-Space, with a generally very low network-bandwidth, what suits us, because, as I said, it shall become a MMO, e.g. about a few hundrets of players per game.

My real question: Does the number of actors influence the network-bandwith? Do they have some sort of “stand-by”-bandwidth usage? Or once spawned, do not affect network at all? Or do you know any better way to handle this. I would love to make the wall one single actor, but I never ever got it working to create mesh-components at runtime, and I tried dozens of code-examples / tutorials…

Thaks :slight_smile:

As far as i know if no values are changed no bandwith is used for the actor. (AFAIK)
Some other concerns are memory usage, I think you should look into Instanced Static Mesh Component.
And add as many instances of the mesh you need, UInstancedStaticMeshComponent::AddInstanceWorldSpace.

This will also remove other overhead like potential 30 Actors ticking instead of 1.