Description

User Submitted Video:

[Link Removed]

User Description:

"Swipe to look (with only the left virtual gamepad joystick) is undoubtedly the established gold standard for 3D First Person mobile games. Yet surprisingly, UE4 doesn't offer this Touch Interface by default. So much so, it isn't even part of the engine at all! If a developer needs it, he must code it himself.

 

Coding it isn't difficult however, and can be done entirely within Blueprints itself without needing any C++. I did so with my game, and everything seemed to work perfectly, until i installed it on some of the newer devices from 2018 and 2019.

 

At around 30-40 FPS, everything seems ok. But when the game hits its target of 60 FPS (which it easily does in all the newer phones from 2018 and 2019), the swipe to look becomes very visibly and distractingly jerky, as if frames are being skipped or dropped. The smoothness is gone, and it feels very uncanny because on one hand you have these very realistic graphics hinting at a powerful high quality engine behind the game, and on the other end you have this choppy movement which signifies otherwise.

 

After testing it out thoroughly I came to the conclusion that this happens only when you are swiping as well as holding down the gamepad virtual joystick. If you are only swiping, the looking around is smooth and faultless. But if you press the gamepad even without moving, the motion becomes choppy.

 

Now this choppiness gives a very low quality feel to the game as this is one of the most fundamental aspects of a game. I am attaching a reference video and a sample project for you to test. I am still hoping that there is some error in my code rather than an engine bug, but I've checked various resources and tutorials and almost everyone is using the same code for this kind of functionality."

Steps to Reproduce

User Submitted Repro Project attached. (Swipe to look logic seems sane)

Project is FirstPerson Template Project with the following modifications: a) Swipe to Look code implemented within FirstPersonCharacter BP b) A UMG Widget called 'Main_Menu' to toggle between the default Double Joystick Touch Interface and a Single Joystick 'swipe to look' Interface.

Target FPS should default to 60 is Project Settings>>iOS

Required device: iPhone XS/XS Max or newer No repro for me on iPad A1701 or Android Note 9 - iPad and Note 9 were able to achieve 60 fps though.

Deploy/Launch App

  1. Circle-Strafe cube with both virtual joysticks.
  2. Press button to change mode to Swipe (You will move with left virtual joystick and look by swiping screen)
  3. While using the virtual joystick to move swipe to look around and notice choppyness

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-86603 in the post.

1
Login to Vote

Cannot Reproduce
ComponentUE - Platform - Mobile
Affects Versions4.23.14.24.1
CreatedJan 10, 2020
ResolvedJun 9, 2022
UpdatedJun 9, 2022