Let’s get to what has been done during this week. As expected, it’s mostly about the pirate faction, and especially about individual pirate base AI. There has been a follow up on the changes I implemented last week, regarding ship movements, too. Oh, and while at it, I added a dynamic pause button, so you can issue commands while the game is paused. And I replaced a few sprites, added new pirate vessels, and began changing ship flight stats to accommodate the new physics.
Let’s get started, shall we ?
I fully rewrote the pirate base AI module, while it’s not yet finished yet, it’s already much more efficient than previously. Pirate bases can send multiple raiding parties at the same time. Bigger bases will also attack military and police assets to keep other factions in check. Each base handles its money individually. Successful raids bring money that can be used to buy/hire new ships.
Pirate bases are named differently than other stations. Each base can belong to a different pirate clan with it’s own name and ship/station prefixes (Sector 13 clan, S13 ships). Also depending on the total amount of ships they control they are categorized between outposts, bases, strongholds, and fortresses. The bigger the base the more options it has. In instance, outpost can’t attack patrol or military ships while fortresses can launch full blown attacks on a whole sector or raid multiple cargo ships at the same time.
The decision logic goes like this. Pirate bases have a list of possible actions they can take (raid cargo, buy new ship, weaken defenses..). Each action has a minimum and maximum size attached to it (outpost can’t weaken enemy defenses), it also has guidelines telling the AI what kind of action it is between 3 variables: offensive, defensive, and economic. An action can be a bit of each (raiding cargo is labelled as both offensive and economic). Each “turn” (few minutes, depending on the last action taken), each base evaluate its current situation, and select how offensive/defensive/economic it wants to be. It culls the actions it cannot do and those which are not complying with said settings, then it selects one between those that are still available.
Also missions are tied to some of those actions. When a pirate base launches raiding parties it also post missions on the bulletin board that can be taken by the player as well. Those mission will increase your notoriety with the pirate guild.
And last, but not least, larger pirate bases aren’t limited to fighters, if they are wealthy enough they can buy new frigates and corvettes. They can also promote a “war boss”, a ship with a custom AI that will amass a pirate fleet and threaten and racket neighboring sectors (well, it will when I am done writing its AI module).
This is only partially implemented right now, but enough work has been done to give an idea of the final thing. In this screenshot, you can see what the guild menu should look like once you open the communication channel with a pirate base. The look isn’t definitive and right now buttons are mostly decorative, but it shows the general idea.
Helping pirates, doing missions will increase your rank with the guild and give you “influence points”. Higher ranks unlock specific missions, interactions and rewards. Influence points allow you to get services from the guild without spending credits. Services will include the ability to request a ship or station to be attacked/destroyed by pirates, get NPC escort ships, get repairs and so on. It’s likely that the largest pirate ships will also require a given rank to be purchasable.
On the other hand, attacking ships belonging to a base (or the base itself) will get you fined and expelled from the guild for a while / until you pay the fine.
I think I am more or less done with the upgrade to the movement system, I added a new flight model for docking behavior that is able to roughly predict a carrier’s movement, making the docking of fighters much easier when their homebase is moving. Also fixed a fun bug that made bullets ricochet on sector borders, I could probably make a small game out of this behavior alone, thinking about it.
As said earlier, I also added an active pause system. A keyboard shortcut has been added to that effect. While in active pause, your ships and assets will still acknowledge orders and settings your are giving them. You can also use most of the menus and navigate the map.
Finally, quite a few annoying bugs have been fixed. I found and fixed a nasty crash that may happen (more or less at random) when issuing mouse commands. “Kill” missions will check who killed the target before giving the reward, closing an exploit to gain free money and reputation. Unreachable cargo when using the jettison button on one of your stations. I fixed some issues with the shield/hull bar. I also fixed a behavior where patrol ship would know that a pirate is going to attack a cargo way too early.
Oh, and tech groups works for stations too now. So, in next version, selecting a tech group will grant you access to their unique station(s) as well.