GAA's Aim Optimizer

URL: https://akiradeveloper.github.io/aim-optimizer/

Theory

PSA method is based on binary search algorithm which has assumption that the function is monotonic. But the relation between sensitivity and comfortableness isn’t in that simple. This is the reason results from PSA method isn’t stable.

My app assumes the followings to the shape of the function,

  1. The function has upward convex because we know that both side of the optimal sensitivity are playable.
  2. The shape isn’t symmetric because sensitity-speed relation isn’t always linear and impact of one sensitivity against comfortableness is different between low sens and high sens.

Then how can we find the best sensitivity?

My app uses ternary search algorithm instead of binary search. This algorithm is known to work fine in finding peek value in the convex.

Another advantage of ternary search in finding best sensitivity is robustness against your feeling errors. When you have two values to compare but you can’t tell the difference because they are both comfortable, ternary search will not fail to have the optimal value in the next iteration unlike binary search will do so in 50% luck.

Implementation

This is my first attempt to use Yew which is React-like framework which generates WebAssembly as the output. For build and packaging, I use Trunk. With the Minimal Template, I had no difficulty running a sample app in localhost and deploying it to Github pages.

As I have experience in writing mobile app in react-native in the previous job, Yew’s architecture was easy to understand but had a little difficulty in writing HTML because I am not a web guy.

The total time for the initial deploy is only three hours.

Rust is so great.

Need Feedback

For shooting players, please use the app to find your best sensitivity and give me feedback. Your feedback will improve the app.