Results 1 to 14 of 14
  1. #1
    MSgt. Shooter Person
    Join Date
    Jan 2012
    Location
    Eynsford, Kent
    Posts
    134

    Default Terrible fps on our game.

    Ok i cant go into too much detail as the game is unreleased and commercial, but basically.

    In the first area i am getting around 15-18fps, it's a small outdoor scene with about 80k tris/Merged meshes via James Tans' method and optimized well. Also using levelstreaming so it's the only one loaded at the time.

    If i run the level on it's own i get a solid 60fps on iPad3 but when i run the full game it drops to 18fps.

    Our virtual memory is 412MB!
    Texture memory at 50MB
    Mesh memory at 20MB

    What do you think is going so badly wrong here??

    Thanks
    Make Something Unreal Live 2012 Winner
    Environmental Artist @CommandoKiwi

  2. #2
    MSgt. Shooter Person
    Join Date
    Oct 2011
    Posts
    88

    Default

    What do you mean with 412MB virtual memory?

    Is your app using 412 MB of RAM? This is way too much if you aim to publish your game to other devices than iPhone 4S or iPad 3. Even on 4S it could easily crash though to memory issues.

    Moreover 80k tris is a lot for a mobile device to process. I always try to keep it under 20k...

  3. #3
    Palace Guard
    Join Date
    Mar 2008
    Posts
    3,597

    Default

    80k shouldn't be a problem on iPad 3

    I've got a file on iPad 2 with at least 100k and lots of textures plus normals and specular, still runs at like 40fps.

  4. #4
    MSgt. Shooter Person
    Join Date
    Jan 2012
    Location
    Eynsford, Kent
    Posts
    134

    Default

    The Virtual mem that shows is the AppSize
    Make Something Unreal Live 2012 Winner
    Environmental Artist @CommandoKiwi

  5. #5
    MSgt. Shooter Person
    Join Date
    Apr 2011
    Location
    costa del Tonge Moor
    Posts
    71

    Default

    whats your draw calls?
    id say that 80k is high if your viewing it all at once, have you setup the precomputed visibility for the scene.

  6. #6
    MSgt. Shooter Person
    Join Date
    Jan 2012
    Location
    Eynsford, Kent
    Posts
    134

    Default

    We don't have precomp Visibility because we use levelstreaming, and about 30 Draw calls.
    Make Something Unreal Live 2012 Winner
    Environmental Artist @CommandoKiwi

  7. #7
    Veteran
    Join Date
    May 2007
    Location
    Above KillZ, Below StallZ
    Posts
    9,953

    Default

    Without running StatsViewer and/or GameplayProfiler on it, your guess is probably about as good as any of ours.

    Try precomp visibility, no matter what, though. If it doesn't cause any problems, it will likely improve things. I was quite surprised on low end devices, to discover a quite sizable improvement in a project I'm working on right now, when using precomp visibility, even though our visibility is almost entirely decided by the view frustrum anyway - my guess is that it eliminates the calculations for the dynamic visibility calcs completely, saving some time in exchange for the memory.
    http://www.ericbla.de http://www.dungeondefenders.com http://en.wikipedia.org/wiki/Warm_Gun http://www.rekoil.com http://www.groundbranch.com

    - Please don't send me private messages asking programming questions, those would be better asked on the Programming forum here. Thanks

  8. #8
    Palace Guard

    Join Date
    Jun 2007
    Location
    Christchurch
    Posts
    3,515

    Default

    I dont think you can use both level streaming and precomputed visibility at the same time as precomputed visibility data is stored in the persistant level. But yes, profiling is the only real way to tell.

  9. #9
    MSgt. Shooter Person
    Join Date
    Jan 2012
    Location
    Eynsford, Kent
    Posts
    134

    Default

    I don't have a mac so i can't use instruments, is this spreadsheet of ours any use?

    https://docs.google.com/spreadsheet/...fOTd4bnc#gid=0
    Make Something Unreal Live 2012 Winner
    Environmental Artist @CommandoKiwi

  10. #10
    Palace Guard

    Join Date
    Jun 2007
    Location
    Christchurch
    Posts
    3,515

    Default

    Right, so the world tick and the component update time is pretty big.

    Given that I know your game with reasonable detail, are the Actors in the persistent level or within each streamed level? If all of your actors are within the persistent level, then it is advisable to shift those actors into their respective streamed levels so that they aren't being ticked and their components aren't being updated.

    The best way to tell if the actors aren't in the streamed levels, hide the streamed levels and if they appear floating in mid air then they are in a different level.

  11. #11
    MSgt. Shooter Person
    Join Date
    Jan 2012
    Location
    Eynsford, Kent
    Posts
    134

    Default

    Thanks, will check this out. Our programmers aren't on so i'll do my best :P
    Make Something Unreal Live 2012 Winner
    Environmental Artist @CommandoKiwi

  12. #12
    MSgt. Shooter Person
    Join Date
    Jan 2012
    Location
    Eynsford, Kent
    Posts
    134

    Default

    Alright so i checked and this is the result.



    So yeah they aren't level streamed, He's just on his way home to explain to me why they can't work because then the doors wouldn't be able to reference the end location or something, will have more details when he gets back.
    Make Something Unreal Live 2012 Winner
    Environmental Artist @CommandoKiwi

  13. #13
    Veteran
    Join Date
    May 2007
    Location
    Above KillZ, Below StallZ
    Posts
    9,953

    Default

    Quote Originally Posted by Solid Snake View Post
    I dont think you can use both level streaming and precomputed visibility at the same time as precomputed visibility data is stored in the persistant level. But yes, profiling is the only real way to tell.
    It at least appears to work if you set the Use Precomp on in the plevel. I could be wrong on this, i'm not entirely certain how to verify for sure, but it seems to have given a performance boost on the low end.
    http://www.ericbla.de http://www.dungeondefenders.com http://en.wikipedia.org/wiki/Warm_Gun http://www.rekoil.com http://www.groundbranch.com

    - Please don't send me private messages asking programming questions, those would be better asked on the Programming forum here. Thanks

  14. #14
    MSgt. Shooter Person
    Join Date
    Jan 2012
    Location
    Eynsford, Kent
    Posts
    134

    Default

    We found the bug using Gameplay Profiler, there was a random Emitter causing 50ms on tick... Weird stuff, thanks anyway
    Make Something Unreal Live 2012 Winner
    Environmental Artist @CommandoKiwi


 

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Copyright ©2009-2011 Epic Games, Inc. All Rights Reserved.
Digital Point modules: Sphinx-based search vBulletin skin by CompletevB.com.