StarMade v0.199.349 - NPC Faction Update
#Fix 0.199.351. Fixed issue of blocked being spawned in space when deconstructing ship in shipyard. |
#Fix 0.199.352. Fixed a few crashes, log spam, as well as some bugs. |
#Fix 0.199.353. Due to fixing the resource spawning on asteroids, planet generation broke in a few instances.This is fixed now. |
Greetings citizens, ~
After weeks of non-stop work the first NPC Faction update is finally ready to release. By introducing a completely autonomous systems for AI controlled factions the universe will no longer be as empty and lifeless as it was before. Offering us more options to expand upon and create an engaging universe.
This update adds the basic NPC factions and features with many more to come.
It took a while to bring together all of these parts into one single update. And there were a lot of them, all with big potential of being disastrous if handled wrongly. We took longer for testing to make sure that everything is fine, but there is always a possibility that we overlooked something severe, and because this is such a big update that affects a big part of your universe, we urge all server admins and players to make backups of their universes. The launcher has been updated recently to make that process a lot easier.
NPC Factions
As mentioned in previous Dev Blogs, this update doesn’t require a universe reset and instead adds the NPC factions to all your existing universes without touching player created content.
Each comes with its own config and blueprints. The config defines their basic behavior out of all those variables. Factions are dynamic in their block demand and they adjust their trading, expansion and production to that. If a particular block is more used than others, it will be produced and traded more, even the blocks needed to make this block will have a larger demand because of that.
Other than what they have set in their config, demand and supply will also determine their expansion rate. They need to be able to build a certain amount of ships and stations before they can take more territory but they also need the same blocks to maintain what they already have. If they can’t, they’ll have to give away territory.
Keep in mind that most stations used by these factions aren't ready yet for release and they're using temporary placeholders.
Trading
Based on their configuration and available blueprints, NPC factions will develop a demand for specific resources and blocks. Not only will they adapt their prices dynamically for that, they will also automatically trade with any trade node (human or NPC).
This means that there is now an actual economy in the game. However, the old stick shops are still there for now. They will change into trade node access hubs when we release the update that requires a universe reset.
They will select the trades they deem to be the best in terms of value. So if you will have a better chance to be traded with , you’ll have to make some good offers.
There have been also countless bugs fixed for the trading system in general which will make it a much smoother experience.
Physical Trade Fleets
Possibly one of the coolest features in this update is that NPC trading fleets are fully physical. That means, they will have all the blocks used in a trade loaded onto them and you can actually intercept and raid them.
Trades initiated by a player will still use the non physical simulation until we made sure the system fully works and isn’t exploitable, so any problem with the physical trade system will not affect players.
Fleets and Fog of War
An NPC faction has fleets in each system, as well as general fleets that get built for different purposes. You will likely see them fly by a lot if you stay in or close to an NPC owned system. They will mine and patrol, but also scavenge sectors where recent battles have taken place.
One of the hardest parts of this update was to build a scalable system that can handle potentially hundreds of fleets without slowing down the process, but to not use the copout of spawning non persistent fleets just to fake activity. Once a fleet spawns, its ships are actually persistent.
They will also attack fleets of their enemies as long as they are at war. NPC on NPC warfare will be fleshed out more in the future.
You can now see routes of fleets if you are in an explored system and if a trade route goes through it you can also see where the convoy is located at that moment.
Fleets that are flying around will have a blue dashed line pointing towards their destination. The defense fleets stay within their system and go from station to station.
Trade fleets go between 2 trade nodes, there is an additional green dashed line between those 2 nodes to indicate which ones are trading.
For admins, we’ve added a scan button to the map as an easy way to see fleets and their stations.
NPC Systems
Like player factions, NPC factions can take systems as territory. They will also determine a contingent based on their blueprints and the relative position of the system to the faction’s home system. Most factions will have less density in the outskirts of their territory although you can adjust that in the config.
Some will spread faster and uneven, some prefer to be a big dense blob. The expansion behavior is also preferred towards the resources they mostly need for their contingent. Empty systems and especially black holes are avoided, although they still go into empty systems if there is really no other choice.
The contingent will also determine which and how many fleets will be in that system, as well as determining production and mining.
If enough ships and/or stations of a system get killed, the faction will lose control over the system. If the damage isn’t too much, the faction tries to replenish their losses at their next turn, and if that is not possible, they will abandon the system.
You can see the system status in the Galaxy Map at the top right to see how much damage the faction has taken in that system.
For testing purposes, NPC faction home-bases are currently indestructible and will also refuse to abandon their home base system, but that feature will open up after potential issues have been resolved.
Resources and Mining
Systems now have a resource richness. This amount is hidden at the moment but will actually be reflected by spawned asteroids in an upcoming universe revamp. The factions will use their contingent to mine resources from their territory. The amount of resources they can mine is limited and will reflect on what the player actually sees when they go there. For example, if a system is mined out, there will be no more asteroids spawning. The npcConfig can define a resource replenish value if needed.
Production
Factions will produce more advanced blocks from their mined raw materials each NPC faction turn. The rate of production is bound to config values as well as how many factory stations they have in their contingent for each owned system. The blocks produced will try to match the faction’s demand although this can take a while due to the large amount of blocks needed to expand and resupply.
Maintenance
To counteract the introduction of countless blocks into the universe and to have a simple controller for NPC factions in general, they will consume general maintenance blocks per turn according to their config. This allows for an effective way to steer the growth behavior of NPC factions without touching other areas such as trading and production.
Diplomacy
Diplomacy right now is at a stage where most of its functionality is in but individual player relation scores aren’t tied together with their player factions scores yet. The lack of that connection will result in odd behavior and will make you end up in illogical situations.
For that reason only, we force NPC faction to offer you peace after a few minutes of no aggression and your own peace offers will always be accepted. This is for this update only and diplomacy will be completely functional for the next one.
As mentioned above, NPC factions have separate opinions of players and faction. That means they could declare war at you personally while not declaring war at your faction.
The system for diplomacy is a point based system. There are two different kinds of modifiers: status modifiers that will apply to your points as long as the status is active, like being in a war.
The other kind are dynamic modifiers that will affect your diplomacy points permanently over time. These are triggered and increased/decreased by actions. After an action times out, the modifier will diminish and eventually be removed, but the change it applied to the points will stay.
This system will allow for a better approach of AI handling relationships than with just using status modifiers.
They will not like it if you are in war with their friends but they will like you for attacking their enemies. They also don’t like it if you mine in their territory and the longer you do it, the less they’ll like it. You can aim for getting an alliance with them if you want to, or you can make them your enemies.
Diplomacy is also fully customizable with each faction having conditions and reactions for actions in the configs for modders to customize their experience. It offers quite a lot of possibilities that also make it hard to balance.
The diplomacy values given to the NPC Configs are far from final and will receive a complete makeover when the diplomacy feature is done.
Admin Config and commands
On starting new universes or on update, admins can control the starting conditions of NPC factions by copying the configs from ./data/npcFactions to ./customNPCConfig and modify them (for them to not be replaced on the next update). Most of the values in the XML should have comments on them for better understanding.
There are also several admin commands for better control over the NPC factions. The admin command list on the forums will be updated but these are some important ones:
~ /npc_spawn_faction
Spawning an NPC faction yourself using the ones in the npcFactions folder.
~ /npc_spawn_faction_pos_fixed
Same as before with the ability to also set their home system.
~ /npc_remove_faction
Removing any existing faction using their ID (visible in the Diplomacy menu)
Soon to be updated admin command list: https://starmadedock.net/threads/admin-commands.1283/
Known Issues
The local ship AI as probably all of you know is still a bit wonky. There have been a lot of improvements made already for this update, like spawn collision avoidance to prevent fleet ships spawning on top of each other, as well as an unstuck system where ships with a move order will warp away if they’re in a sector for too long. Other issues, like NPC ships sometimes undocking their docks or cargo display issues, still exist but these will be addressed and fixed in the upcoming updates.
Thanks to all the testers and bug reporters! Don’t hesitate to report any bugs you encounter on our bug tracker Phabricator. In case they’re severe, we’ll release a hotfix as soon as possible.
Any other new NPC Factions issues will be addressed in the following updates.
What’s next
Now that a big combination of single features is completed, the following updates will be used to address some older issues while improving the recently added NPC faction features.
The next update will have bug fixes and something special from Kupu...It might be related to textures! It should be ready in 2 weeks.
After that we’ll address some of our older issues and keep improving upon the NPC Faction system, how much we introduce or change also depends on your feedback so make sure to share those ideas with us.
The main focus of that update though, will be to improve our existing combat systems, AI Behavior and ship control to give you a better combat and flight experience.
Lastly a big thanks to all the translators! We will be including the most active ones in the credits screen that will be released with upcoming updates. Of course other people will be in there such as our most helpful testers.
Thanks for playing StarMade,
~ The Schine Team