Faction level AI : functions, api etc.

Talk among developers, and propose and discuss general development planning/tackling/etc... feature in this forum.
Post Reply
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Faction level AI : functions, api etc.

Post by safemode »

Basically, the way mods and such currently work is a master python script is executed upon game load that begins executing functions and sets the stage for the game, initiating the availability of missions, determining milestones, and dealing with the results to determine where you are in the plot of the game.

VS UTCS is different from most previous games like it. I believe we intend to create a game plot that is completely dynamic. While not a "free play", it would create a plot based around the dynamic state of the game, providing a feel for a beginning, middle, and end to the game, without having such things be pre-defined by us. Each new game would be different, what constitutes the end of the game would vary, how the plot progresses would be dynamically determined by the game state etc etc.

Now that will require more than what this thread is titled around but we'll focus on just this particular aspect.

One tool for organizing the undefined is a faction level AI (FAI). The idea behind a FAI is to provide a common motivation to a group of NPC's. The FAI would not _control_ ships like a player in a fleet strategy game. Rather, the FAI would consider the "big picture" and make suggestions to ships that belong to it. They would interact with eachother acting as singular representatives of their faction. FAI's can determine when a faction is defeated in the game.

The FAI communicates via the dynamic_events subsystem (not yet created, but being outlined).

I'll continue this thread later when i get home....damn end of work-day. :)
Ed Sweetman endorses this message.
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

So the FAI would be the motivations and priorities for each group might give the Uln something better to do than ram you :wink:

Enjoy the Choice :)
my box::HP Envy i5-6400 @2Q70GHzx4 8 Gb ram/1 Tb(Win10 64)/3 Tb Mint 19.2/GTX745 4Gb acer S243HL K222HQL
Q8200/Asus P5QDLX/8 Gb ram/WD 2Tb 2-500 G HD/GF GT640 2Gb Mint 17.3 64 bit Win 10 32 bit acer and Lenovo ideapad 320-15ARB Win 10/Mint 19.2
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

Faction AI sits above NPC's and even the player. But it is far from a centralized brain where all the units of a faction are pawns.

The FAI is an AI without a unit, yet with power to provide units with Events, as well as interact with other FAI's directly.

The Uln FAI could suggest to it's units to do something (or not do something), but it can't force them to. The individual units can choose to ignore a command from the FAI or follow it. So if they really want to ram you, you're probably gonna get rammed, though they would be risking becoming an enemy of the faction.

FAI's can change relations independent of attacking units or helping units of a faction. The diplomatic / economic decisions an FAI makes can instantly make one faction allies or enemies of another.

Lets get into what an FAI should be allowed to do directly to other FAI's.

Diplomacy: Currently not really in existance in the game. An FAI will have a definition file of sorts, describing states that are particular to that faction's FAI for declaring or requesting different diplomatic functions. for instance, if relations between two faction AI's drops to a certain level dictated by the definition file, then the FAI can declare war on the other FAI. A state of war alters the motives of the FAI's involved,and that is also directed by the definition file. A war mongering faction will declare war whenever it can (if the other variables are acceptable to it) and likely want to see the war to it's end (victory). A peaceful faction will try to avoid war by offering the opposing faction territory, unless it believes it serves it more to goto war.
Meaning, the FAI looks at the game state, looks at it's overall driving motive in the game given to it by the campaign, then looks at the current situation and decides if it's likely to win based on factors such as number of units, location, how much kills you have and they have.

We dont want to make it too complicated though, so we give the FAI the ability to do 3 things directly relating to diplomacy.

War: A faction declares war on another faction, this is responded to by the opposing faction with either an accept, or offering. If it's an offering, the offering is either accepted or declined. If the offer is accepted, the relations between factions are returned to neutral, any other situation results in a war.

Ally: A faction can request becoming allies with another faction during or before a war takes place. A faction that's involved in a war and has an ally expects it's ally to declare war against it's opposing faction, no offering to not goto war is accepted. If the ally goes to war, relations increase between them. If they dont join in defending/helping during war, the relations can become so negative that the allied faction could also declare war on it's previous ally.

Surrender: A FAI can attempt to surrender before being destroyed at any time during a war. the opposing FAI has to accept. If accepted, the losing faction cedes half it's territory to the winning faction. Thus, most factions dont see surrender as a viable option until it's close to the end.


It sounds very complicated, but it's really just taking some states from a definition file, grepping some game state variables and comparing and adding a bit of randomness to the mix and sending off an event or not.

What the end result is a change in motivation. Where as, normally the campaign sets the motives for the factions, the motives can change depending on game state. A state of war changes how the FAI commands it's units. It changes how it reacts to other factions' actions. An FAI in a state of war starts putting much less emphasis on trade and exploration and begins converting/producing battle ready ships and focuses them on their enemy.

Integral to all of this functionality is how we would create the definition file that describes an FAI's personality, and thus the faction's personality as a whole.

Code: Select all

<factionAI>
       <var name="Aera"/>     # only organized groups, pirates and privateers have no FAI. 
       <var organization="tight" # tight, standard, loose
       <personalities>
             <var warstate="military"/>       #hippy, guerilla, military, genocide
             <var basestate="exploratory"/>  #expansionist, exploratory, conquering, isolationist, merchant
       </personalities>
       <attitude>
              <war>
                    <var aggressive="high"/>  #low, medium, high
                    <var peaceful="low"/> #low, medium, high.
               </war>
              <base>
                     <var aggressive="medium"/>
                     <var peaceful="medium"/>
              </base>
              <var vengeful="high"/>
              <var cooperation="low"/>
               
         </attitude>
</factionAI>
This will of course be discussed and added/modified etc.


Basically, it's an xml file that defines the tunable states a FactionAI uses to make decisions based on the game state. They do not dictate the actions of the FAI, they merely make them tend towards them. For instance, just because the Aera may be extremely vengeful, they wont declare war on a faction that they have no chance of beating if such a situation were to occur. The game state determines, in the end, what the FAI decides to do.

This is also different from the individual faction personalities that a unit in a faction has.

Each unit would have a similar file that it uses when it's created for a given faction in order to modify it's behavior. Each faction thus would have the following set of behavior files:

FactionAI, merchant, non-combative, combative.

A unit's AI personality is defined in the unit file for a given ship.

Thus, the factionAI is independent of the particular behaviors of the units in it's faction, yet all will be tailored to fit together and all will be used to make each faction unique, from the overall actions, to the different jobs a player can partake as part of the faction.


Well, that about does it for faction->faction relationships... the idea is to work on the definition file to describe a faction's personality, providing the C++ code with the most flexibility in creating fitness tests for various game-states.
Ed Sweetman endorses this message.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

Faction to ship interaction is done via dynamic events.

The implementation of dynamic events is being hammered out, but suffice it to say that it's likely dynamic events will operate much like an interrupt. Units register their callback functions to the FactionAI's interrupt handler when they're created for a given faction. This allows FactionAI's to send all of it's units an event directly.

now, how much oversight a FAI should have is undecided, but suffice it to say that the FAI will at least be able to recognize a significant battle. It may then try rallying units to help it's side in that battle. It would then send an event out to it's units requesting any units within some given range of another unit to execute the given AI commands etc. Units in a factionAI aren't controlled by the factionAI, it's just the only place (aside from campaigns and fixers,computer) where it can get missions. So, a Unit may decide to ignore the factionAI's request, or follow it. What helps it determine what it's going to do is the priority of the request. Really important requests are likely to always be followed, less important ones have a good chance of being ignored. How involved the FAI gets in the day to day workings of the units of a given faction is up to us. It's likely that they wont need much in the way of sim time, since we want the effect of communication traveling from the front lines to headquarters.

I'm really not sure if it would be a good idea to give the FAI the ability to manipulate units on an individual level, but it would be possible to do so if someone figures out why it would be ideal.

So, basically, the FAI provides "missions" or commands to Units that decide to accept or deny such things and if they accept, override whatever mission they were previously on regardles of priority. It wont bump the mission, it'll simply override it. When whatever the FAI was telling the unit to do is finished, the unit will return to the previous mission it was doing.

Units do not communicate back to the FAI, but they can use the same dynamic events system to communicate to eachother. More on that later.
Ed Sweetman endorses this message.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

Death of a faction.

It will now be possible to defeat a faction, and wipe it out. Basically, this is done by defeating a faction in war, to the point where a surrender is denied and the war is fought to the end (bases are all converted over and no capships exist in the last system). When a faction is defeated like this, the faction AI kills itself and all of it's units become "privateers". The units reload personalities but begin with a faction relation deeply negative to the winning faction of the war, permanently.

No regeneration of a faction can be possible. The best previous units can hope for is joining another faction and taking vengence.

Capital ships are special. In the case that a cap ship didn't make it back in time to the home system to defend it's last base, the cap ship becomes rogue. It's labeled as a "pirate", takes on the personality of a pirate but it's intensely negative relation with the winning faction will also exist. The winning faction will put up large bounties if a rogue cap ship is found to exist, and will rally it's units to hunt it down.

A cap ship can win back the last fallen base if it makes it to the system before the base falls. All it has to do is destroy all the units from the opposing faction in the system, once their numbers reach 0 in a system, the system is reclaimed. Only cap ships can accomplish this, thus FactionAI's will probably have direct events for Capital ships that other units dont recieve. It's also very likely that a FactionAI will keep at least 1 capship in it's main system at all times.
Ed Sweetman endorses this message.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

Can FAIs have several basestates, like being "expansionist" and "exploratory" at the same time?

Will units taking missions from a FAI be paid? Are these units like the player, i. e. they have a ship, money, options to trade, fight etc. and maybe even the option to buy another ship?

If an FAI figures out that it is about to die, it should try to send some units to a suitable, uninhabitated system, maybe accompanied by a capship. These refugees would try to continue the faction or eventually create a new faction.

However, a FAI might already die when the number of units that belong to this faction is so low that the remainder can not be called a faction anymore. This might help to give the FAI an interest in increasing the number of units and in keeping the "population" happy.
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

As of now, there is no way to "create" a new base where one doesn't exist at the beginning of the game. Creating bases would be a nifty feature, but is more complicated than what's obviously apparent. For instance, how do we control what allows a base to be built? Money? existence of some special construction ships? It could eventually be done, but it would have to be done right. Bases would have to be built over time, meaning intermediary models of the base in construction, etc.

The FAI doesn't have money in it's current imagining. It compensates units that listen to it with relationship points, which is the only thing it has direct control over.

The states are meant to be mutually exclusive. That is, expansionist and exploratory are the same thing except one says they are willing to use military force to grow their territory, the other says they're not interested in growing territory but are willing to peacefully voyage across the universe. If the states aren't mutually exclusive enough, we can modify them so that they are.

I'd like to keep the things described in the definition file simple, so as to minimize the complexity of the "fitness function" for decision making. Basically, all of these "states" and such will not just be switch statements for determining what methods to use, but they'll also be turned into some numeric value that will be used with other values to give us a boolean of whether or not we want to take a given action, or to give us a number for how much to do something.

It's really the difference between describing all available basestates by assigning a number to each signifying some ratio between all the states or making it discrete as to what state an FAI is.
Ed Sweetman endorses this message.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

safemode wrote: For instance, how do we control what allows a base to be built? Money? existence of some special construction ships?
Thinking in terms of a working economy:

a generic cargo type "starbase constructrion parts", or, if you want to be more specific, a category "starbase construction parts" that contains cargo like "mining base parts", "commerce center parts", "starbase construction robot" etc. --- to be produced on shipyards

a ship with sufficient cargo space could bring the parts to where the station is to be built

money, as in buying/producing the parts and in giving the new base something to work with

in case of a mining base, you need an asteroid to convert into a base

a fighter squadron to protect the construction site until the base can defend itself

There needs to be some way to decide if a station should be built and what type of station it should be. A working economy might create a demand for stations --- like when there is a shortage of metals, the FAI might consider building another mining base; if you need more stuff produced in refineries, build another one; if the docking and handling capacities of your commerce center are exceeded so that ships are experiencing delays, build another one; etc..

Hmm ... Stations could become extremely important. Without stations, your production is limited to what you get from the planets, but you can build a virtually unlimited number of stations (if you have the resources).

Where do you build a station? Well, close to the already existing ones where there is a shortage to keep the travel times short. Starfortresses would be built at strategically or economically important places.

There might have to be smaller "military" stations (as in "outposts") that could be built relatively cheap to establish your hold on conquered systems and to cover your supply lines. Maybe fighter barracks could be (ab)used for that (These outposts need storage capacity and good defenses.).
Bases would have to be built over time, meaning intermediary models of the base in construction, etc.
Yeah --- until those models exist, there could be a generic place holder symbolizing a station that is being built. The place holder won't have to change over time and would later be replaced with appropriate models. Once the construction is finished, the new station replaces the placeholder.

Stations would require a given number of parts to be built, depending on their size, complexity etc.. Only so many parts can be added to the station during a given amount of time. Of course, if there is a shortage of parts, the construction would be halted until more parts have been delivered.

When a station is close to it's completion, it's functionality could become partly available: like "docking allowed" when it's 57% done (but only for less ships than usual at a time), "trading possible" when it's 85% done --- and the ship dealer moves in when it's around 94%.
The FAI doesn't have money in it's current imagining. It compensates units that listen to it with relationship points, which is the only thing it has direct control over.
The units need money to operate unless they would get everything they need to perform the mission for free (which is probably more complicated to implement). Even then, they'd spend time performing the mission which is time they could use to make profits, so they should receive a compensation for that. They might have to buy fuel, ammunition, repairs, cargo etc..

Units assigned to a faction would usually have a good relation with that faction and thus have no/not much use for relationship points to improve the relation. Would you want to work for free and even bear your expenses that arise from doing so yourself?
If the states aren't mutually exclusive enough, we can modify them so that they are.
If you are interested in expanding your territory, you would explore surrounding territory and then eventually try to get a hold of it: An expansionist would have to be exploratory as well. So I wouldn't see the states as mutually exclusive.

How much that matters would depend on the implementation. Maybe being able to set a combination like "expansive=5" together with "exploratory=10" would be nice. I'm not sure if that would go too far away from what you have in mind (too detailed?)--- but it might turn out as necessary to give the FAIs a finer tuning to make them operate successfully and/or do what they are supposed to do.
I'd like to keep the things described in the definition file simple, so as to minimize the complexity of the "fitness function" for decision making. Basically, all of these "states" and such will not just be switch statements for determining what methods to use, but they'll also be turned into some numeric value that will be used with other values to give us a boolean of whether or not we want to take a given action, or to give us a number for how much to do something.
One problem I see with keeping the description of a FAI too general is that they could become the more alike each other the more general --- and thus vague --- the description is. At some place, there will have to be more detailed instructions that define the FAI. These can either be placed in its description or in the code. If they are in the code, it might be more difficult to improve an FAI later.
It's really the difference between describing all available basestates by assigning a number to each signifying some ratio between all the states or making it discrete as to what state an FAI is.
Well, ok, how does the FAI figure out what orders to give when its description is vague? Are they supposed to be able to learn?
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

lee wrote:
safemode wrote: For instance, how do we control what allows a base to be built? Money? existence of some special construction ships?
Thinking in terms of a working economy:

a generic cargo type "starbase constructrion parts", or, if you want to be more specific, a category "starbase construction parts" that contains cargo like "mining base parts", "commerce center parts", "starbase construction robot" etc. --- to be produced on shipyards

a ship with sufficient cargo space could bring the parts to where the station is to be built

money, as in buying/producing the parts and in giving the new base something to work with

in case of a mining base, you need an asteroid to convert into a base

a fighter squadron to protect the construction site until the base can defend itself

There needs to be some way to decide if a station should be built and what type of station it should be. A working economy might create a demand for stations --- like when there is a shortage of metals, the FAI might consider building another mining base; if you need more stuff produced in refineries, build another one; if the docking and handling capacities of your commerce center are exceeded so that ships are experiencing delays, build another one; etc..

Hmm ... Stations could become extremely important. Without stations, your production is limited to what you get from the planets, but you can build a virtually unlimited number of stations (if you have the resources).

Where do you build a station? Well, close to the already existing ones where there is a shortage to keep the travel times short. Starfortresses would be built at strategically or economically important places.

There might have to be smaller "military" stations (as in "outposts") that could be built relatively cheap to establish your hold on conquered systems and to cover your supply lines. Maybe fighter barracks could be (ab)used for that (These outposts need storage capacity and good defenses.).
That is precisely why i dont think we'll be doing this in regular VS. It's a ton of complexity that is strictly limited to NPC's, with little to no benefit to the player in terms of gameplay compared to the way things currently function.

We'd have to find a way to simplify that whole process down to the point where it becomes a non-issue procedurely to build new bases as we destroy old ones in wars.

Bases would have to be built over time, meaning intermediary models of the base in construction, etc.
Yeah --- until those models exist, there could be a generic place holder symbolizing a station that is being built. The place holder won't have to change over time and would later be replaced with appropriate models. Once the construction is finished, the new station replaces the placeholder.

Stations would require a given number of parts to be built, depending on their size, complexity etc.. Only so many parts can be added to the station during a given amount of time. Of course, if there is a shortage of parts, the construction would be halted until more parts have been delivered.

When a station is close to it's completion, it's functionality could become partly available: like "docking allowed" when it's 57% done (but only for less ships than usual at a time), "trading possible" when it's 85% done --- and the ship dealer moves in when it's around 94%.
Again, we dont want to fall into the pitfall of micro-managing. We want to the ability to sway the masses, not much more.

The FAI doesn't have money in it's current imagining. It compensates units that listen to it with relationship points, which is the only thing it has direct control over.
The units need money to operate unless they would get everything they need to perform the mission for free (which is probably more complicated to implement). Even then, they'd spend time performing the mission which is time they could use to make profits, so they should receive a compensation for that. They might have to buy fuel, ammunition, repairs, cargo etc..

Units assigned to a faction would usually have a good relation with that faction and thus have no/not much use for relationship points to improve the relation. Would you want to work for free and even bear your expenses that arise from doing so yourself?
Just because you belong to a faction doesn't put you at the highest regard within that faction. All units want to be of the highest relation value, and that would be achieved by listening to the FAI and fellow flightgroup ships. Monetary compensation would be achieved through changing how regular entities compensate you for jobs via the computer and guilds. The higher your faction holds you in regard, the more you would get compensated for jobs you take up in the computer and from guilds.

Basically, i'm looking to avoid having to pay a tithe to the FAI, and thus having to pay a salary to members of the faction. That gets too messy.
If the states aren't mutually exclusive enough, we can modify them so that they are.
If you are interested in expanding your territory, you would explore surrounding territory and then eventually try to get a hold of it: An expansionist would have to be exploratory as well. So I wouldn't see the states as mutually exclusive.

How much that matters would depend on the implementation. Maybe being able to set a combination like "expansive=5" together with "exploratory=10" would be nice. I'm not sure if that would go too far away from what you have in mind (too detailed?)--- but it might turn out as necessary to give the FAIs a finer tuning to make them operate successfully and/or do what they are supposed to do.
expansionist entails exploring, but the term we're using "exploratory" refers to peaceful exploration, where as expansionist refers to exploration for the purpose of increasing the size of your territory. We can change the name of the term "exploratory" to something else, but the effect will be the same. I dont want to start doing a percentage of each state to designate an FAI, that just makes things more complicated than it needs to be.

I'd like to keep the things described in the definition file simple, so as to minimize the complexity of the "fitness function" for decision making. Basically, all of these "states" and such will not just be switch statements for determining what methods to use, but they'll also be turned into some numeric value that will be used with other values to give us a boolean of whether or not we want to take a given action, or to give us a number for how much to do something.
One problem I see with keeping the description of a FAI too general is that they could become the more alike each other the more general --- and thus vague --- the description is. At some place, there will have to be more detailed instructions that define the FAI. These can either be placed in its description or in the code. If they are in the code, it might be more difficult to improve an FAI later.
What given a faction AI it's character will be these states. Each unit in the faction also has a similar state modifier, giving it it's own characteristic personality. Both the FAI and the NPC's still react and respond to the game state though, and these modifiers are merely suggestions. What makes one faction different from another is the suggestion. Aera may tend towards expansionist, Uln may tend towards isolationist. Etc etc. The aeran trader may tend towards a merchant way of life, but is aggressive, where as another faction's trader may tend towards merchant but non-aggressive.

There doesn't need to be any more differentiation to produce vastly different methods of operation in the game.
It's really the difference between describing all available basestates by assigning a number to each signifying some ratio between all the states or making it discrete as to what state an FAI is.
Well, ok, how does the FAI figure out what orders to give when its description is vague? Are they supposed to be able to learn?
The FAI only takes a vague suggestion from the definition file, it makes much more educated decisions based on the game state. That is controlled by a common core of FAI logic that is coded in C++. Such logic would be based around survival and keeping your faction healthy. What it means to be healthy is steered by whatever vague suggestion is described in a particular faction's definition file.

What commands an FAI can send to a unit is not pre-scripted or determined. How intelligent we make the FAI all depends on how many "breakpoints" we want to give the FAI in terms of noticing game states that would necessitate a command to be given. For instance, we know Aera want to expand their territory, the goal with FAI is programming it to understand when to give commands in order to do that. this would theoretically be done with a group of functions that would look for opportunities, allowing the FAI to make a decision in order to take advantage of the opportunity.

We may start out with making FAI's entirely reactive in nature. Meaning, the FAI doesn't do anything unless something is being done to it. So, say some ships start attacking eachother (like happens now without FAI's), the FAI for either faction would be coded to recognize a battle taking place using some thresh-holds, and would then send out a dynamic event to it's units to respond. This could escalate, but the FAI wouldn't need any more higher logic than just responding to an attack. The overall effect is an all out war, with extremely little procedural logic behind it. it just happens as an effect of sending a bunch of ships into the area to help.

Once a reactive FAI is functional, we can work on making the FAI take initiative... but that's much harder than just being reactionary. It's not so much about learning as it is about recognizing things occuring in the universe and knowing what to do about them without having everything hard-coded.
Ed Sweetman endorses this message.
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

Note: it may be that we'd need to use fractions of each state to describe a faction's personality, simply because there aren't as many states as there are factions. so that will probably be how we'll have to do things.
Ed Sweetman endorses this message.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

Hmm, sounds like it would work. What I don't understand is on what the ongoing process would be "based": Are there limits as to how many units can be created? Do units just appear out of nothing somewhere in space? What is the purpose of (different) stations or planets in this? Are they no more than targets that can be conquered or destroyed? Would events have any effect on trade? What is the players role in this?
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
safemode
Developer
Developer
Posts: 2150
Joined: Mon Apr 23, 2007 1:17 am
Location: Pennsylvania
Contact:

Post by safemode »

that's another thing i've been considering. A persistant universe where units can't just be generated willy nilly. They would have to be generated at bases only at least, and it would take resources in some way. The thing is, there is no clear and correct way to do such a thing. Units dont have to be of a faction, so who's resources do we take to spawn them? Units can change factions, so what's to stop one faction from spawning a bunch of units only to have them defect for free to another ?

For the most part we dont just spawn units everywhere, we generate the majority (if not all) of our units at the beginning of the game. But to give the game more strategy and power to actions of the FAI, we need to figure out a way to spawn new units at an expense somehow to something such that the FAI's are limited by some type of wealth.


With the development of a new economic system, certain bases would produce certain goods and other bases may not produce those goods, but require them. Etc. In this manner, you would generate an economic system and trade cycle. Thus, certain bases will be integral to a system/faction's economic system, and losing it could cripple them. etc. The challenge here is to make such things possible, but not too easy to occur.


The player's role is many. By being a merchant you can trade goods that turn the tide of a war (not by trading iron ore, we'd think of something more suited to privateer trading). You could join a faction and work your way up to leading a flight group into battle. You could do pin point strikes against a base and stall an enemy's war machine long enough for your faction to take them out. etc. You could explore deep space and uncover long lost secrets that change the power balance of the galaxy.

There are plenty of ways 1 person can make a difference. That 1 person may not get fan-fare and may not be remembered in the history books, but 1 person can definitely change things.
Ed Sweetman endorses this message.
lee
Confed Special Operative
Confed Special Operative
Posts: 322
Joined: Sat Aug 21, 2004 2:17 pm

Post by lee »

safemode wrote:that's another thing i've been considering. A persistant universe where units can't just be generated willy nilly. They would have to be generated at bases only at least, and it would take resources in some way. The thing is, there is no clear and correct way to do such a thing.
What would you consider as a clear and correct way?
Units dont have to be of a faction, so who's resources do we take to spawn them? Units can change factions, so what's to stop one faction from spawning a bunch of units only to have them defect for free to another ?
It could take the resources of the places that create the units. Can bases and planets change factions at will?

If there was something like "happyness" that would influence units to stay with the faction they are most "happy" with, units wouldn't switch away so easily.

The problem is to find factors that make units more or less happy. The factors might have to have to do with the personality of the unit, assuming that different personalities want to do different things and become unhappy with their faction when they can't do them. The less happy they are, the less they might be willing to follow suggestions from the FAI. New units might be extremely happy with their faction because that faction created them.

What if FAIs could give suggestions to all units, not only to the ones that are with the faction? It would be "fair" to begin with, and over time units would switch to the faction that makes them the happiest.
But to give the game more strategy and power to actions of the FAI, we need to figure out a way to spawn new units at an expense somehow to something such that the FAI's are limited by some type of wealth.
What exactly is the purpose of a FAI?

If a FAI would be the happier the happier its units are, things might "balance" out by themselves. A peaceful FAI might attract more merchants, a warful FAI would attract more fighters. That would have to have consequences, like the warful FAI running out of resources, the peaceful FAI becoming so wealthy that it could suddenly create or hire lots of fighting units if needed. If the fighting units of the warful FAI find out that they can buy the resources to fight from the peaceful FAI and are even given opportunities to fight, they might switch after some time --- and switch back or somewhere else when the conflict is over because they can't fight and thus become unhappy.

Wealth comes from work, like work for production, and from consumption. Units can do "work", and they can consume.
The challenge here is to make such things possible, but not too easy to occur.
There is not much of a limit to bases other than the resources needed to build them. There would be so many of them that it is unlikely for a particular base to become vital to more than the system it is in and maybe the ones directly surrounding it. But it could be a strategy to concentrate an attack on a particular type of base in an attempt to cripple the opponents economy.
The player's role is many. By being a merchant you can trade goods that turn the tide of a war (not by trading iron ore, we'd think of something more suited to privateer trading).
That would require some kind of economy. And if you have a monopoly on iron ore or on ship building in an area and stop selling your products to a particular faction, that could become a problem for that faction.
You could join a faction and work your way up to leading a flight group into battle. You could do pin point strikes against a base and stall an enemy's war machine long enough for your faction to take them out. etc.
Just like a FAI does?
Debian testing
NVIDIA-Linux-x86-173.08-pkg1.run
Post Reply