Announcement

Collapse
No announcement yet.

Please, fix the horrible mouse input lag with Unreal Engine 4 for shooter games

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

    [RENDERING] Please, fix the horrible mouse input lag with Unreal Engine 4 for shooter games

    Over the years, graphics have become more and more heavy to render and this ''mouse input lag'' issues became a big problem with many games and game engines. That is precisely why Quake 3 Arena, after 20 years, still offers the best ''mouse feel'' that we can find out there. And from memory, I think DOOM 2016 running with the Vulkan API is one of the only great looking shooter game that doesn't seem to have much mouse input lag.

    The mouse input lag issues have been present in games developed with Unreal Engine 4, but also with Unreal Engine 3. Unreal Tournament 2K4 also had this issue, except that at least it had a decent option to reduce input lag. FPS players have been complaining about this issue in games developed with Unreal Technologies since at least 2007 (Unreal Tournament 3). Many of us were hoping that this mouse input lag issue would finally be fixed in Unreal Engine 4, however the issue is still present. Shooter games are some of the most popular genres, it would make a lot of sense to spend a considerable of time, money and effort to make sure those games feel right when we play them.

    As we can see here the following thread of Unreal Tournament Pre-Alpha, it shows that the UT dev team recognized the existence of this problem, but didn't seem to be sure of what was causing the issue. And didn't yet have the tech to fix it either. I heard that the Vulkan API could be available for PC later this year. not only I hope it's true, but I also hope that it could help fix this issue.

    https://www.epicgames.com/unrealtour...-investigation

    Please Epic Games, could we fix this mouse input lag issue once and for all?
    For all shooter game developers & players out there, we would greatly appreciate it.


    Thank you in advance,

    #2
    I've gotta be honest, I'm usually hyper-sensitive to this kind of stuff but I'm not seeing what you're talking about. I just booted up Counter Strike: Source and a brand new UE4 FPS template project at the same time and I can't feel any noticeable difference between the two.

    I'm sure you've already looked into this but have you turned off mouse smoothing and FOV-scaling? I always uncheck these in new projects as I think it gives the best mouse feel. After those two tweaks and getting my sensitivity right I can't tell the difference between my project and Counter Strike, which I would consider the gold standard. Anyways, maybe I'm a bad test case because I use a 144hz monitor but I doubt a 60hz monitor would be much worse.

    Comment


      #3
      Use hardware mouse if you need precise input. Any project that uses Slate/UMG cursor will have some mouse lag.

      Its easy to test this by enabling both at once and you can see the UMG widget cursor lags behind a couple frames.

      Comment


        #4
        The mouse input only feels ''oky'' if I run the game with Forward Shading and 150+ fps.
        That's fine with Graybox map, but with my current herdware, any meshedmap in UE4 runs at 60-100 fps. Very unstable.
        Some friends of mine upgraded their PC and can now run UE4 games at 200+ fps, so I'll upgrade my PC as well in the next few weeks.
        And by the time I release my game, people will probably have time to upgrade their PCs as well and hopefully the mouse input will not feel like garbage for them as it did for me in all past UE4 games.

        Comment


          #5
          Unless you have a monitor that's higher than 60hz there's no reason to try and get a higher framerate and you'll get better performance if you force a frame cap at 60fps

          Comment


            #6
            Apparently, someone might have found a fix. I still need to investigate this potential new method to get a more responsive First person camera.

            Source:
            https://www.gamasutra.com/blogs/Fabr...l_Engine_4.php

            Avoiding frame lag

            I didn't mention it yet but an issue may appear. If you follow my guidelines and are not familiar with how Tick() functions operate in Unreal Engine, you will encounter a specific problem : a 1 frame delay. It is quite ugly and very annoying to play with, potentially creating strong discomfort. Basically the camera update will always be done with data from the previous frame (so late from the player point of view). It means that if you move your point of view quickly and then suddenly stop, you will stop only during the next frame. It will create discontinuities, no matter the framerate in your game, and will always be visible (more or less consciously). It took me a while to figure out but there is a solution. To solve the issue you have to understand the order in which the Tick() function or each class is called. By default it is in the following order :
            • UpdateTimeAndHandleMaxTickRate (Engine function)
            • Tick_PlayerController
            • Tick_SkeletalMeshComponent
            • Tick_AnimInstance
            • Tick_GameMode
            • Tick_Character
            • Tick_Camera

            So what happens here ? As you can see the Character class updates after the AnimInstance (which is basically the AnimBlueprint). This means the local camera rotation will only be taken into account at the next global Tick, so the AnimBlueprint use old values. To solve that I don't call my function "PreUpdateCamera()" mentioned before into the Character Tick() but instead at the end of the PlayerController Tick(). This way I ensure that my rotation is up to date before the Mesh and its Animation are updated.

            Comment


              #7
              Hello everyone,

              I would like to announce that I have finally found the problem and how to fix the issue on all UE4 Games. This fix currently works for Unreal Tournament Pre-Alpha and this fix originally worked for Dead by Daylight. This is something that the software engineers at Epic Games should look into and investigate.

              Since it was related to the following issue:
              https://www.epicgames.com/unrealtour...-investigation



              AMD FPS FIX (multicore and flipqueuesize)
              Source: https://steamcommunity.com/app/38121...7615844128852/

              If you have amd "Multicore Rendering" is your enemy. Let it off first.

              go to : C:\Users\USERNAME\AppData\Local\NAME_OF_UE4_GAME\Saved\Config\WindowsNoEditor


              Open engine.ini as notepad
              Find [/script/engine.engine] and paste these codes under [/script/engine.engine]

              ----------------------------------------------------

              [/script/engine.engine]

              bSmoothFrameRate=false

              MinSmoothedFrameRate=5

              MaxSmoothedFrameRate=60

              bUseVSync=false

              bAllowMultiThreadedShaderCompile=false


              ----------------------------------------------------

              Turrned off multicore rendering and vsync because multicore rendering cause input lag on AMD.
              For example: if u have 8 cores and if game exe allow up to 8 cores rendering, it means 8x input lag on AMD.

              Now, let's talk about... ''FlipQueueSize'' (AMD Graphic Card Only). FlipQueueSize means input register per fps (default 4) and can choose 0-5
              If u choose 3 = mouse move per 3 frame
              If u choose 1 = mouse move per 1 frame
              If u choose 0 = no frame lock (it means no input lag)

              Pros: no input lag anygame include desktop
              Cons: cause little bit fps drop

              But when u choose zero u feel 30 fps as 100 cause of no input or display lag, i prefer 0

              Open > regedit

              HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\UMD > on right tab "right click > new > binary value > name it FlipQueueSize > enter" then "right click FlipQueueSize > change> 30 00 (if u choose 0)"

              If u want more fps also more input lag choose 5 i mean "35 00" (3x 00) x= your choose
              Save and exit, then restart computer.
              Last edited by Skilljutsu.com; 11-10-2018, 02:44 AM.

              Comment


                #8
                For those who have issues with frame rate when capping it to let's say 30 fps or 60 fps to get a steady frame rate, try turning ON motion blur. It helps.
                Last edited by Skilljutsu.com; 11-10-2018, 07:52 PM.

                Comment

                Working...
                X