In the infancy stage of Rushaug: Project Emerald, the player could only shoot in two directions. Yes, two. Left and right. The only way to manipulate the point where you were aiming was by jumping to shoot higher, or by crouching to shoot lower. There are certain games that actually pull this off nicely, but it obviously makes for a lot of limitations. For starters, enemies placed above or below your reach is a huge no-no. This makes for a very horizontal gameplay style, something NOT fit for a Metroidvania-styled platformer. At this point in development, my vision of the game was still shapeless, but I knew I would not be satisfied with the left-right direction limitation.
Approximately one and half years after I started developing Rushaug: Project Emerald, I reconstructed the game engine from scratch, and moved onto a new formula. This time the player was presented with the classic 8-direction shooting scheme. Up, down, left, right, and the points in between. This has worked superbly for retro titles such as Super Metroid, Castlevania IV, Contra, as well as newer titles like Axiom Verge. This was the style I envisioned before I started developing the game, a controller scheme similar to one of these classic titles, but after testing it when I had applied it, I wasn’t completely satisfied.
Something had grabbed my attention. Starbound and Terraria are two games I enjoy thoroughly, that exceeds beyond classic platforming controllers, with the inclusion of the mouse. In addition to interacting with the user interface, the player can use the mouse to aim the weapon in any direction of the mouse, and fire with the same principles of a first-person-shooter. Shooting is not a core feature of any of those two games, but they still pull it off seamlessly.
In the beginning, I wanted the controller scheme to stay classic, without the computer mouse or joysticks, just the keyboard/buttons. But the more I thought about it, I praised the idea of turning Rushaug: Project Emerald into a bridge between fast-paced modern FPS and classic platforming.
So, shortly after implementing the 8-direction movement, I made the decision to go all the way, including mouse/joysticks into the controller scheme. I repealed the weapon mechanics back to scratch again, and started implementing 360 degree shooting. My programming skills had gradually increased as I’ve developed the game, and I was ready to fiddle with trigonometric equations. Then, in a surprisingly short time, I had constructed a system that allowed the player to shoot precisely from 360 degrees, including decimals. That means the player can shoot anywhere, with pixel-perfect precision. As satisfying as it is to shoot exactly where the mouse pointer is, I added a variable to the equation determining accuracy offset, to increase challenge, as well as give the weapons more character and realism. I was joyous with it, and convinced it was the way I wanted it.