Eine Deadzone ist i.A. etwas gutes und das verwende ich auch in meinem Spiel.
Die Berechnung von MasterQ32 sieht so auf den ersten Blick korrekt aus, das sollte funktionieren.

Ist der Absolutwert von joy_force.x, nämlich abs(joy_force.x), kleiner als 0.2, so spuckt maxv(0, abs(joy_force.x) - 0.2) den Wert 0 aus, und die Drehung der camera mit stickvalue (statt joy_force.x) sollte das gewünschte bewirken.

Nun handelt es sich bei dir aber um joy_rot, was du hoffentlich angepasst hast, und wie MasterQ32 schon andeutete, ist der Buffer/ Deadzone-Wert auch entsprechend anzupassen, in etwa so:

stickvalue = sign(joy_rot.y) * maxv(0, abs(joy_rot.y) - 100);

Deine if-Abfrage lässt sich im Übrigen auch verkürzen wie folgt:

if(abs(joy_rot.y) > 100) camera.pan -= joy_rot.y * time_step * JOYSTICK_SENSITIVITY;


"Falls das Resultat nicht einfach nur dermassen gut aussieht, sollten Sie nochmal von vorn anfangen..." - Manual

Check out my new game: Pogostuck: Rage With Your Friends