When I wrote the ship controller´s code, I tried to keep it flexible enough to possibly support other sort of machines.
It turns out, messy as it is, it worked just fine, and implementing the turrets was trivial, I only had to add snippets to bolt them in place and to deploy each turret´s base. That meant that in a couple of hours everything was working fine, and they even supported boarding and ejection.
The turrets fully recharge your escape pod each time you board them (ordinary ships transfer power from their battery, but turrets have unlimited power), therefore, boarding and ejecting a turret is now an alternative to friction chargers for escape pods.
Being bolted to the ground makes you feel like a sitting duck. To compensate, I decided to add beams, which instantly hit your target (if you aim right). The Weapon class also behaved nicely, and I soon got beams working just by copy-pasting snippets from my existing codebase (color-shifting jagged rays from the friction chargers, raycasting from the enemy´s AI, damaging from the old laser bullet).
Making them able to instantly hit someone else makes the turrets less predictable and harder to outmaneuver. Also, the beams are very long range. If the level design allows for it, the typical player will be hitting its opponents by looking at their screens rather than his own.
Once they were ready, I was even able to arm any ship with beams with a single drag and drop. After toying with this for a while, it was evident that, for many reasons, seeing the trajectory of the lasers feels much more satisfying than instantly hitting or missing your target while on a ship.
All together now
So, what do you think? As usual, c&c welcome!
newsletter | Twitter @byPencha | Facebook fb.com/negspacedev