SFC:OP Missions Refit

(Created page with "== Introduction == When I finally released SFC:OP Plus Refit, I decided to reward myself and play a single player campaign. I loaded up the latest [http://www3.telus.net/Nuc…")
 
Line 28: Line 28:
  
 
.. now that's a Patrol mission!
 
.. now that's a Patrol mission!
 +
 +
 +
== Making it happen.. ==
 +
 +
I spent weeks trying to find work-arounds or fixes to these problems. Here's what I've found out:
 +
* find better way to load up Bases, FRDs, cargo ships, etc. Do NOT use hard-coded ships because these things do get refits over time.
 +
** use shiplist API, load shiplist from MetaAssets directory
 +
* Give AIs better fighters. We cannot determine what fighters a ship has, but we can parse and load the fighterlist and assign era-correct fighters to AI-controlled teams.
 +
** use ShipList API to load fighterlist, specifically from the MetaAssets directory.
 +
 +
* If a ship was drafted, it'll have slow drones no matter what. However, if the ship was created in-mission and not drafted, the drone speeds will be era-correct. Solution: do not created drafted ships, create in-game only ships with same shipcodes as the drafted ships.
 +
** Ships do NOT get cleaned up from the D2 map. The server's .gf files should be edited to turn on ship destruction and cycling to compensate.
 +
*** see: MetaMap.gf, section [Census], MaxAIsToKillPerTurn parameter.
 +
** if the drafted unit is a base, the mission creates a 'BOX' unit upon destruction WITH the base's drafted ID (aka MetaID) and immediately destroys it. This will be passed back to the D2 engine, multiplayer or not, that whatever had the Base's MetaID was destroyed which may result on base's removal from the D2 map.

Revision as of 17:37, 7 August 2011

Introduction

When I finally released SFC:OP Plus Refit, I decided to reward myself and play a single player campaign. I loaded up the latest mission pack from NuclearWessels and gave it a shot.

Well, I quickly found myself frustrated with the game again.

Here are some of the issues I had with the game at this point:

  1. almost everything had slow drones
  2. everything had basic fighters
  3. the new Andromedan ships weren't being loaded up right.
  4. some missions had hardcoded ships.

.. note that I also encountered some problems with my own SFC:OP Plus Refit mod:

  1. the planets were still shooting themselves with their heavy weapons
  2. many monsters encountered had 0 crew/boarding parties and were boardable. (1 BP and captured!)


Vision

Imagine loading a "Fleet Patrol" mission: destroy all enemies, or disengage if the enemy is too much for you. It's year 2285.3: you've got a L-BCHT with 4 upgraded PFs. You find yourself in-mission with 2 Klingon wingmen AI-controlled ships, and there's 3 Hydran ships in the distance.

As you close towards your enemy, both your allies and your enemy launch whatever fighters they have. Your Klingon friends launch their K-Lancer.IIIs. The Hydrans, a carrier-based race, have many many H-YellowJacket.IIIs and H-Hornet.IIs as are normally available during that year.

Your wingmen launch their drones and they are all fast speeds at that. One of the Hydran ships weasels, and its fighter-groups destroyes destroyer-sized wingman in a single pass.

Then... from the far right... comes a M-aDMX Andromedan Dominatrix Dreadnought, friend to no one and intent on destroying everyone.


.. now that's a Patrol mission!


Making it happen..

I spent weeks trying to find work-arounds or fixes to these problems. Here's what I've found out:

  • find better way to load up Bases, FRDs, cargo ships, etc. Do NOT use hard-coded ships because these things do get refits over time.
    • use shiplist API, load shiplist from MetaAssets directory
  • Give AIs better fighters. We cannot determine what fighters a ship has, but we can parse and load the fighterlist and assign era-correct fighters to AI-controlled teams.
    • use ShipList API to load fighterlist, specifically from the MetaAssets directory.
  • If a ship was drafted, it'll have slow drones no matter what. However, if the ship was created in-mission and not drafted, the drone speeds will be era-correct. Solution: do not created drafted ships, create in-game only ships with same shipcodes as the drafted ships.
    • Ships do NOT get cleaned up from the D2 map. The server's .gf files should be edited to turn on ship destruction and cycling to compensate.
      • see: MetaMap.gf, section [Census], MaxAIsToKillPerTurn parameter.
    • if the drafted unit is a base, the mission creates a 'BOX' unit upon destruction WITH the base's drafted ID (aka MetaID) and immediately destroys it. This will be passed back to the D2 engine, multiplayer or not, that whatever had the Base's MetaID was destroyed which may result on base's removal from the D2 map.
-->