In a previous version of our game (we’ve been doing this for nearly a year now), every cannon came with an alternate fire option. This was back when different kinds of hulls existed for the player to buy. Alternate fire shots were accessed by holding the shoot button down for a period of time, which depended on the cannon chosen. Back then you had tap to shoot constantly.
We had decided on this option for players as a method of increasing uniqueness in the cannons. Alternate fire would add interesting choices while playing the game, and keep each cannon different from others by having a powerful shot special to that cannon. It did its job well: we felt like charging up a cannon gave players decisions that could feel special without making the cannon complicated, in addition to having to make a conscious decision to lose out on dps in order to gain access to the alternate fire shot.
Unfortunately, we ran into the downsides of alternate fire. In our playtests, we noticed players opting not to use them. Players had more fun just shooting. Some players also found it tedious to have to mash the button to continually fire. The input was also not optimal; players could not constantly press the shoot button with the correct timing every time it was possible. This was especially problematic with the varying rates of fire, making us unable to make fast shooting cannons for fear of causing the player to hurt their fingers mashing the shoot button.
We came up with a solution: have the alternate fire charge while the player is not firing, and allow players to hold the button to shoot. This resolved many of the problems of the original alternate fire system. It was also more obvious to players that the weapon was charging since it would happen automatically in a game (there are some times when firing is discouraged, like in a minefield). Currently, we don’t have many finished cannons with an alternate fire, as we’ve noticed that novice players still don’t use them and we’ve been focused on the earlier parts for the demo. The Ice Trident is an example of such in the demo (in the updated build). Try it out there, and let us know what you think!