I don't know but something seems off. I shoot cannon ball straight to next cannon but instead it flies to one side, curves away to other or sometimes jumps in and out of water. Am I missing a way to tell its going to happen?
Seems like game wants to value precision from player as a core concept. In that case these random factors are not necessary, even harmful.
Maybe add some obstacles that affect ball's movement if it goes through it. or make some cannons visually broken to make player aware it might shoot unpredictably.