Actor VS. StaticMeshComponent

Hello everybody,

I wanted some more-or-less “professional” informations about Actors vs. StaticMeshComponents.
In out current game-project we will have a lot of moving Elements. The basic game-principal is to create a robot, like in Besiege, so I decided to spend some time to figure out the best way possible to handle a large amount of objects.

The topics to consider are:

  • Performance (CPU and RAM)
  • Bandwidth-usage
  • Movement
  • Collision

I created a test-project where I spawned an 2D-Array of both Actors and SMC’s with exactly the same visualisation. I spawned 10x10, 40x40 and 100x100.
The results where underwhelming: No measurable FPS change.
One thing I noticed, however, was that SMC’s took noticable less time to spawn. 0.1 seconds (40x40) on SMC’s VS. 0.5 seconds on Actors with exactly the same spawning-algorythm.

So, my question would be, what would be the appropriate way to implement elements of a bot?

**A.) **Make every element a SubClass of ABotElement
or
**B.) **Only make the Vehicle-Class an actual Actor and add all the Elements as SMC’s and handle their logic externally

The problem I will have to face are collisions, since some objects give the ability to move-child objects, like spinn or extrude, so I need the ability to detect all connected groups for movement. I already implemented it for a Actor-Soluction, but had to think about something new if SMCs would be the way to go.

Thanks for your help!