Possible suggestion box improvements/ideas

Well, what exactly would be hard? Just add, subtract, multiply... ;-)
No, seriously. Okay, let me put it this way to make things easy: I'll pledge to code this in C++ or in Python, as may be required. (I'd rather do it in C++ as I've never coded in Python, but if it has to by Python I'll learn it.) So, let us just keep the discussion at the level of desirability alone. Deal?

EDIT:
In fact, I would like to add further dimensions to Argentus' proposal: Besides Notoriety and Like/Dislike, I'd like for the system to also include a score for Trust/Distrust, such that Kilrathi may get to like you, but may never get to fully trust you. Also, I would like to bring back the issue I raised in earlier posts: Namely that Hunters don't like or dislike as much as other factions, as they are rather cold-blooded people; they simply put a price on your head, and if you want to clear your score with them, you can only do it with MONEY.

EDIT2:
Yep, add a fourth score: Price on your head. To the extent a faction dislikes you, they are willing to pay for your demise, so the more factions dislike you, and the more they dislike you, the total bounty goes up, and more hunters, and even other factions, would like to collect that bounty.

Another detail: Destroying a ship of a faction when the ship was friendly or neutral should produce a much greater change in score with that faction than if the ship appears as hostile in the first place; and perhaps NOT affect your score with that faction at all if the ship attacked you first.

EDIT3:
Argentus suggested that if you do any piracy, the merchants reject you. I'd like to put a little kink on that: It should depend on the KIND of piracy. Transporting contraband is none of their business to judge you for. Attacking merchant ships, on the other hand...

EDIT4:
Also, accidentally shooting a friendly, or ramming into them, should NOT produce instant enemity: They should just say something along the lines of "Hey, look before you shoot, buddy!". After 3 shots, say, they might become hostile.

EDIT5:
So, to Argentus' proposal of a 2-level friendliness scoring, namely Local and Global, I'd like to add a lot of levels:
  • Individual ship
  • Flight group
  • System
  • Quadrant
  • Sector
  • Global
And the scores from the most localized level would trickle along the chain towards Global at various rates, reflecting the speed at which the gossip spreads.
 
Bingo we have a winner!!!

I really didn't think that the code would be hard, at least it seemed simple to me. So basicly we need to define the granulariy of the system, how to earn loose points for each faction, and how many faction score subgroups we will need.

I propose for granularty we use a -1000 to +1000 scale for each system faction score.
For the global score /2 to *2 of the global scale, (ok the math side of my brain just went out to lunch... ok basicly your local score would max at -2000 to +2000 when adjusted by your global score). That should give a lot of room to work with. That way we have the option of factions that take a LONG time to earn trust, some that are faster (earn more points/misson), and fine tuning the system would be easier because you can make very small changes, while still a small enough pool of numbers to keep eveything in your head when debugging it.

As for faction sub groups we have:
Like/Dislike
Fame/Noteriety
Trust/Distrust

I think that fame and trust are very close together. But I can understand the diffrence and why it would be important. Any others we would like to add to the list?

Now as far as how to earn loose points and the effect on the AI that is the difficult part. First we need a complete list of all factions. Then one at a time discuss how you would earn/loose faction points.

Once we have all that it would just need to be coded up and plugged into the game. It should in theroy give us a simple way of keeping score of a players actions within the game. That would act as a basis of generating missions, AI interaction, and game difficulty all at the same time... In theroy that is. :p
 
I think a price on your head should be a combined funciton of dislike and noteriety for some factions and its a one time thing. Paying the price on your head would boost you up to just under when they issue contracts aginst you. Differing factions would have differing level at witch they decide they want you dead.

Like if your combined global score adjusted system faction for the merchents for dislike and noteriety is greater than -800 then you can no longer do buisness with time, when it hits -1200 a small contract is taken out, %20 chance that a bounty hunter will attack you in system/day %5 chance in neiboring systems. At -1600 a large contrat is taken on your head %50 chance in system a group of bounty hunters will attack you, or %20 in neiboring systems. At -2400 its %100 sure that you will be attacked in system and you better watch your ass anywhere you go. If you pay your retrobution then you are boosted up to -1000 again.
 
Forlarren said:
Bingo we have a winner!!!
(That was quick! ;-)

I really didn't think that the code would be hard, at least it seemed simple to me. So basicly we need to define the granulariy of the system, how to earn loose points for each faction, and how many faction score subgroups we will need.
I'll probably define a class "score" that can be instanced for each group and/or sub-group, so, that kind of postpones the problem of having to define them in advance. You just create an instance of the class for each subgroup, as they may come or go.

I propose for granularty we use a -1000 to +1000 scale for each system faction score.
For the global score /2 to *2 of the global scale, (ok the math side of my brain just went out to lunch... ok basicly your local score would max at -2000 to +2000 when adjusted by your global score). That should give a lot of room to work with. That way we have the option of factions that take a LONG time to earn trust, some that are faster (earn more points/misson), and fine tuning the system would be easier because you can make very small changes, while still a small enough pool of numbers to keep eveything in your head when debugging it.
I'd probably use a range like -32K to +32K internally; which may be expressed in units of -100 to +100 for display purposes.

As for faction sub groups we have:
Like/Dislike
Fame/Noteriety
Trust/Distrust

And Bounty (on your head). Note, however, that bounty may be a negative number, for a given faction, which means that whoever collects a bounty on you, must keep in mind that the negative bounty on you may become a positive bounty on them. On the other hand, the bounty score would be hidden from the player, even from NPC's. It would just be a very fine-tuned system of determining the probability of meeting hostiles. In the long run, this would all translate into an overall responce that "feels" intuitive to the player, without necessarily disclosing the details.

I think that fame and trust are very close together. But I can understand the diffrence and why it would be important. Any others we would like to add to the list?

I haven't completely digested the fame attribute, I must confess, though I do think there's something there.

Now as far as how to earn loose points and the effect on the AI that is the difficult part. First we need a complete list of all factions. Then one at a time discuss how you would earn/loose faction points.

Exactly. That's the hardest part to program, because, essentially, the way to earn or lose points should be different for each faction, depending on their character, as well as depending on whether your score is positive or negative with them in the first place. To go from negative to positive with hunters, for instance, it should only be doable with money: Going to a mercenaries' guild and paying the full bounty they put on you. But if you're already friendly with them, you could become friendlier by doing hunter missions.

Once we have all that it would just need to be coded up and plugged into the game. It should in theroy give us a simple way of keeping score of a players actions within the game. That would act as a basis of generating missions, AI interaction, and game difficulty all at the same time... In theroy that is. :p

Mission generation is in need of A LOT of work, right now. Sometimes I see missions at New Detroit to deliver food from there to an Agricultural planet, or uranium to a mine. The mission generators are in a pre-alpha state at the moment, I reckon.
 
dan_w said:
I'd probably use a range like -32K to +32K internally; which may be expressed in units of -100 to +100 for display purposes.

You coders and your thousands of numbers. Back in my day we has a dosens numbers and we had to use paper and pencils. And we got paper cuts, splinters, and lead poisioning. And we liked it! :p

If done correctly this faction system could be a good framework to hang a LOT of other scripts. It would be a good way to measure a players actions through the game without having to resort to experence points, or other such nonsence.

If this system is as intuitve as it seems to be then I really dont think we will need to output anything to the player. If he cant remember that he is a wanted man in Troy then thats his own problem.
 
Forlarren said:
If this system is as intuitve as it seems to be then I really dont think we will need to output anything to the player. If he cant remember that he is a wanted man in Troy then thats his own problem.

Exactly!

I wouldn't even make the faction scores available to the player. All these complex computations should result in faction attitudes that seem logical and reasonable to the player, given past actions.

BTW, this is the hallmark of good software, in general: Complex under the hood, easy and intuitive on the surface. In my day to day work, I design industrial control systems and motor controls, using microcontrollers. I have a personal standard I came up with long ago, which has been my guiding light; --something of a Turing test: If a user trying out the system can tell that there is a microcontroller in there, I've failed. The behaviour of a control system, if it's done really well, should be so smooth and intuitive that a user might think it only uses analog components, relays, and the like. To achieve "smoothness", though, it takes using large numbers (many bits of precision), and to achieve intuitiveness of operation, it often takes very complex state-machines, and multi-threaded models.
 
Most of this stuff is probably going to make a visible difference to the player only in multiplayer though... I think that faction likeability and bounty on your head should cover it :) I mean, this is all very cool but will it show in gameplay? That's the main thing.
 
Sure it will! The factions' attitudes towards you will make a lot more sense. Say, after the Palan missions, hunters might hate you *in Palan and surrounding systems*, as well as in Oxford and surrounding systems, but not, say in New Detroit or Troy... YET, but given time the hatred might spread. How fast it spreads will depend on your notoriety. Ironically, your notoriety *with the hunters* might be higher if you've done a lot of bounty missions through their guild. In the systems where hunters hate you, or, rather, have a bounty on you, if you go to their guild, the computer will tell you you've been disqualified to take missions. If you talk to the girl, she will tell you that you are wanted, how much the bounty on you is, and offer you to clean your record by paying the bounty on yourself.
Trust: The cats may get to like you, but the only way they'd get to trust you is if you ran missions for them. So, it might be possible, but very difficult to become a friend of the kilrathi.
Retros, on the other hand, they are idiots, so it might be very easy to get them to like you and trust you, and consider you one of their own. Might depend exclusively on how you comm with them.
Confeds would be impervious to comm; they will only like you if you kill cats and/or retros.
Similarly, militias might be a bit more amenable to sweet talk, but for them to like you, you have to kill pirates and/or retros.
Merchants will like you if you comm nicely, and/or kill retros, pirates and kilrathi, but would trust you most if you also do a lot of cargo missions.

So, each group has different types of stimulus/response according to their characters.

And if you don't interact much with a given faction, then you have low notoriety, which means that you might impress some of them locally, but the news doesn't spread to other systems; but if you have a lot of interaction with a faction, and your notoriety is high with them, anything you do, positive or negative, news spread quickly.

But you wouldn't consciously be able to make out all these complex rules. It's just that the end result would simply make sense intuitively.

(Even the type of ship you're flying, might tip the attitudes.)

Now to a practical question: Where are the CVS files. I.e., what do I type in CVSROOT? Could you tell me what the settings are in your turtlecvs, that I may try and figure out gCVS?
 
Purely from the internal consistency/logic standpoing, not all factions - logically - are necessarily geographically based.

Pirates operating out of a base are geographically based, but it's more along trade routes than geographic areas per se.

Militia are clearly geographically based.

Confed are likely based on larger geographic areas, though if you get high enough, it's going to be Confed-wide immediately.

Larger merchants would likely be trade route based, and some may travel around the sector. Smaller merchants may be more like professional killers - follow the highest payout cargo routes - 9000 + 15000 + 18000 over 3 jumps/autopilot is better than 20000 over 2 jumps/autopilot unless the 3 include navigating an asteroid field, etc.

Hunters, in particular, probably have two subgroups - local yokels, and professional killers. Professional killers go where the killing is - in particular, as a high-end professional killer, I follow the trail of the highest bounties with the lowest expenditure and manageable risk (2 Kamekh, no problem, 19 Kamekh with additional fighters, I'll pass on... 19 Talon, I'm all over it), wherever that leads, which ends up taking you all over the place.
 
If you guys want to code this, then it's your problem.:-P

That said, how I view the factions:

FIRST TIER - The races. Confed (Humans) and Kilrathi. Mostly only useful for, say, keeping Kilrathi from flying Confed ships or Humans from flying Kilrathi ships.

Confed: This is the 'higher faction' for all groups except Kilrathi.

Kilrathi: Duh. Only applicable to Kilrathi.

SECOND TIER - General groupings. Each should have subgroups under it.

CONFED - The legit people.

PIRATE - Not quite legit humans.

RETROS - Strange but human.

KILRATHI - Um, no kidding. The furry ones.

THIRD TIER - Subgroups

Under Confed:

Military - TC Military. Perry goes here.

Civilian - Local governments. Planets and bases should go here.

Merchants - Legit merchants. MERCHANTS SHOULD NOT HAVE PLANETS OR BASES.

Militia - Local system forces. When TC forces are present, they come under TC command. Otherwise, they're yoked to the Civilian subgroup. MILITIA SHOULD NOT HAVE PLANETS OR BASES.

Hunters - Mercenaries, bounty hunters, etc. Here because it is assumed they act legally and are amenable to government direction (such as when Kilrathi attack). NO PLANETS OR BASES.

Under Pirate:

Pirates - Duh. Pirate ships, bases, etc. go here.

A word is in order: It is assumed that all humans except retros will be hostile to the Kilrathi. The pirates and Confed may dislike each other, but will cooperate to fight the Kilrathi, for example.

Under retros:

Retros - Church of Man. Hostile to everybody except Kilrathi.

Under Kilrathi:

Someone with more of a clue can fill this in.

FOURTH TIER - System level.

FIFTH TIER - Flight groups

SIXTH TIER - Individual ships.
 
Okay, good division.
It's true, I never saw Confeds fighting pirates, or Kilrathi fighting Retros. When Confeds were angry with me, though, they called me a "pirate".
What's 'TC'?
 
Will keep US busy, I've made a pledge to program this thingy...

Spirit, now that I've figured out CVS, more or less, and got the sources for the vegastrike engine, and managed even to compile them, next step is to try and do the same with WCU, but I still have no idea where the hell it hides. Could you program a jump point into my computer?
 
Back
Top