J’ai trouvé qu’Ironbark Lookout était une chouette petite aventure horrifique, originale par son ton (horreur douce), par son esthétique rétro et par sa dimension « simulation » très sympathique et immersive du métier de guetteur d’incendie en haut d’une tour au milieu des bois. Las, l’aventure est vraiment courte, peu développée, tandis que les contrôles à la manette et la finition technique de l’ensemble détériorent sérieusement l’expérience.
Par Pierre Compignie le samedi 19 avril 2025, 17:00
This blog post is intended for developers ; it’s a way for me to describe what I think should be the gold, simple standard for any video game that expects the user to look around or aim using a thumbstick on a controller. I love indie FPSs and first person horror and adventure, and sadly, more often than not, they offer an implementation for the camera stick that I find severely lacking in precision, comfort and smoothness.
I’m writing this after having researched the subject extensively ; read veteran developer Josh Sutphin’s great blog post about deadzones ; watched many deadzone analysises on Eternal Dahaka’s YouTube video channel and read many of his numerous documented feedbacks on Steam and Reddit ; and of course after having myself experimented and tested a large number of games with various implementations of stick aiming.
Without further ado, here are the basic features I think we should have in any first person game where looking/aiming is involved :
a scaled radial deadzone for the look stick
a deadzone slider for the look stick (ranges from 0% to 40%, increments of 1%)
an acceleration exponant slider for the look stick (ranges from 0.1 to 5, increments of 0.1)
options to separately invert X and Y axises for the look stick
a sensitivity slider for the look stick
The last two items seem pretty popular or self-explanatory already – but important nonetheless. Let me instead elaborate on the first three items.
What is a scaled radial deadzone ? As Josh Sutphin defines it, it’s an implementation of thumbstick aiming that verifies two things. Let’s look at the picture below (credits Josh Sutphin) :
Where it’s pitch black near the center, game will nullify any input : that’s the deadzone. The gradient indicates the strength of the resulting input. As you move away from the center (as you push your stick in any direction), the input will smoothly ramp from 0 to +1 whatever the size of the deadzone. This is the result we want, this is what the scaled in scaled radial deadzone is about.
So the two things that are of extreme importance are these : 1) the deadzone should be radial and 2) the input should be scaled to ramp smoothly from 0 to +1 from the moment the stick escapes the deadzone and no matter the actual size of the deadzone. This is how you will provide gamers with precise, smooth, full diagonal camera movement that is both immersive and effective.
We also want the user to be able to freely set the deadzone size with a slider ; ranging from zero to 40%, in order to cover a wide range of potential wear for the thumbstick.
Finally, the acceleration exponant slider. A good scaled radial deadzone is mandatory, but it is not sufficient to provide ease of aiming for the user. You need to also implement a stick response curve, and you need to let the user adjust the curve to their liking. Basically, a response curve makes more or less stick input range for fine, slow controls.
With no response curve, if you push the stick at 50% of the available range of input (the « livezone »), the camera speed in-game will be 50% of its maximum speed. But this is not necessarily what we want. We may want to reach 50% speed only when the stick is near fully tilted. This is where the response curve finds its purpose.
See the examples below (credits Eternal Dahaka for his interactive demo where you can fiddle with deadzone size, acceleration exponant and stick position) :
Exponant = 1 (or no response curve)
Exponent = 3 (stick in the exact same position ; notice how the acceleration value is lowered)
Exponent = 0.3 (stick still in the same position ; now the acceleration value is much higher, camera speed will be fast as soon as you touch the stick)
Now that we explained all the items, let’s see how you can implement the scaled radial deadzone and the response curve in the code. Here’s an example where I borrow heavily from Josh Sutphin :
float deadzone = 0.20f;
float exponent = 3.00f;
Vector2 stickInput = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
is a power function that can be written like this :
Where « x » is the stick input magnitude, « d » is the deadzone size and « a » is the acceleration exponant ; the latter two which you should provide sliders for in your game settings.
You can see this power function in action in another interactive demo made by Eternal Dahaka (that I’ve slighly modified to provide a wider range of values).
So this is it. I think we’ve covered everything you need to know to implement a great aiming system in your game. Let me know what you think in the comments.
One last thing though. Take the time to test camera movement at least once with your deadzone set to zero. This will let you check if another built-in-engine deadzone isn’t creeping up on your input – in which case please make sure to disable it.
Je n’ai pas accroché à Asemblance : l’histoire tient sur un post-it, ne va nulle part ; le challenge interactif s’avère à 80% ultra simple et à 20% totalement impossible tout seul et sans soluce. Je tenterai quand même la suite Oversight (que je possède déjà) par acquis de conscience…
En dessous de ce texte tu trouveras des liens vers les deux catégories principales de critiques.
« Critiques toute neuves » désigne les articles écrits et conçus spécialement pour ce site. Je mets des captures d'écran, je soigne la forme, tandis que le ton ainsi que mes positions correspondent à mon état d'esprit actuel.
« Archives » regroupe tous les articles que j'ai écrit précédemment, sur d'autres sites ou juste sur mon ordi. Je suis fier de certains, j'ai un peu honte d'autres, mais j'ai tenu à tous les rapatrier ici. La forme des articles est plus anarchique ; tu ne liras pas le terme « vidéogiciels » ; parfois même tu tomberas sur l'horrible mot valise « gameplay », que j'ai banni depuis de mon vocabulaire tant il veut tout et rien dire à la fois.
Fan de Scarlett ? Ou simplement tu te demandes si la traduction de ton vidéogiciel préféré a été confiée à des artisans intègres plutôt qu'à Google Trad ? Tu es au bon endroit car je critique ici également les adaptations françaises.