Search Unity

1 Frame Lag With All Control Input. Rage.

Discussion in 'Scripting' started by TacticalDan, Jul 6, 2013.

  1. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    Hello there,

    I've been fussing for hours and hours trying to figure out why my game feels "bad" and I've come to the conclusion: All of the Unity input is 1 frame behind! I verified this by lowering the framerate to a point where this became obvious. Need more proof? I got the XInputDotNetPure library for gamepad input and it is squarely one frame AHEAD of the Unity input methods. I am infuriated, frustrated, you name it. You'd think this would be fixed.

    I am currently looking for a way to get at the raw mouse input at the very least for my game, with no seperation between input and display (same dang frame), as I know there already exists a method for gamepad input. Does anybody know if a practiced solution exists?

    It'll be nice when that sickening delay between looking, firing and seeing it is fixed. It's a deal breaker.
     
  2. Vanamerax

    Vanamerax

    Joined:
    Jan 12, 2012
    Posts:
    938
    I didn't know about that

    Anyway, can't you just delay your gamepad input by one frame? I don't think any player would notice, unless his/her specs don't suffice and it's pretty easy to delay just by one frame
     
  3. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    No, the point is, the controls are a frame behind. That's a problem when you're making a high precision game. If the camera movements lag behind the mouse, the game feels really bad. It's the difference between aiming in TF2 and aiming in ARMA 3. You may not notice the difference, but you can feel it. Trust me, your solution is the last thing I wanted to hear. More I want a Unity developer to fix this, or point me to a workaround.
     
    dadude123 likes this.
  4. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
  5. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    Bah it's no use. Note to all people wanting to make an FPS on Unity. Don't -_-
     
  6. MegaStevenLP

    MegaStevenLP

    Joined:
    Feb 27, 2013
    Posts:
    69
    Did you tried to save your Project and reinstalling Unity?
     
  7. KelsoMRK

    KelsoMRK

    Joined:
    Jul 18, 2010
    Posts:
    5,539
    You do realize that there is latency inherent in the device itself right? And that a lot of it can occur at the OS level?

    Also, statements like "My controls stink because Unity adds one frame of latency to my input" sounds like garbage to me.
     
    TaleOf4Gamers likes this.
  8. JamesLeeNZ

    JamesLeeNZ

    Joined:
    Nov 15, 2011
    Posts:
    5,616
    ^

    That 0.001 - 0.01 (depending on how good or bad the rest of your code is) sounds like it would really be a problem.
     
  9. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Why don't you change your script execution order? also you get more latency than 1 ms from input devices and you don't even realise it. Then you get some latency from the display unit itself. It's never 0 ms. You should fix your code. I mean one frame? if it's 60fps that's not measurable really.

    Could you give more information or supply a test so we can assist you? In any case it's likely you're probably reading inputs after the scripts that want them. So first off, set your input code to be executed earlier.
     
    Last edited: Jul 9, 2013
  10. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    So I came back to this forum, read all of this stuff that made me shake my head, so I've thrown together a video, hope it gets through.



    Heh, I'm sure a lot of you will be shaking your heads after this video for other reasons :p However!
    One frame is significant (unless you're playing above 120 fps, double the refresh rate). The script execution doesn't affect anything.

    Here's the Unity project for you to try if you want to.

    https://www.dropbox.com/sh/g77143gslazczfq/opCIlyvi9P

    All I want is a solution, not retorts on how it isn't a problem or I'm too inexperienced to know how to fix it. I'm a Canadian adult male and have 8 years of experience developing, so there should be no language barrier, no judgments on my knowledge base. Please cut to the chase.

    I don't expect any of you to have the solution either, and I don't expect a Unity developer will grace us with a half-hearted retort either. So this then stands as a giant warning sign to those developers that are hoping to make a snappy precise experience, that they won't if they use Unity.
     
  11. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    If you want to know if the rest of my code merits the concern for Input lag, here's my first and latest Dev Log video. Also as an assurance that I don't usually take myself seriously :p



    I reimplore you to understand: This lag is my biggest problem right now. I can get around real-time model loading and global illumination, but this lag issue is a real problem for me, unsolvable and deplorable (besides bumping the framerate above 120 fps, but that doesn't fly for netbooks and 7 year old computers).

    This is not as much a guy asking for help, as this is a guy lamenting on how one little issue could stand between a developer with a great game engine and a great FPS. I'm not going to go make my own engine. I've tried that, it's exhausting for a hobby. But I'm not going to silently accept a horrible wart on an otherwise beautiful piece of software. Developers CAN fix it!

    $1500 for this. $1500
     
    Last edited: Jul 13, 2013
  12. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    So, you did check the script execution order? You realise right, that if your input script executes after your other scripts, inputs will defer a frame? http://docs.unity3d.com/Documentation/Components/class-ScriptExecution.html

    If you can eliminate that as being one of your issues then we'll take you seriously. At the moment you're making amusing comments involving 7 year old netbooks, which probably would update your game so slowly, that input really wouldn't matter with huge steps between visual updates.
     
    Last edited: Jul 13, 2013
  13. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    Yes, as I said.
    .

    Like a good scientist, made sure there wasn't any loose variables. If you want to throw your ideas around, you can try them yourself with the project I put up. You might have missed a post, Hippo.
     
    Last edited: Jul 13, 2013
  14. e5an

    e5an

    Joined:
    Jul 6, 2012
    Posts:
    93
    Did you look at this post? Probably the best solution you're going to get unless the Input class is changed in a future version of Unity.
    You can move your fake cursor by the amount that the real cursor moved last frame to extrapolate where it really is this frame. This isn't a perfect solution but it will feel 98% better than the cursor always lagging one frame behind.
     
  15. TacticalDan

    TacticalDan

    Joined:
    Jan 1, 2013
    Posts:
    35
    Yep, dead reckoning for mouse movement sounds good, but it makes things super jittery, thanks anyway!
     
  16. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,659
    "All the Unity input is 1 frame behind." No, that's not what's happening. Notice that in your video, sometimes both XInput and Unity do change simultaneously. So clearly not all input is one frame behind.

    (BTW you don't have to run at low framerates to see this - just record&report the value of Time.frameCount when things happen.)

    The reason this is happening is because Unity samples the input at the beginning of the frame, prior to Update(), and stores it for the duration of that frame - so all Input.GetButton()/Input.GetAxis() values will return the same results throughout the frame - while your XInput call is reading the input exactly as it is (or at least, as the driver reports it) at the time of the call. When you hit the button on your controller, either you do it in the part of the frame between input sampling and XInputTest.Update() - in which case you get different results between the two input methods - or you do it in the other part of the frame, in which case it's picked up by input sampling at the beginning of the next frame.

    So, the biggest problem with changing the current behaviour is that many scripts/projects rely on the Input.Get*() values being consistent across a frame - so that ButtonUp()/ButtonDown() semantics stay well-defined, to make it easier to reason about code, etc. I don't think it's going to change, though I could imagine some kind of Input.GetButtonDirect() type method that skipped the cache and provided the most up-to-date values available. I suggest filing a Feedback request.

    All this said, I'm making an FPS too, and - though it took some tuning to the inputs - we have no problems with the 'feel' of the controls at 60FPS. Now, we've not released yet, so maybe when we do the players will all say it feels horrible - but I doubt it. So it is possible to do this stuff on top of Unity's present behaviour I think.
     
    Marrt likes this.
  17. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Nice info, Richard.

    But I have to question if it's actually - even in a sporting environment - going to make any difference to the feel or aiming. A pro player isn't just about lag (60fps would probably still be ok) but about experience and generally not overshooting the mark. Factors like the display resolution being much higher than 1080p would probably give you more of an edge than a difference of 4ms or whenever the sampling for input takes place.

    Regardless, it's a moot point. We now understand what is happening. I suppose running the game at 120fps with vsync off would probably sample unity inputs a lot faster, so perhaps that's your workaround.
     
  18. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,659
    I don't think so - 'seeing' precision is not as important as movement precision. When I see that there's an enemy to the right side of the screen, I don't push right on the stick and then hold it until I can see he's under the crosshairs - I judge, almost subconsciously, how far I need to turn, and then hold the stick for that amount of time and then let go. The higher the input sampling framerate, the more accurately the game sense exactly when I've stopped turning.

    Actually, it occurs to me that we're almost exclusively using mouse for control, where the issue is reduced (because time doesn't matter so much with the mouse, you can just use distance moved). So maybe that's why I'm not seeing the problems that Font8 is seeing.

    Yes, Unity's input sampling framerate == its render framerate, so running at a higher framerate in general will make the input feel better. That's not really a practical suggestion for most games though.

    The best bet is probably to do exactly what you've started doing, Font8, and use a custom XInput DLL to talk to the game controller directly over raw input. However, sampling it once per frame isn't really going to solve the problem - if you really want *super* responsive input, then you need to spin your controller sampling into a separate thread. That'll allow you to sample input at a much higher framerate than you're rendering.
     
  19. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    At 60 fps the delay would be 16.67 ms, faster than the human brain can process as an individual moment of time. Your brain can process and respond to events every 240ms, meaning your mouse delay is mathmatically impossible for you to notice without diagnostic tools. It may be another issue. Let a friend play and ask what they think.
     
  20. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Try your reaction time on http://www.humanbenchmark.com/tests/reactiontime/stats.php

    I get between 190 and 230 very reliably (around a 210 average) and a) I'm old and b) it's 3am. By the looks of it, you'd need to be a sportsperson to go lower to around 100ms - say a professional sprinter listening for the start gun.

    I'd say that fresh with some coffee I'd probably get it down under 200 consistently. For the most part I believe winning is about awareness, not shooting reaction time. It's about preparation too. So I don't think its important.
     
    Last edited: Nov 4, 2013
    chelnok likes this.
  21. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    And since you only need this for mouse movement it shouldn't mess with anything that relies on stuff like Input.GetXYZ(...) returning consistent results throughout a frame.

    As for reaction time for these things, yeah, 240ms would be a showstopper even for me and I haven't done any "serious" FPSing for years. Perception time != response time. I often pick up on it when games have a frame or two of lag and it drives me nuts. Even at 30fps two frames of lag is ~66ms and can be very noticeable, especially if you play at high mouse sensitivity (you change direction but the movement on the screen doesn't, and if you're moving fast that can result in a significant amount of movement).
     
    Marrt likes this.
  22. Tjaranis

    Tjaranis

    Joined:
    Oct 15, 2014
    Posts:
    2
    soo any solution to this in the newer version?..
    having a hell trying to get my mouse input to not be delayed :(

    its really screwing it up for me.. i assumed there would be a way to do it else the engine is useless for too many games, so i didnt fiddle too much with it before i was done with everything else... would hate to have wasted the time and having to switch to something like unreal4 to get decent input.

    for top fps players can feel a difference at around 20ms .... just saying -.- and anything more then 60ms+- in difference is unplayerble... (you can easily feel a delay at 60ms+, if you are an experienced gamer you can feel it at 40ms delay.
    and as said the best can feel the difference in under 20ms diff)
     
    Last edited: Oct 15, 2014
  23. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    So you're worried about 100 people in the world? that's not many sales :) But you can always try a 3rd party input asset on the asset store if you need faster timings such as rewired for framerate independent input.
     
  24. Tjaranis

    Tjaranis

    Joined:
    Oct 15, 2014
    Posts:
    2
    even i can easily feel the delay this mouse input is making and it is bugging the hell out of me. makes it feel really "dragging and laggy" making the game unplayerble for more then a few minutes :( ...
    most gamers will feel it and be annoyed by it, only casual no brainers won't notice it, but who cares about them -.-

    it's a major issue and it doesnt exist in any top title's so there gotta be a good way around the issue.. question is just how :/

    what shocks me is that unity is a game engine and it got this problem by default -.- that's like having a database that have issue's storing large amount of entries (kinda what it is primarily used for so that part of it should really be optimized to the best it can be o_O)
     
  25. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    If those "100" people are the ones being targeted then definitely he should be worried. :)

    Garbage. Framerate in video is one thing, input vs effect another matter entirely. I know this coming from the 1v1 competitive fps scene, but also this topic is very relevant considering VR and motion sickness mitigation:

    http://www.gamasutra.com/view/news/226112/How_John_Carmack_is_bending_Samsungs_VR_strategy.php
     
    noio, KyleOlsen and chelnok like this.
  26. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    While you base what you say on an article that claims "for some reason 90hz is where people don't notice refresh anymore", you offer only "trust me... I play HALO" as evidence for your input/response cycle timing.

    50ms to 100ms is how fast the human eye-hand processor works. So, at 60 fps if I click "shoot" and a bullet fires within 3 frames, it will "feel" like I'm shooting. My brain sews up the gap and it becomes "instant" in my perception.

    Besides, you defy logic. Do you think that there is no delay when you tell your fingers to type poorly supported arguments into the keyboard? Use a high speed camera, there has to be a delay between input, processing and disastrous result.

    4 or 5 times per second, the human brain evaluates what now "is" and we humans can think about and make decisions on what we want to do next. We expect instantaneous results from our input, instantaneous being between 50ms and 100ms.

    Fighter pilots can detect visual changes in a controlled setting that exist only for 4ms.

    So, processing times:
    Human eye: ~4ms
    Controller response time to feel instant: < ~100ms
    Human decision/response/feedback processor: ~250ms

    So thanks to you and to John Carmack for rediscovering that you need 255+ fps for all people to never see the refresh rate at all. We knew this, but now we have an authority we can trust.

    But again, maybe I'm wrong. Maybe some people are really annoyed by the 12ms gap between the fastest that a perfect, trained human eye can see and the delay input from clicking their mouse and seeing a shot fired in a computer game.

    Admittedly, my sources are of questionable quality: the published book Game Feel and some random "scientific" (if you can trust those yokels amirite) experiments. It's no JOHN CARMACK (mack mack mack) but it's all I have.
     
    Last edited: Oct 16, 2014
  27. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Yes, people get motion sick when frequency is too low in VR kit. There are numerous people who have been getting easily motion sick with the oculus dev kits. With newer and better hardware and software solutions like time warping, some of that has been mitigated. At about 90 Hz the majority can't tell difference anymore according to the research of John Carmack.

    Yes, fighter pilots can distinguish changes at very high framerates. Progamers have reactions like fighter pilots.

    Yes, there are people being annoyed about input lag even if it's just for a frame. There are currently several discussions about this in the UT4 forums, since having close to zero input lag is crucial for a competitive shooter.

    A good thought experiment is to imagine you're filming your hand as you're moving it around. Compare the video feed to how you experience it with your vision. For experienced competitive gamers, they would be able to notice a difference at higher frequencies than the average player. Even if the motion is fluid at 60 Hz, the lag of reality vs video feed would be noticeable (even if you magically remove capture processing etc, by just imposing a framerate on reality would make it noticeable).

    Ha, it's nice to know I'm super human that easily can distinguish Hz higher than 60 and thus defy logic. Like so many others in the competitive scene. :)

    Furthermore, Halo is probably the worst example imaginable regarding this topic. If you had more insight you'd know.
     
    Last edited: Oct 16, 2014
    KyleOlsen likes this.
  28. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    But that's nothing to do with input time. That's the speed of light, and what you see. It's apples and oranges. Nearly everyone should be able to see changes above 60fps. That's common. But nearly nobody can react lower than 125 millisecs. We're talking about the best sports people in the entire world, far above and beyond a dumb gamer in his basement.

    Olympic quality athletes have trained response times since childhood and have the best diets and training in the world, yet gamers are better I guess o_O

    If you have short arms and a small body, you might be able to obtain the latency you're thinking is possible, but science has measured the speed from the brain to the limb, and this alone takes longer than what you're suggesting is possible. It's one thing to see, and another thing to react to that.

    That article mentions gamers, not programmers.

    In Unity's case you can improve it with the input asset link I posted above - you can poll input at a much faster rate. Then with vsync off, or sufficiently high refresh rate (>120) get to the competitive speed you're asking for. If you don't do that, you won't in Unity.

    Again for ref:

     
    Last edited: Oct 16, 2014
  29. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Sorry, isn't input the time it takes for an action to show? In my example that's the input time - the time it takes from doing something to actually seeing it.

    But yeah, in Unity there seems to be another step - processing the input for one additional frame - making the input time even more apparent.

    Big difference between pro-gamer and pro-grammer. :)
     
    Last edited: Oct 16, 2014
    KyleOlsen likes this.
  30. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    What exactly constitutes "close to zero"? There is no such thing as zero lag between input and response. There is no such thing as zero latency between you telling your hand to move and your hand moving. So what you're essentially saying is that you don't notice the lag between your brain sending the signal and the action occurring, but you DO notice the 5-15ms delay between pressing "A" and your character jumping? So you're simultaneously super human and completely ordinary? That makes sense. Oh wait. It doesn't.

    The number I have is double this, but it involves computer input, response, etc. So let's use this as a baseline. This means that if your cursor isn't on the enemy, you can't even adjust the angle of your aim in a shorter time than 125ms. Each 125ms you are adjusting your aim, at the fastest. So if you can't even see the situation and react to it in a shorter period of time than 125ms, how exactly are you being affected by 5, 10 or even 15ms of delay between you moving your hand and the cursor angle changing in the game?

    If you understand what the word super means, you would realize that you are telling the world that you are superhuman.

    Tells us more.
     
  31. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    You're putting words in my mouth. :)

    Don't go off topic. We're talking about the camera here, which is the issue OP is having.

    Do you acknowledge the fact people have been getting motion sickness from too low framerates in VR? If no, then there's nothing left to discuss. If yes, then you shouldn't have a problem understanding that moving head -> seeing camera change, and moving mouse -> seeing camera change, are actually very similar. It is just more apparent in VR because the immersion is far greater, while looking at a screen is - well - just looking at a screen.

    When you've played hundreds (or in many cases even thousands) of hours, the action of moving the mouse and altering the camera are fused. To the brain it's the same thing. It's like these exciting new experiments involving mind reading pilots, so all they have to do to fly left is imagining to be crunching left hand, or imagining to be crunching right hand to fly right. After some practice, the action of imagining to be crunching your hand is synonymous with flying in a direction - the brain doesn't think of it like crunching anymore. The action and consequence are fused.

    Exactly the same with the mouse vs camera. Moving the mouse = moving the head, just like moving the head = moving the head IRL. :)

    So why would you argue it is possible to detect change in VR at 60 Hz, but completely impossible on screen using a mouse?

    Have fast processing of input, so the rendering and input have a as close 1:1 relationship as possible.
     
    Last edited: Oct 16, 2014
    KyleOlsen likes this.
  32. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    So wait... You mean that the frame currently being displayed can't be altered by player input, we have to wait until the next refresh? Down with Unity!

    There's also a big difference between a mispelled word and a properly spelled one.
     
  33. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    This is just getting stupid. Moving your head involves an internal equilibrium that can be affected by reading on a car trip.

    Do we need to increase the frame rate on books?
     
  34. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    I'm not sure what you're saying. But input and rendered frame should have a 1:1 relationship in an ideal world. As this is so important in VR, lots of interesting stuff is being done to make this part better (apart from just increasing framerate which is the easiest solution). One of them being time warping.

    And sorry, in my language not putting words together like that is erroneous. Sometimes I forget to correct that in english. :)

    And misspelled is spelled with two S btw.




    Are you saying frequency of VR has no impact on motion sickness? Wow, you should inform John Carmack right away. Seems like an awful waste to invest so much time and money into mitigating motion sickness using techniques that are apparently unnecessary.
     
    KyleOlsen likes this.
  35. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    1:1 is the notation of a ratio. So you're saying that for every frame displayed, there should be an input?

    If I turn my head 90° to the left, how long it takes to reflect that in the virtual world, that is input lag. Apples.


    How many frames are shown in between, that has to do with refresh rate. Oranges.
     
  36. PolymorphiK Games

    PolymorphiK Games

    Joined:
    Oct 5, 2014
    Posts:
    51
    Every sale is the most important sale. Sure not everyone will be happy thats a given, but tossing it under the rug is what the game industry is doing nowadays and I hate it. They say, in order to want change you gotta be that change, hence why I started my own gaming company and I will not have that as my philosophy "Oh X people are mad, thats okay not a huge portion of sales". This kind of thinking is a cancer, if they paid money for your product you better deliver and or make their experience with your product worth the money they paid for to the best of your abilities.
     
    Marrt likes this.
  37. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Ideally, but obviously it isn't possible as rendering takes comparatively lots of time. Time warping though, that tech is awesome, and allows for more up to date input.

    Do you still dismiss the fact people can perceive frequencies higher than 60?
     
    KyleOlsen likes this.
  38. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    Yes. What I think people can perceive, if they know how to look for it, is an absence of raw image data where they might expect it to be. For example, a fast moving projectile that appears to "jump" because it is moving so quickly within world space that it's not possible to show all.the inbetween positions.

    Considering that we take time to interpret what we're seeing, 60 fps or a new image every 16.67 milliseconds is quite fast.

    For example, a plain red screen displayed at 10FPS looks very similar to the same screen displayed at 10,000FPS.
     
  39. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Yes, and that's what I tried to say before. :) Framerate when input is abscent is harder to distinguish high vs low, while if you have input too, then you notice latency easier. This became very apparent with VR, but it has already been obvious for years in the pro gaming fps scene. CRT gaming for life etc. :) It took a while before the most hardcore ones deemed flat panels good enough for their hardcore needs.
     
    Last edited: Oct 16, 2014
    KyleOlsen likes this.
  40. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    You have to understand that as a person who approaches things from a scientific perspective, I scoff at things like "deemed worthy"...

    I'm reminded of those magnetic wrist bands that people swear by to improve their balance.

    You want to have a discussion about frame rates, I find the subject bland. Higher frame rates are better. End of discussion. 30 FPS is fine though, 60 FPS is more than anyone needs to play a first person shooter. This topic was about some elitist guy "educating" the Unity community how bad Unity is. I simply wanted to explain how groundless his claims were.

    Input lag is different than refresh rate.

    What Carmack appears to be addressing is people noticing a lack of raw data, breaking the impression of real life... not real time... but real life. And this can be achieved at 90fps, well short of the 250 that the human eye can see.

    So complaining about 16.67ms... just go home.
     
  41. Polymorphik

    Polymorphik

    Joined:
    Jul 25, 2014
    Posts:
    599
    This thread is funny, SunnySunshine take Physics 4B Electricity and Magnetism then 4C Optics and Waves then come back and tell us how it goes because Misterselmo has been right. So, yeah just stop.

    Pro Gamer < Physics
     
  42. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Where have I ever complained? I'm not complaining.

    Except this is testable and measurable. So I'm definitely taking you up on that.

    If you ever happen to visit Stockholm, come by my office and I'll be your personal test subject. Let me try 60 Hz vs 120 Hz screens (without knowing which is which of course). If I get 100% right, you owe me a beer. :)

    They're connected. Framerate + refresh rate limits what you're able to perceive from your input.

    Saying that people cannot perceive input lag at 60 hz is wrong. That is the only thing I'm trying to get through. Will 60+ hz matter for most? No. Will it for some? Yeah. To OP? Most definitely, which was what this was all about to begin with. Not acknowledging input lag as a problem, or even worse - not acknowledning people can percieve higher than 60 hz - is just ignorant and incorrect.

    That's not the only thing Carmack is saying. Actually, he's saying a large deal. I can really recommend watching his whole talk from oculus connect. He mentions several strategies for increasing the perceived framerate.



    Except he's not.
     
    Last edited: Oct 17, 2014
    Marrt and KyleOlsen like this.
  43. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Also:

    http://www.reddit.com/r/buildapc/comments/1jpcrv/60hz_vs_120hz_monitor_is_there_a_major_difference/

    http://www.reddit.com/r/explainlike..._what_is_the_point_of_120hz_monitors_when_we/



    I thought this comment was interesting:

    "Nobody has yet properly answered this question. So let me break it down.

    Firstly, our eyes do not see in 'frames per second'. So to suggest that our eyes can only see so many 'frames per second' is wrong.

    It turns out that the image generated by each frame on an lcd has a chance of 'syncing' with our wave based vision, when this happens there is a very smooth image. When it does not, you get choppiness and a bad image.

    Increasing the number of frames per second visible, in this case a 120hz (120frames per second) monitor, increases the chance of each individual frame syncing with our wave based vision, so you can perceive a clearer image.

    To make an analogy, lets look at audio.

    Audio files are available in high bitrates and low bitrates. You may find that a low bitrate, will sound fuzzy and choppy--a high bitrate will sound clear and precise. As you increase the bitrate there eventually becomes a point at which increasing the bitrate further becomes obsolete, as the sound is as clear as is possible to perceive.

    The same applies to frames per second on a monitor, and fortunately for human eyesight, this point where frames per second become obsolete is much higher than 120 frames per second.

    You will notice a big difference, even at frame rates below 120."


    http://www.gfycat.com/GrimyWarmheartedGangesdolphin (requires 120 hz screen ;))

    This link keeps popping up everywhere:
    http://amo.net/NT/02-21-01FPS.html

    I agree it doesn't look like the most legit site on the net.

    Edit:
    more:

    http://www.maximumpc.com/refresh_rate_2013
     
    Last edited: Oct 17, 2014
    KyleOlsen likes this.
  44. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    This is why I'm NOT a graphics/hardware whore. I hate these endless discussions about the cutting edge. Who cares? Well, obviously you do.

    So, fine. You win. Let me know when things get to 250FPS and when you get there, don't be surprised if people start dramatizing about the lack of actual depth vs. Shaded geometry, how things still don't feeel good even though no quantifiable way of measuring them exists.

    I just don't care enough about this, there's nothing in it for me to engage further.
     
  45. cranky

    cranky

    Joined:
    Jun 11, 2014
    Posts:
    180
    I'm not weighing in on the supposed delay of input... but on FPS. I have a three monitor set up in my office. One is 144hz, one is 75hz, and the other is 60hz. Just doing little circles with my cursor, I can easily see a huge difference on the 144hz monitor, and a very slight one even on the 75hz monitor. When doing little circles on my 60hz monitor, it looks as if there are several cursors spaced inches apart. On my 144hz, they are mere centimeters apart and my eyes perceive several more cursors (simply a vision artifact).

    I used to play games all the time, so I know what a huge difference FPS can make. Going from a game of Call of Duty to a game of Halo 3 can be extremely painful (60 fps to 30 fps). I've heard so many people tell me you can't perceive a framerate higher than 30 fps, but this is completely false.

    I don't know how high is high enough in terms of refresh rate... but 120hz and 144hz feels incredible.
     
  46. RJ-MacReady

    RJ-MacReady

    Joined:
    Jun 14, 2013
    Posts:
    1,718
    Technically, in terms of pixels, the frames per second must be equal to the number of pixels of the greatest dimension of your display device multiplied by the square root of 2.

    This is because if a pixel moves across the corners, there may be perceptible lag.

    So for 1080, you need a 1500hz monitor and that will never happen again.
     
  47. chelnok

    chelnok

    Joined:
    Jul 2, 2012
    Posts:
    680
    This looks interesting:
    -> http://chicounity3d.wordpress.com/2014/04/18/high-precision-input-timing/
     
  48. SunnySunshine

    SunnySunshine

    Joined:
    May 18, 2009
    Posts:
    976
    Interesting video concerning this:

     
    Magiichan likes this.
  49. LightStriker

    LightStriker

    Joined:
    Aug 3, 2013
    Posts:
    2,717
    No idea how I came here..

    But I have to say, I find the attitude of many here infuriating.

    "There's no way you can perceive a 1 frame delay in a 60 FPS shooter!"

    Yes. Yes, I can. Games that have this issue get on my nerves very quickly.
    Not talking about shooting or jumping, where the key input is slow anyway... This is the kind of thing you can notice while moving a mouse around. The connection between the view moving while your hand had stopped is noticeable.

    Because YOU cannot notice it, doesn't mean some people can't or that it's unimportant in the quality and the feeling of a proper shooter.

    I can hear a 18-20Khz sound. Because most doesn't hear it is no excuse to overlook that. Some ass enjoyed playing a very high pitch sound at work just to piss me off because he knew I was alone to hear it.
    Same thing with people who are color-blind or epileptic people sensitive to pattern of flashing light. Because they are a minority doesn't mean you should ignore them.
     
    SunnySunshine and KyleOlsen like this.
  50. LeftyRighty

    LeftyRighty

    Joined:
    Nov 2, 2012
    Posts:
    5,148
    Last edited: Aug 5, 2016
    TaleOf4Gamers likes this.