No announcement yet.

Bad FPS and Streamed Levels

  • Filter
  • Time
  • Show
Clear All
new posts

    Bad FPS and Streamed Levels

    I have 3 large maps streamed (all loaded and visible) and am trying to understand why when I spawn in 40 BOTS which are either visible and rendered or not rendered and visible to the player they kill the FPS.

    Basically I notice by adding the 40 BOTs the FPS drops by about 20 frames regardless as to whether the Bots are rendered or not.

    What is causing the drop in FPS, CPU ?

    I also tried toggling off dynamic lights, shadows and it made no difference as well. I have cull distance volumes and distance renders on meshes as well but as the stats show the issue is not meshes and with number of Tris in the scene.


    In this I image it shows I get 30 FPS with no BOTS and about 1933 Mesh draw calls, with 906k static mesh tris

    Click image for larger version

Name:	stream4_noskel.jpg
Views:	1
Size:	100.8 KB
ID:	3253598

    I then spawn 40 BOTs and FPS drops to 16 FPS on the same scene with 1967 Mesh draw calls and 912k static mesh tris + 57k skel mesh tris and 104 skel mesh draw calls

    Click image for larger version

Name:	stream3_skel.jpg
Views:	1
Size:	100.6 KB
ID:	3253599

    In a streamed map furtherest away from where the Bots are spawned they are not rendered but the FPS is still 16 with static mesh draw calls 659 and 444k static mesh tris

    Click image for larger version

Name:	stream2.jpg
Views:	1
Size:	102.1 KB
ID:	3253600

    Also in the same map furtherest away from the spawned Bots which are not visible and rendered to the player I have 2 Million static mesh tris and 3129 static mesh draw calls yet the FPS is still 16. There is no difference to FPS yet there is a big difference in Tris. If I remove the BOTS from game the scene will render 30+ FPS

    Click image for larger version

Name:	stream1.jpg
Views:	1
Size:	103.4 KB
ID:	3253601

    You should work out a way of dynamically spawning only the bots you need.


      Streaming only affects static content, dynamic elements such as pawns exist in the persistent level.

      As DWGS suggests, especially for an open world, you need a way to add the bots as they come into range and remove them when far enough away. With this approach you can have unlimited 'virtual' bot counts as long as the real bots in the same area as the player have a reasonable count.


        Problem I have is its a MP (6 players) game so level streaming is next to useless as any player can be playing in any one of the streamed levels. I've streamed the map and heavily used the distance rendering simply to make editing easier.

        I spawned 40 BOTs as am testing the max number of in game spawned bots. Yep 1 player could be at a place where the bots are not visible and another could have his hands full and yes as any player could be on any map, therefore I need to have all 3 maps streamed and visible.

        40 BOTs I dont believe is an unreasonable number to have spawned in. Which I guess comes back to why the Bots are causing the frame rate to drop, in the test scenario I've spawned 40 bots of the same i.e. they all use the same controller. In a game there would be 4-5 different controllers so I'd assume that would make things worse still ...


          Solved it, easy solution but a pain ....

          I had created the maps with Terrain, I deleted the terrain and replaced it with landscape. Whilst I have a lot of tidying up to do on the map the FPS with the Bots is running around 30 FPS even in the areas of the map with high Tri's.

          Wondering if it was the collision on the terrain, oh well shouldn't have used it as it is legacy.