Announcement

Collapse
No announcement yet.

Low-end devices optimizations

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #16
    Originally posted by AlFlakky View Post
    Its a 2D game, ofcource it will run smoothly. My game without meshes also give me 60fps..

    Im trying to optimize 3D game for a lowend device. But I think this is the part, where Unreal just too heavy to be good.

    I'll try couple more things and if there will be no performance improvements, I'll make this game on Unity3D.
    Yea, that's true, though it says to be "optimized for mobile" perhaps i thought there could be anything engine related.

    Comment


      #17
      But what exactly is so heavy? Obviously there is overhead if you use actor classes that have network prebuild, but after you initialized the objects, Unreal compared to Unity is using pass by reference with these actor classes, so reading/ writing shouldn't be heavy at all when talking about the Gamethread. I also thought the renderer for mobile works different, also textures etc. are packed differently. Does anyone here with great knowledge can exactly say why Unreal is soooo heavy? I'm really curious about some facts <3.
      https://twitter.com/Ninjin42

      Comment


        #18
        Originally posted by Ninjin View Post
        But what exactly is so heavy? Obviously there is overhead if you use actor classes that have network prebuild, but after you initialized the objects, Unreal compared to Unity is using pass by reference with these actor classes, so reading/ writing shouldn't be heavy at all when talking about the Gamethread. I also thought the renderer for mobile works different, also textures etc. are packed differently. Does anyone here with great knowledge can exactly say why Unreal is soooo heavy? I'm really curious about some facts <3.
        In my opinion, geometry render and shaders are too heavy for low-end mobile. In my game I do not have any lighting, any complex shaders (all unlit), there are no textures.

        As you can see on screenshots, I do not have anything.. Like 40k polys and unlit shading, that is all.. But I get 20 fps. So it must be a polycount or shader bottleneck.

        I have noticed, that pure unlit shader without any material logic gives me like 20 instructions.. In real shader it should be like 1 instruction for return a flat color.
        just

        return float3(1.0,1.0,1.0);

        There is somthing unreal adds to shaders. We all know about PBR, but unlit is just a color, there should be no heavy stuff. I'm trying to get deeper in unreal shader code to see, what they done there. Maybe if i'm lucky to remove those instructions, I could get a boost to game performance.
        [My FREE stuff] Custom Cameras (Stategy, Orbital) | Sticker Note | ESC Inventory System | Pipe Generation (Spline based) | Procedural spline-based Mesh generation | Homing missile
        [My Market stuff] Advanced Aim Component | Lock/lockpick Component | Blueprint-based Key Remapping System

        Comment


          #19
          It appears that issue is in Unreal and Mali. You can see the details here, if u interested.

          https://answers.unrealengine.com/que...i-devices.html
          [My FREE stuff] Custom Cameras (Stategy, Orbital) | Sticker Note | ESC Inventory System | Pipe Generation (Spline based) | Procedural spline-based Mesh generation | Homing missile
          [My Market stuff] Advanced Aim Component | Lock/lockpick Component | Blueprint-based Key Remapping System

          Comment


            #20
            Originally posted by AlFlakky View Post
            It appears that issue is in Unreal and Mali. You can see the details here, if u interested.

            https://answers.unrealengine.com/que...i-devices.html
            thanks for sharing the link. Jack is there to help you with this issue. looking forward to seeing this issue fixed before I use unreal to develop mobile games.

            Comment


              #21
              Originally posted by MoHoe View Post
              thanks for sharing the link. Jack is there to help you with this issue. looking forward to seeing this issue fixed before I use unreal to develop mobile games.
              Yeah, I'll answer him soon. Just Galaxy S3 is not available for me to test now..
              [My FREE stuff] Custom Cameras (Stategy, Orbital) | Sticker Note | ESC Inventory System | Pipe Generation (Spline based) | Procedural spline-based Mesh generation | Homing missile
              [My Market stuff] Advanced Aim Component | Lock/lockpick Component | Blueprint-based Key Remapping System

              Comment


                #22
                It appears, that my problem with Mali devices appears because of Unreal smooth frame rate.

                https://answers.unrealengine.com/que...#answer-576035

                It appears that problem is about Frame smoothing.

                Disabling "Smooth Frame Rate" option in Project Settings > General Settings and set "Use Fixed Framerate" to 60, Mali400 (Tested on Galaxy S3 and Galaxy Ace2) will render the game with 60 fps
                [My FREE stuff] Custom Cameras (Stategy, Orbital) | Sticker Note | ESC Inventory System | Pipe Generation (Spline based) | Procedural spline-based Mesh generation | Homing missile
                [My Market stuff] Advanced Aim Component | Lock/lockpick Component | Blueprint-based Key Remapping System

                Comment


                  #23
                  Looks like I was wrong. My testers was reporting 60 fps with Fixed framerate not because of real 60 frames per sec, but because my counter was showing so..

                  I draw FPS on HUD by using 1 / Delta World Seconds. Looks like when you set fixed framerate, GetDeltaWorldSeconds() returns fixed delta of the frame, even if fps is different. That's why testers told me they had 60 fps.

                  They also told me that game became smoother, but slower (like slow motion). As soon as was able to get Galaxy S3 personally, I convinced that game actually gave me only 20 fps. So the problem with mali is not solved.
                  [My FREE stuff] Custom Cameras (Stategy, Orbital) | Sticker Note | ESC Inventory System | Pipe Generation (Spline based) | Procedural spline-based Mesh generation | Homing missile
                  [My Market stuff] Advanced Aim Component | Lock/lockpick Component | Blueprint-based Key Remapping System

                  Comment


                    #24
                    Originally posted by AlFlakky View Post

                    In my opinion, geometry render and shaders are too heavy for low-end mobile. In my game I do not have any lighting, any complex shaders (all unlit), there are no textures.

                    As you can see on screenshots, I do not have anything.. Like 40k polys and unlit shading, that is all.. But I get 20 fps. So it must be a polycount or shader bottleneck.

                    I have noticed, that pure unlit shader without any material logic gives me like 20 instructions.. In real shader it should be like 1 instruction for return a flat color.
                    just

                    return float3(1.0,1.0,1.0);

                    There is somthing unreal adds to shaders. We all know about PBR, but unlit is just a color, there should be no heavy stuff. I'm trying to get deeper in unreal shader code to see, what they done there. Maybe if i'm lucky to remove those instructions, I could get a boost to game performance.
                    So you have a result now, i also doult about this

                    Comment

                    Working...
                    X