Possibly the biggest challenge in the development of Azimuth Skies, besides making the ship construction accessible to a non-modding player, is organising the weapons and how they will be controlled/fired. The system in Iron Skies presently is a simple enough evolution from Battlefield-style games where you simply switch between several turrets and fire them like a First Person Shooter. The big complication is in the custom ship structure; there has to be a simple way that shipbuilders can group and setup their turrets without bogging the whole thing down. I could just make things easy on myself and go for a system where turrets are placed on ‘hardpoints’ on sections, but that’s just too tired and limiting for my taste! So now I find myself in crazy territory, as not only are all the components of a ship in Azimuth Skies able to combine in any configuration, but the weapons can be wherever you can fit them in.
And just how do I define where things do and don’t fit, anyway? Well you shall see later when I get into the shipbuilder with a little more gusto. Right now my priority is making a skirmish mode type thing that’s actually got some solid gameplay behind it. It’s all just too unstable at present.
And so we come to my current task. The Weapon Group system evolved out of the need for organising varying numbers of turrets in varying directions with as much automation as possible. The ship’s creator places the turrets on the ship first. Then, they select all the weapons to be in a group together. This then creates a Weapon Group, say Group 1. These form the basis of your combat gameplay.
Pressing 1 takes the player to that group. This will attach the camera to an invisible object in a set place on the ship, the group viewpoint. The camera will pivot around this point. It is then offset by whatever Vector3 is specified, and a Crosshair is created in a straight line, at a specified distance from the group viewpoint (parented to it, like the camera). Thus, when the player moves the mouse, the group viewpoint rotates on the relevant axis and the crosshair points in line with it. Meanwhile, the group instructs all the turrets that are listed as a part of it to track that crosshair object. Rolling the mouse wheel will change the range of the crosshair +/- 50%.
The result should be a turret system that doesn’t suck! I’d like to illustrate more graphically, but I’m pressed for time and I think it’s probably better spent actually solving the problem. Wish me luck.