Currently the speedup multiplier goes up by +0.5
every time you tap the screen. This is really annoying when a bullet is stuck in a nearly perfect horizontal trajectory and you need to tap ~20 times to make it come back. This is because the percent speed increase decreases as time goes on, it is a known design principle that in such situations there should be significantly finer control at lower values, and a decrease in control at higher values. I think it would be better to use a non-linear function for the speedups in this case.
I suggest the following multiplier pattern as a replacement:
As a function of n
taps (in python syntax):
[1, 1.5, 2, 3, 5, 7][n%6] * (10**(n//6))
Where %6 is the remainder of division by 6 and acts as an index for the list, ** is exponentiation (^) and n//6 is devision by 6 without remainder. (6 is the length of the list and there should probably be some rounding around it)
The reason this pattern should be relatively intuitive is because it produces a fibonacci like sequence generated using currency values. In the real world all bills and coins appear in as 1, 2, 5 multiplied by 10 to some power. The sequence I suggest consists of those 3 base values and the sums of 2 adjacent values.
A problem with this pattern is that it removes the precise multiplier control that is present in the current version, nearly immediately right after the 2
. I have tried thinking of alternative patterns such as 1.3^n
but there is always the same problem of to fine control in beginning and an even faster loss of control right after that.
Realistically a multiplier greater than 20x shouldn't be necessary and it is best to just instantly finish the round if that happens because something went wrong. Hence it might be a better solution to just hardcode reasonable made up multipliers between 1 and 20. (eg. 1,1.5, 2, 2.5, 3, 4, 5, 6, 8, 10, 12, 15, 20)
Thanks for making the game, might be one of the best "simple / io" Open Source games for mobile.
PS: and yes I am a highschool student who had a bit to many functions thrown at him.