Tuesday, November 6, 2012

The Role of Capital Ships

The Battlestar IP features capital ships and the small fighters.  In order to remain true to the IP, the game needs to keep capital ships as a meaningful part of the game.  To do that, I need to figure out exactly what role, capabilities and other features to include with capital ships. 

First, capital ships, whether a Battlestar or a Basestar, served as a launching base for the smaller fighters.  Vipers, and the older Scorpions in this game, primarily launch from a Battlestar.  While I do plan on adding some non-carrier capital ships to the game, this is an exception to the rule.  Consequently, each battlestar needs some type of landing control script.  This is actually the GravityControl script attached to the landing collider for each battlestar.  It produces some key triggers, like a fighter entered and landing reached trigger.  In addition, it applies an artifical gravity force to each fighter inside the landing bay.  This helps simulate the landing experience.  I would like to expand this script to include the landing beacon points to facilitate landing NPC fighters.  The current system is functional though, this addition is a low priority.

In addition, each Battlestar and Basestar should come with a fighter roster.  When triggered the capital ships would instantiate a fighter with the appropriate roster stats.  This will simulate launching a fighter.  In away, this will have a significan impact on the trigger manager.  While the trigger manager can still create a fighter, whether PC or NPC, the primary instantiation of a fighter would fall to the battlestar game object.  In addition, some controls would need to be put in place to keep a battlestar from launching more fighters than it has launch tubes.

Second, every battlestar has big guns, and every basestar seems to have big missiles.  While Colonial craft do have missiles and Cylon crafts have guns, the primary weapon focus seems to be faction driven.  However, guns and missiles share some key similarities that will allow them to be integrated into a single control script.  A rudimentary system is already in place to handle gun and missile turrets.  Turrets have scripting that will turn and fire them.  Unfortunately, they don't have an actual AI routine yet that will give commands to turn and fire.  That needs to be a priority.  The TurretControl script will accept commands from a TurretManager script.  The TurretManager will be attached to the main battlestar game object while the TurretControl is attached to each individual turret.  The manager will provide commands to the control script. 

Third, I want to break up the collider meshes for each capital ship.  A key tactic used in the actual TV series, both of them, was an attack on a key battlestar subsystem, usually the landing bay.  I want to give the players a chance to knock out key systems on a capital ship or protect a key system on a battlestar.  Landing bays, FTL drive, sublight engines and individual turrets are things that I think should be targetable at this stage.  While I won't incorporate a fine-tuned subsystem targeting system at this point, I want this feature ready to go for incorporation.

Fourth, I need to write moving parts scripts for each battlestar.  I think this will be determined by the battlestar's class.  For example, the landing bay retraction and extension numbers will probably be slightly different for a Columbia Class Battlestar (Galactica) than a Caprica Class Cruiser.  I will make it generic if possible; however, the initial iteration will probably be class specific.

Fifth, I need to create an AI controller for capital ships.  The FlightControl script is already in place to accept movement commands.  TurretControl exists to move and fire weapons; however, there is no methodology to command these scripts to execute.  A primary AI, CapShipAI, is needed to animate the big ships.  Unlike the relatively enclosed FighterAI script, this script will need to work closely with the TurretManager script.  Data should pass between the two to optimize firing positions.  The AI script will be in charge of determining roll and angling to protect key subsystems and maximize weapon deployment.  The TurretManager will be in charge of the actual deployment of weapons. 

That's alot of stuff I need for a capital ship...

1 comment: