Nearly every time I open patch notes, the thanks and appreciation is usually punctuated with a discussion about Bounty Hunting. Specifically the issues surrounding reputation, last hit mechanics, and security vessel response to stray munitions. First, let’s not downplay or minimize, these are issues that do affect many people and that do make Bounty Hunting more tedious and less fun. It does even start to hinder profit when you take an anaconda blast to the face from the Local Security Force for killing that dastardly pirate who happened to be in the same minor faction. The Devs have, through social media, tickets, and the forums, been made fully aware of the issues by now, I’m sure; and since the Patch Notes have yet to address this issue, I’m sure they’re aware that the issues are still in the public version.
Now, having said that, I've a basic understanding of simple Boolean programming and debugging, and I know that often times, as a community rallying around a piece of art/entertainment, we begin to lost objectivity and forget the humanity behind the decisions and the work. And I see many comments to the effect of “Well why are they focusing on all these other bugs and not the Bounty Hunting bugs?” This would be a perfectly valid question, were it not for the way game companies handle debugging and patching. So I’d like to hopefully help explain why Frontier have been seemingly slow in fixing these glaring bugs, and why other bugs are being fixed faster, seemingly in its stead.
DISCLAIMER: I do not have intimate knowledge of Frontier’s exact resource management model, nor am I a professional programmer. However, I do have a few years of amateur programming in Java, HTML, CSS, and AutoHotKey (I know, I know, but it is still an object oriented programming language), and I have knowledge of LEAN model efficiency, which is used heavily in the programming and software industry; as well as basic professional project management experience (currently working on my second major project for my company, as project lead). Information from this point forward infers from this knowledge, and is slight conjecture as to their model from practices I’ve observed. This is an attempt to remember the human element and an attempt at an objective analysis of the situation.
So! What’s our primary issue? Well, Bounty Hunting has a few glaring issues, issues which the Devs have, on several occasions, made it clear they are aware of and working on (For full details, please see Michael Brooke’s forum post history). As mentioned above, these issues have persisted for a while, and yes, have persisted past launch. However, let’s take a moment before we dive into debugging to remember something important, it is, despite some cries to the contrary, broken beyond all repair. I have personally broken a cool Million credits bounty hunting since launch, and have a nearly 100% A-fit Viper thanks to the combined funds of Bounty Hunting, its associated missions (which I actually think are different than Assassination missions, someone please confirm/correct), combat missions, and some light courier missions. There are countless more CMDRs who have been able to make a living in a similar fashion. It’s annoying, but it works, more or less.
Now, on to the main question that inspired this rant/letter, “Why is Frontier taking so long to fix such a simple bug, and why are they fixing other, sometimes rare bugs first?” Short answer is, they aren’t. Long answer requires a basic understanding of programming logic. Elite is very Binary, there is no getting around this fact. It appears to me AI behavious can be determined by a very basic set of IF, THEN statements regarding a player’s reactions towards them. Now all AI can be defined this way (All of the Final Fantasy’s combat AIs are a string of these determining who to target with what attack) so this is not a criticism, simply the foundation we are basing the rest of this on.
Now, let’s see if we can fix this for Frontier. The largest complaint I’ve seen, more than the last hit mechanic is the retaliation. Now, the simplest fix for this would be to run a targeting check, right? So our Boolean now looks like this:
Now, we have to account for additional layering, additional eventualities. We have to account for cheaters and exploits. So, first exploit that comes to mind is the ability to attack police by positioning them between you an your target (a skilled pilot could do this with say, an anaconda, and kill police craft with the plasma accelerator in 1-2 hits. Since the Police is not engaging, then they won’t fly differently. Now, we can add some arguments to account for this.
Now, the player must be targeting someone else, and we’ve added a damage threshold for engaging the player. If the player causes more than 50% shields damage to an officer, no matter who they are engaging, the police will engage. Now, someone who’s good with programing is probably looking at this statement and seeing a glaring issue. This could, without knowing the rest of the code, cause an issue where attacking a clean player would not cause police to engage you, since you aren’t targeting them, and aren’t damaging them, they are told that attackPlayer = False. So, that needs to be fixed.
Now, we have an additional rule governing the assault of Clean Pilots. If the pilot is clean, the police will attack, if not, they will not. Now, you will notice I’m using “and if”, meaning that both criteria must be met, the target cannot be the police force, and the target must be clean for the police force to ignore you. There’s also the caveat that if you cause over 50% shield damage, the Police will attack.
For each possible exploit, the code gets longer, and more and more scenarios have to be accounted for. And for each line, it’s possible to break something else. Obviously, there’s reputation to account for, if the local police hate you, you’re SOL. Now some people mentioned that police should not have a faction affiliation. I beg to differ.
By answering not only to the local government but to their faction, it adds another layer of depth. Whether or not the police put the law above their faction is not for me to say, I leave it to Frontier to make the design choice for their game. But at the end of the day, it’s a long, and time consuming process just to get the code built correctly. And remember for each line you write, you need to correct two... hundred... thousand. You get the idea.
Now, last, and least (at least word count-wise, already over 1200, sorry, guys and gals) why are they fixing other stuff and ignoring Bounty Hunting? Again, they aren’t. There are probably a team devoted to fixing this, as well as a team devoted to fixing other issues. The teams work in parallel, but separately. People are unable to log in, unable to finish their purchase, or disconnecting regularly. That’s more important than bounty hunting, yes, but it’s not that bounty hunting is being ignored. Tons of testing needs to be done for each change, to ensure that it doesn’t have unprecedented outcomes.
And since it’s a launched game, they need to make doubly sure that nothing is damaged when they make a major change like that. So give them a bit of time, time to work out exactly how to improve my favorite profession. (Well, second favorite, I’m an Imperial mercenary first, but that doesn’t make me a lot of money atm). I can assure you, Frontier hears you, and they want to give you a game you love. No developer sets out with the mission of ing off their players, but good code comes with patience and a lot of energy drinks.
See you out in the Black, commanders!
Now, having said that, I've a basic understanding of simple Boolean programming and debugging, and I know that often times, as a community rallying around a piece of art/entertainment, we begin to lost objectivity and forget the humanity behind the decisions and the work. And I see many comments to the effect of “Well why are they focusing on all these other bugs and not the Bounty Hunting bugs?” This would be a perfectly valid question, were it not for the way game companies handle debugging and patching. So I’d like to hopefully help explain why Frontier have been seemingly slow in fixing these glaring bugs, and why other bugs are being fixed faster, seemingly in its stead.
DISCLAIMER: I do not have intimate knowledge of Frontier’s exact resource management model, nor am I a professional programmer. However, I do have a few years of amateur programming in Java, HTML, CSS, and AutoHotKey (I know, I know, but it is still an object oriented programming language), and I have knowledge of LEAN model efficiency, which is used heavily in the programming and software industry; as well as basic professional project management experience (currently working on my second major project for my company, as project lead). Information from this point forward infers from this knowledge, and is slight conjecture as to their model from practices I’ve observed. This is an attempt to remember the human element and an attempt at an objective analysis of the situation.
So! What’s our primary issue? Well, Bounty Hunting has a few glaring issues, issues which the Devs have, on several occasions, made it clear they are aware of and working on (For full details, please see Michael Brooke’s forum post history). As mentioned above, these issues have persisted for a while, and yes, have persisted past launch. However, let’s take a moment before we dive into debugging to remember something important, it is, despite some cries to the contrary, broken beyond all repair. I have personally broken a cool Million credits bounty hunting since launch, and have a nearly 100% A-fit Viper thanks to the combined funds of Bounty Hunting, its associated missions (which I actually think are different than Assassination missions, someone please confirm/correct), combat missions, and some light courier missions. There are countless more CMDRs who have been able to make a living in a similar fashion. It’s annoying, but it works, more or less.
Now, on to the main question that inspired this rant/letter, “Why is Frontier taking so long to fix such a simple bug, and why are they fixing other, sometimes rare bugs first?” Short answer is, they aren’t. Long answer requires a basic understanding of programming logic. Elite is very Binary, there is no getting around this fact. It appears to me AI behavious can be determined by a very basic set of IF, THEN statements regarding a player’s reactions towards them. Now all AI can be defined this way (All of the Final Fantasy’s combat AIs are a string of these determining who to target with what attack) so this is not a criticism, simply the foundation we are basing the rest of this on.
Now, let’s see if we can fix this for Frontier. The largest complaint I’ve seen, more than the last hit mechanic is the retaliation. Now, the simplest fix for this would be to run a targeting check, right? So our Boolean now looks like this:
Code:
if (target=policeForce) {
attackPlayer = True;
} else {
attackPlayer = False;
}
Now, we have to account for additional layering, additional eventualities. We have to account for cheaters and exploits. So, first exploit that comes to mind is the ability to attack police by positioning them between you an your target (a skilled pilot could do this with say, an anaconda, and kill police craft with the plasma accelerator in 1-2 hits. Since the Police is not engaging, then they won’t fly differently. Now, we can add some arguments to account for this.
Code:
if (target = policeForce) {
} or {
if (shieldDamage >50%)
and (damageSource = playerWeapon)
then attackPlayer = True;
} else {
attackPlayer = False;
}
Now, the player must be targeting someone else, and we’ve added a damage threshold for engaging the player. If the player causes more than 50% shields damage to an officer, no matter who they are engaging, the police will engage. Now, someone who’s good with programing is probably looking at this statement and seeing a glaring issue. This could, without knowing the rest of the code, cause an issue where attacking a clean player would not cause police to engage you, since you aren’t targeting them, and aren’t damaging them, they are told that attackPlayer = False. So, that needs to be fixed.
Code:
if (target = policeForce) {
and if (target = clean)
} or {
if (shieldDamage >50%)
and (damageSource = playerWeapon)
then attackPlayer = True;
} else {
attackPlayer = False;
}
Now, we have an additional rule governing the assault of Clean Pilots. If the pilot is clean, the police will attack, if not, they will not. Now, you will notice I’m using “and if”, meaning that both criteria must be met, the target cannot be the police force, and the target must be clean for the police force to ignore you. There’s also the caveat that if you cause over 50% shield damage, the Police will attack.
For each possible exploit, the code gets longer, and more and more scenarios have to be accounted for. And for each line, it’s possible to break something else. Obviously, there’s reputation to account for, if the local police hate you, you’re SOL. Now some people mentioned that police should not have a faction affiliation. I beg to differ.
By answering not only to the local government but to their faction, it adds another layer of depth. Whether or not the police put the law above their faction is not for me to say, I leave it to Frontier to make the design choice for their game. But at the end of the day, it’s a long, and time consuming process just to get the code built correctly. And remember for each line you write, you need to correct two... hundred... thousand. You get the idea.
Now, last, and least (at least word count-wise, already over 1200, sorry, guys and gals) why are they fixing other stuff and ignoring Bounty Hunting? Again, they aren’t. There are probably a team devoted to fixing this, as well as a team devoted to fixing other issues. The teams work in parallel, but separately. People are unable to log in, unable to finish their purchase, or disconnecting regularly. That’s more important than bounty hunting, yes, but it’s not that bounty hunting is being ignored. Tons of testing needs to be done for each change, to ensure that it doesn’t have unprecedented outcomes.
And since it’s a launched game, they need to make doubly sure that nothing is damaged when they make a major change like that. So give them a bit of time, time to work out exactly how to improve my favorite profession. (Well, second favorite, I’m an Imperial mercenary first, but that doesn’t make me a lot of money atm). I can assure you, Frontier hears you, and they want to give you a game you love. No developer sets out with the mission of ing off their players, but good code comes with patience and a lot of energy drinks.
See you out in the Black, commanders!
Last edited: