Page 11 of 17 FirstFirst ... 789101112131415 ... LastLast
Results 151 to 165 of 244

Click here to go to the first staff post in this thread.
Thread: 2.1 Discussion on AI weapon spam "rate of fire" bug

  1. #151
    My feeling is that AI ship loadouts are generated by a set of rules corresponding to the modules that we can buy, but those are represented on the actual ships you see in a session not as types such as '2F Fixed Pulse Laser' but as a long list of attributes usually defined by those types. Something went wrong either in writing or reading those attributes, creating ships with 'impossible weapons'. Because there is no fixed type that enforces those attributes, the NPCs were free to have a gun that fires plasma but with MC rates of fire, or beam lasers in a frag cannon spread pattern. The fix to remove the Engineer mods from loadouts being server side, and ED's backend being in part NoSQL, suggests to me that there are a bunch of JSON or XML documents on the servers representing NPC loadouts containing these untyped lists of attributes.

  2. #152
    Originally Posted by verminstar View Post (Source)
    I think I have every right to be fed up...ain't played since saturday because the game is utterly unplayable for me. I don't know FD well enough to give them my trust...I don't have the experience you guys have with them therefore I can only judge from what little experience I have here, and the emerging conclusion is they couldn't care less. The reason I say this is because I have done a lot of reading since this shambolic update and I see that beta testers did point out to the devs that new players would likely suffer the most...but they released it anyway. So either they don't care or...someone else can fill in the blank at this point. If it is indeed a bug, then fair enough but on a great many threads, I'm seeing hardcore players claim this is just the beginning and things will get a lot harder...so if things are nigh on impossible now, then with the prospect of things getting even harder, then where is my incentive to stay? What is the point in even offering me guns in the store when they so useless, it's comical. All they do is shorten my jump range at this point ^^
    Drop me a friends request in game verminstar and I'll help you get used to these challenges

  3. #153
    Originally Posted by Jack Schitt View Post (Source)
    which would give the illusion of a more efficient capacitor system over time. Not that it explains all of the AI behaviour. But it might contribute to AI that, while not actually cheating, can be much more efficient than a human pilot.
    No argument here, it is harder to make the AI seem human than to make it god-like. But I feel this is not relevant to my observations. I know of no capacitor that would at 4PIPs put out enough power to fire (guesswork) 40 PA shots in a row. If the AI takes the PIPs elsewhere, as instantaneous as that may be, this would reduce the recharge rate accordingly making the 'MultiPA' behaviour even less probable.
    Reload time should be completely unaffected by PIPs, with heat I am not 100% sure. My understanding is: more PIPs to SYS make the weapons cool quicker, but transfer the heat into the ship's reservoir. I.e. the weapons will overheat a tad slower at the expense of the ship toasting faster. Still, after 40 PA shots a player ship would go all melty - 4 PIPs to SYS or not.
    Originally Posted by wstephenson
    but those are represented on the actual ships you see in a session not as types such as '2F Fixed Pulse Laser' but as a long list of attributes usually defined by those types
    Technical, quite possible. And with the degrees of freedom the Engineers give to modules, likely required. Also, this makes having different parameter sets for the modules much more practical.
    Blood is the new black.

  4. This is the last staff post in this thread. #154
    Mark Allen is offline
    Programmer- Elite: Dangerous
      Mark Allen's Avatar
    Given the speculation about what might be causing this bug, and what it means for the game - I thought I'd clarify a few things on the technical side . Sadly it wasn't as simple a change as an un-initialised or out of range value, my head would be a lot less hurty this week if it had been!

    So, to try and explain.
    The data for a module in Elite is split up into a set of blocks: things like power consumption, vulnerability to overheating, health, and of particular interest in this case, Weapon data. Weapon data is about 40-50 values controlling everything from the more obvious rate of fire & range, to slightly obscure things like how fast the beam fades after you release the trigger. More or less any combination of values is allowed (you want a laser shotgun? sure, take a pulse laser and set the Rounds Per Shot value to 12). This flow is identical between players and npcs, even stations and skimmers actually.

    Prior to 1.6/2.1 the cached pointer each weapon held to its data was a simple affair pointing at a bit of data loaded from resources, but as part of the changes to make items modifiable I had to change this so it could also be a pointer to a block of data constructed from a base item plus a set of modifiers - ideally without the code reading that data caring (or even knowing) where it actually came from and therefore not needing to be rewritten to cope. This all works great in theory, and then in practice, up until a few naughty NPC's got into the mix and decided to make a mess. I'll gloss over a few details here, but the important information is that a specific sequence of events relating to how NPCs transfer authority from one players' machine to another, combined with some performance optimisations and an otherwise minor misunderstanding on my part of one of the slightly obscure networking functions got the weapon into an odd state. The NPC's weapon which should have been a railgun and had all the correct data for a railgun, but the cached pointer to its weapon data was pointing somewhere else. Dangling pointers aren't all that uncommon (and other programmers may know the pains they can cause!) but in this case the slightly surprising thing was that it would always be a pointer to a valid WeaponData - It's correct enough that it'd never have tripped any of the sanity checks or asserts that something was wrong, and yet.. clearly it's not right either!

    What did this do exactly? Well in that example the weapon would have thought it was a slugshot: it'd make decisions on ammo, when to fire, how much power to consume and heat to generate as if it were a slugshot. It then tells the game to fire 12 shots but now we're outside the areas that use the cached data, the weapon manager knows its a railgun and dutifully fires 12 railgun shots . Depending on which machine this occurred on exactly it would either be as a visual artefact only that does no damage, or (more rarely but entirely possible) the weapon would *actually* fire 12 shots and carve a burning trail of death through the space in front of it. The hilarious part (for people not being aimed at) is that the bug can potentially cause hybrids of almost any two weapons... In my testing I've seen cases of railguns firing like slugshots, cannons firing as fast as multicannons, or my favourite absurd case of a Huge Plasma Accelerator firing every frame because it thought it was a beam laser... Ouch.

    Why does this never occur on players? Well AI and players aren't governed by different rules in combat - but one thing AI's do that players never do is transfer authority between machines (it's rather hard to move out of range of yourself after all), which is the trigger at the heart of this bug. Removing modified weapons from NPCs earlier in the week will have reduced the frequency of the problem as it's more-or-less tied to how many modified weapons are in the session, the fix included in the build Zac mentioned coming soon should stamp it the rest of the way out. With the usual caveat of programmers: I fixed the problem I found, can't promise it's the last one!


    Much as I love the insane weapons, and part of me likes having the proof that actually the system is hugely flexible... lets add them when we mean to next time! er... Sorry

    -Mark
    "Never argue with an idiot, they will drag you down to their level and then beat you with experience"
    - Anon

  5. #155
    Originally Posted by Mark Allen View Post (Source)
    Lots of good info

    -Mark
    Thanks for the look under the hood! (or "bonnet" as you chaps like to call it )

  6. #156

  7. #157
    Originally Posted by Mark Allen View Post (Source)
    Wall of awesome
    Excellent! So, laser shotguns, when?

  8. #158
    Originally Posted by Mark Allen View Post (Source)
    Much as I love the insane weapons, and part of me likes having the proof that actually the system is hugely flexible... lets add them when we mean to next time! er... Sorry
    So you're saying Thargoids?

    Also, the issue being related to authority transfer sounds like solo players or people in sparsely frequented space would be far less likely to be affected by that weirdness?

    - - - - - Additional Content Posted / Auto Merge - - - - -

    Originally Posted by Tarman View Post (Source)
    Now I want a laser shotgun.
    I want that plasma accelerator. Sounds way more fun.

  9. #159
    Originally Posted by Mark Allen View Post (Source)
    Given the speculation about what might be causing this bug, and what it means for the game - I thought I'd clarify a few things on the technical side . Sadly it wasn't as simple a change as an un-initialised or out of range value, my head would be a lot less hurty this week if it had been!

    So, to try and explain.
    The data for a module in Elite is split up into a set of blocks: things like power consumption, vulnerability to overheating, health, and of particular interest in this case, Weapon data. Weapon data is about 40-50 values controlling everything from the more obvious rate of fire & range, to slightly obscure things like how fast the beam fades after you release the trigger. More or less any combination of values is allowed (you want a laser shotgun? sure, take a pulse laser and set the Rounds Per Shot value to 12). This flow is identical between players and npcs, even stations and skimmers actually.

    Prior to 1.6/2.1 the cached pointer each weapon held to its data was a simple affair pointing at a bit of data loaded from resources, but as part of the changes to make items modifiable I had to change this so it could also be a pointer to a block of data constructed from a base item plus a set of modifiers - ideally without the code reading that data caring (or even knowing) where it actually came from and therefore not needing to be rewritten to cope. This all works great in theory, and then in practice, up until a few naughty NPC's got into the mix and decided to make a mess. I'll gloss over a few details here, but the important information is that a specific sequence of events relating to how NPCs transfer authority from one players' machine to another, combined with some performance optimisations and an otherwise minor misunderstanding on my part of one of the slightly obscure networking functions got the weapon into an odd state. The NPC's weapon which should have been a railgun and had all the correct data for a railgun, but the cached pointer to its weapon data was pointing somewhere else. Dangling pointers aren't all that uncommon (and other programmers may know the pains they can cause!) but in this case the slightly surprising thing was that it would always be a pointer to a valid WeaponData - It's correct enough that it'd never have tripped any of the sanity checks or asserts that something was wrong, and yet.. clearly it's not right either!

    What did this do exactly? Well in that example the weapon would have thought it was a slugshot: it'd make decisions on ammo, when to fire, how much power to consume and heat to generate as if it were a slugshot. It then tells the game to fire 12 shots but now we're outside the areas that use the cached data, the weapon manager knows its a railgun and dutifully fires 12 railgun shots . Depending on which machine this occurred on exactly it would either be as a visual artefact only that does no damage, or (more rarely but entirely possible) the weapon would *actually* fire 12 shots and carve a burning trail of death through the space in front of it. The hilarious part (for people not being aimed at) is that the bug can potentially cause hybrids of almost any two weapons... In my testing I've seen cases of railguns firing like slugshots, cannons firing as fast as multicannons, or my favourite absurd case of a Huge Plasma Accelerator firing every frame because it thought it was a beam laser... Ouch.

    Why does this never occur on players? Well AI and players aren't governed by different rules in combat - but one thing AI's do that players never do is transfer authority between machines (it's rather hard to move out of range of yourself after all), which is the trigger at the heart of this bug. Removing modified weapons from NPCs earlier in the week will have reduced the frequency of the problem as it's more-or-less tied to how many modified weapons are in the session, the fix included in the build Zac mentioned coming soon should stamp it the rest of the way out. With the usual caveat of programmers: I fixed the problem I found, can't promise it's the last one!


    Much as I love the insane weapons, and part of me likes having the proof that actually the system is hugely flexible... lets add them when we mean to next time! er... Sorry

    -Mark
    Yes, some bugs are really nasty bugs. As a former programmer, I know it far too good.

    Thank you for the explanation and hat off for an excellent job.

  10. #160
    Originally Posted by Mark Allen View Post (Source)
    Given the speculation about what might be causing this bug, and what it means for the game - I thought I'd clarify a few things on the technical side . Sadly it wasn't as simple a change as an un-initialised or out of range value, my head would be a lot less hurty this week if it had been!

    So, to try and explain.
    The data for a module in Elite is split up into a set of blocks: things like power consumption, vulnerability to overheating, health, and of particular interest in this case, Weapon data. Weapon data is about 40-50 values controlling everything from the more obvious rate of fire & range, to slightly obscure things like how fast the beam fades after you release the trigger. More or less any combination of values is allowed (you want a laser shotgun? sure, take a pulse laser and set the Rounds Per Shot value to 12). This flow is identical between players and npcs, even stations and skimmers actually.

    Prior to 1.6/2.1 the cached pointer each weapon held to its data was a simple affair pointing at a bit of data loaded from resources, but as part of the changes to make items modifiable I had to change this so it could also be a pointer to a block of data constructed from a base item plus a set of modifiers - ideally without the code reading that data caring (or even knowing) where it actually came from and therefore not needing to be rewritten to cope. This all works great in theory, and then in practice, up until a few naughty NPC's got into the mix and decided to make a mess. I'll gloss over a few details here, but the important information is that a specific sequence of events relating to how NPCs transfer authority from one players' machine to another, combined with some performance optimisations and an otherwise minor misunderstanding on my part of one of the slightly obscure networking functions got the weapon into an odd state. The NPC's weapon which should have been a railgun and had all the correct data for a railgun, but the cached pointer to its weapon data was pointing somewhere else. Dangling pointers aren't all that uncommon (and other programmers may know the pains they can cause!) but in this case the slightly surprising thing was that it would always be a pointer to a valid WeaponData - It's correct enough that it'd never have tripped any of the sanity checks or asserts that something was wrong, and yet.. clearly it's not right either!

    What did this do exactly? Well in that example the weapon would have thought it was a slugshot: it'd make decisions on ammo, when to fire, how much power to consume and heat to generate as if it were a slugshot. It then tells the game to fire 12 shots but now we're outside the areas that use the cached data, the weapon manager knows its a railgun and dutifully fires 12 railgun shots . Depending on which machine this occurred on exactly it would either be as a visual artefact only that does no damage, or (more rarely but entirely possible) the weapon would *actually* fire 12 shots and carve a burning trail of death through the space in front of it. The hilarious part (for people not being aimed at) is that the bug can potentially cause hybrids of almost any two weapons... In my testing I've seen cases of railguns firing like slugshots, cannons firing as fast as multicannons, or my favourite absurd case of a Huge Plasma Accelerator firing every frame because it thought it was a beam laser... Ouch.

    Why does this never occur on players? Well AI and players aren't governed by different rules in combat - but one thing AI's do that players never do is transfer authority between machines (it's rather hard to move out of range of yourself after all), which is the trigger at the heart of this bug. Removing modified weapons from NPCs earlier in the week will have reduced the frequency of the problem as it's more-or-less tied to how many modified weapons are in the session, the fix included in the build Zac mentioned coming soon should stamp it the rest of the way out. With the usual caveat of programmers: I fixed the problem I found, can't promise it's the last one!


    Much as I love the insane weapons, and part of me likes having the proof that actually the system is hugely flexible... lets add them when we mean to next time! er... Sorry

    -Mark
    So, this is the beginning of Skynet, right? The machines learning how to bend the rules for their own good and ultimately develop the knowledge and ability to destroy the human race?

  11. #161
    Originally Posted by Mark Allen View Post (Source)
    Given the speculation about what might be causing this bug, and what it means for the game - I thought I'd clarify a few things on the technical side . Sadly it wasn't as simple a change as an un-initialised or out of range value, my head would be a lot less hurty this week if it had been!<snippety snip>
    -Mark
    Nice read.
    At least it's a short week... presuming you had the bank holiday Monday off

  12. #162
    Brilliant write-up, thanks very much!

    And yes... I too would definitely like a Huge Beam Plasma Accelarator.
    CMDR Alot: Alot of Space!
    Deadly | Entrepreneur | Elite
    Buckyballer | Fuel Rat | 65k Club Member
    Videos: The Good, The Bad and The Bucky, Do Not Deviate, From B to A, A Job Well-Done, The Fateful Eight
    The A* Challenge: Anaconda, "Rhonda" - 07:56:41; Asp, "Big Bird" - 11:46:05; Type-7, "The Transporter" - 13:53:10

  13. #163
    Thanks for the honest reply mark.

  14. #164
    Originally Posted by Mark Allen View Post (Source)
    or my favourite absurd case of a Huge Plasma Accelerator firing every frame because it thought it was a beam laser... Ouch.
    -Mark

    Can...can I have one of these? Pretty please? I will donate all the pizza you could ever need over the course of a whole lifetime?

  15. #165
    Thanks for the explanation Mark. It's a brilliant insight into your world. I've loved seeing these extraordinary weapons, but glad I have never been on the end of one! You know you (and all of Frontier) have the support of the E: D community ... even though (and perhaps because) some express their passion in interesting ways in these forums. Looking forward to 2.2, 2.3 ... 3.3 ... and 10.x releases.

Page 11 of 17 FirstFirst ... 789101112131415 ... LastLast