Quick answer: Input that feels unresponsive comes from two sources: actual input latency (delay between input and on-screen result, from low frame rate, render buffering, or input polled/applied late) and game-feel issues (input that's technically received but doesn't feel immediate, applied with delay, no input buffering for timing windows, or over-smoothed). Reduce the real latency, and make input feel responsive by applying it promptly and adding buffering so inputs register when players expect.

Input that feels unresponsive, sluggish, delayed, or 'dead', undermines a game even if everything technically works. The inputs are registered, but the game feels disconnected from the player's actions. This is partly real latency and partly game feel, and fixing it requires addressing both the measurable delay and the subtler feel of how input is applied.

Why Input Feels Unresponsive

Two distinct things make input feel unresponsive. Real latency, actual delay between the input and the visible result, from a low frame rate (each frame is delay), render buffering/vsync (adding frames of latency), or input being polled/applied late in the frame (so it affects a later frame). This is genuine input lag (covered in depth separately) and it makes everything feel delayed. Game-feel issues, even with low latency, input can feel unresponsive if it's not applied immediately (the response is delayed by animation or logic before the action happens), if there's no input buffering (inputs made slightly early or during a busy moment are dropped instead of registered, so the game feels like it 'eats' inputs), or if the response is over-smoothed (so it lags behind the input).

So 'unresponsive' is partly measurable latency and partly how promptly and reliably input translates to action. Both contribute to the feel.

How to Diagnose It

Separate latency from feel. For latency, measure or estimate the delay from input to on-screen result (and check frame rate, vsync/buffering, input timing), see if there's significant real input lag. For feel, examine how input is handled: is the action applied immediately when the input occurs, or delayed by animation/logic? Are inputs ever dropped (made slightly early, or during a busy moment) for lack of buffering? Is the response over-smoothed? Players describing the game as 'sluggish' or 'eating inputs' point at these feel issues.

Frame rate is part of this (low FPS adds latency and hurts responsiveness), so field performance data showing low frame rates on players' hardware indicates a latency contributor. Bugnet captures performance and reports with context, so responsiveness complaints and their correlation with low frame rate (a latency source) surface, helping separate a performance-driven latency problem from a pure game-feel one.

How to Fix It

Reduce latency and improve feel. For latency, raise and stabilize the frame rate (each frame is latency), reduce render buffering and offer lower-latency options, and sample/apply input as late as possible in the frame so it affects the current frame, see input-lag fixes for detail. For feel, apply input promptly, trigger the action as immediately as the design allows rather than delaying it behind animation/logic; the player should see an immediate response to their input. Add input buffering, buffer inputs over a short window so an input made slightly early (or during a busy moment) still registers when it becomes actionable, rather than being dropped, this makes the game feel responsive and forgiving instead of 'eating' inputs. And avoid over-smoothing the response so it doesn't lag behind input.

Input buffering and immediate application are especially impactful for game feel, they make the game respond when and how the player expects. After changes, the game should feel immediate and reliable, inputs register promptly and aren't dropped. Responsive input is core to good game feel, and it comes from both low latency and prompt, forgiving input handling.

Unresponsive input is real latency plus game feel. Cut the latency (frame rate, buffering, input timing) and make input feel immediate, apply it promptly and buffer it so the game doesn't 'eat' inputs.