Change background image
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Closed AI Adjustments #24299

Discussion in 'Archive' started by Textor, Jan 25, 2019.

Thread Status:
Not open for further replies.
  1. Textor

    Textor Game Administrator

    Link to PR: https://github.com/Baystation12/Baystation12/pull/24299

    Summary of changes:
    • Adds a function that makes cameras blink a red light (visually and upon examine) when the AI is within visual range of a camera
    • Cameras can be blocked with sticky notes and duct tape to prevent the AI from seeing through them.
    • Intercoms blink when permanent broadcast is enabled, make a notification when it is toggled, and shows that it is active on a simple examine.
    • Traitors get access to the communications blackout service to knock comms out.
    • AI loses the ability to actively follow people. They can still double click to snap to them, or click their name in chat to snap to them, or click track to snap to them, but they will not automatically follow the person anymore. Ewarfare still prevents them from clicking on any of these options to track the target.
    • Synthetics bolting doors now takes 5 seconds and provides a notification in the chat box that it is happening. Unbolting is instant.
    • Synthetics electrifying doors now takes 10 seconds and provides a notification in the chat box that it is happening. De-electrification is still instant, and also now provides feedback in the chat box to indicate that it has happened.
    • Will add cameras to APCs and they will be reliant on local power, and set to be the last thing to turn off when power is failing.
    • Will add a power routing program so the AI can reroute power from APC cells to other APC cells that are on the same grid.
    • Ability to disable AI interface with holopads and force disconnect the AI from a holopad.
    Other ideas that are not currently in the PR and are not currently being worked on but are being considered:
    • Servers in the AI upload that control various AI functions that can be disabled. AI can re-enable but it would take time to fix.
    • Forced update for the AI as a random event and a service that will make the AI enter the battery backup state for a period of time. Justification of this is that normal players may end up in a state where they are unable to interact for a period (stasis, injury, chemicals, etc.), which is something the AI generally doesn't experience.

    Why these changes should be made*:
    This is an attempt to address the issues people have brought up about the AI and make it so that the AI's ability to ruin antag rounds is more easily countered and provides more transparency for what the AI is up to. I feel the sacrifice of some functionality is outweighed by allowing the AI's role to continue being on the server, as it does provide an interesting gameplay experience that myself and many others do enjoy that all other roles cannot replicate. I'm fully open to more suggestions for everything listed and anything even not listed, as this is an effort to make meaningful changes that both sides of this debate can be satisfied with.
     
  2. TcOne

    TcOne Research Director

    Almost everything seems cool in my opinion, except for delays. While having them for normal synths and AI is kind-a okay, having them for traitor AI/Borg will make them more vulnerable, and they are already severely handicapped. Do your changes affect malf/traitor synths too, or are the just for a normal legit ones?
     
    Blue_Bit and Banditoz like this.
  3. Roland410

    Roland410 Chef

    • Adds a function that makes cameras blink a red light (visually and upon examine) when the AI is within visual range of a camera
    Good idea, not too obstructive, but helpful.
    • Cameras can be blocked with sticky notes and duct tape to prevent the AI from seeing through them.
    Makes hacking basically obsolete and we shouldn't change that in my opinion, as it becomes really low effort to block the AI.
    • Intercoms blink when permanent broadcast is enabled, make a notification when it is toggled, and shows that it is active on a simple examine.
    The visual cue is enough, no need to shove it in the user's face.
    • Traitors get access to the communications blackout service to knock comms out.
    Probably should use the ionospheric anomaly which can't be circumvented so easily, but make the item costly.
    • AI loses the ability to actively follow people. They can still double click to snap to them, or click their name in chat to snap to them, or click track to snap to them, but they will not automatically follow the person anymore. Ewarfare still prevents them from clicking on any of these options to track the target.
    Absolutely a horrible idea, as it would not only make the electronic warfare function basically useless, but it'd hinder the AI most of the time where it's a totally valid function.
    • Synthetics bolting doors now takes 5 seconds and provides a notification in the chat box that it is happening. Unbolting is instant.
    • Synthetics electrifying doors now takes 10 seconds and provides a notification in the chat box that it is happening. De-electrification is still instant, and also now provides feedback in the chat box to indicate that it has happened.
    Once again, no need to shove any function in the face of the user, it's also a bad idea to use delays on these functions, which are often vital (except electrocution, because that is kinda for shutting down mercs etc.).
    • Will add cameras to APCs and they will be reliant on local power, and set to be the last thing to turn off when power is failing.
    More often than not cameras are used to change a power cell when engineers are not available, not the other way.
    • Will add a power routing program so the AI can reroute power from APC cells to other APC cells that are on the same grid.
    This is actually a good feature, I wouldn't mind having this.
    • Ability to disable AI interface with holopads and force disconnect the AI from a holopad.
    Enabling someone to disconnect the AI from a holopad is fine, but disabling the AI's access to it feels unnecessary.

    Also the ideas you're considering would take even more fun out of playing AI.
    All in all, most of your suggested changes would nerf the AI so hard, that I'd rather have them removed with borgs as well.
     
    Don_Piano likes this.
  4. Anticept

    Anticept Chef

    In regards to stickynoting a camera: It's also easy to pull the stickynote off and blatantly obvious what is going on. I'm conservatively in favor. This should just cause areas to black out, instead of displaying static and generating camera alarms.

    I agree that you don't need notifications in people's faces. Just the lights are enough.

    I do NOT agree with the part regarding disabling camera tracking. This severely hinders a lot of legit function. It would be better to give antags more abilities to hide from the list instead. For example: don't show "unknowns" that aren't wearing an ID in the list (this would also stop showing monkies). There's lots of masks everywhere that can be used for this. Also, try increasing the availability of cardboard so people can build cardborg suits.

    Locking out the AI from holopads completely shouldn't be a thing unless you hack it. Agree though, clicking the holopad should disconnect it. If you need to stop an AI from using a holopad, hack/stickynote the cameras in the room and disconnect it.

    Regarding cameras using power: Agree only if you put in an internal battery that lasts a few minutes, then generates an alarm as the camera shuts down (and shows a "low power light" upon inspection). There are legitimate reasons for depowering an area (such as during the virus events).

    Regarding electrifying doors: Why is this a thing? Hacking the door, i would agree, but making it a function that just anyone can activate is just strange. I would prefer this to be a special type of malf AI function, not typically available to standard functioning players or borgs. I don't even like that EMPs can cause it... rather an EMP depower the door, drop bolts, or in rare occasion, cause a door to open.
     
    Last edited: Jan 27, 2019
  5. Textor

    Textor Game Administrator

    This is the case that is planned. You would actively have to open the holopad up and cut a wire to prevent the AI from connecting to it, and forced disconnect will be simply a "click on this and confirm' interaction.

    I was seriously considering this, so I will likely implement this to make it so there's a delay between when power is lost and cameras go offline.

    I'm open to removing the functionality for non-door hacking stuff entirely, it's actually a heavily discouraged practice for AI and robots to perform as it is.
     
  6. Roland410

    Roland410 Chef

    If you remove door electrifying from the AI, it can't turn it off either.
    If you seriously want to fuck with the AI and make cams be powered, be generous with the time it has on the backup, or remove the Greytide virus.
     
  7. Textor

    Textor Game Administrator

    If I remove electrifying from everything except when you cut wires on the door, the AI couldn't turn it off anyhow because it's physically broken.
     
  8. Textor

    Textor Game Administrator

    Since @Cakey helpfully gave his critique of this in the other thread:
    Funny how the post-it notes and duct tape on cameras features does address this problem. So would turning off the camera's power in a room.

    The AI can't actively track them anymore, so if they DO tell someone "There's a guy with a gun in the mess hall!" and they run off somewhere... the AI can't tell everyone what their new location is unless they were stupid enough to run through the main hall to their new destination or have their suit sensors trackers on full. Also, they could easily put up post-it notes or duct tape or disable or break cameras to stop the AI from seeing where they are headed.
     
  9. Sabira

    Sabira Head Developer Donator

    It is clear that there's appetite for some changes on AI, and I believe that this may work in everyone's favour.

    I'm reticent to throw a role that many people enjoy away just because some players get caught with their pants down doing obviously traitorous things in open view. The Torch is the largest map with the worst camera coverage we've ever had on this server.

    The play-to-win mentality extends far beyond the AI and is the root cause of the problem, and it can't entirely be addressed from the repository. We chipped in with skills and I believe we made some progress, but ultimately the duty lies with the administration staff enforcing roleplay standards and encouraging constructive, thoughtful play, and the playerbase themselves also chipping in to create more potential for interesting play. I don't see how anyone could complain about a 'boring round' after security or the pathfinder or whoever else takes down the traitor in 15 minutes.

    Often the more interesting thing to do would be to let them go (there are many ways you can do this without looking like you're colluding, we've done this for years) and allow them to do what they planned instead of cutting them off at the pass at the first available opportunity. Ruthless efficiency is for engineering and, begrudgingly, medical at the moment. Security and its related activities (including the omniscient AI) do not need to be executed with ruthless efficiency. The only person it benefits is the person who catches or kills them, and it robs everyone else in the round of any opportunity they may have had to have some interesting reaction with the traitor. This doesn't mean security or the AI needs to 'throw the game', it means they shouldn't even consider 'winning' important. That may be a tough pill to swallow, but it does align with the server's stated goal to foster interesting rounds.

    It's accurate to say that the AI has a lot of power to catch people doing things they're not supposed to be doing in places they're not supposed to be in, and the power and authority to call them out and detain them at a good clip. Shifting the blame to the job itself (2 week no security test, when?) is misguided in my opinion. If you want green text, please find it elsewhere.

    Anything greyed out should be culled, anything in boldface is my comment. I don't believe any of the additional things I recommend would be terribly difficult to implement, but Textor is not beholden to do it themselves if they do not want to.

    Re: door controls, I would prefer something like this (numbers are examples, can sort that out in testing, though I believe 5 seconds is too long):
    • Adjacent mobs (robots) can always access instantly
    • Distant mobs and AI have a scaling delay for bolting/electrifying
    • Result would be the first door could be bolted fairly quickly (say half a second to 1 second), and any others for the next five seconds or so would take 3 or 4 seconds to complete the operation. Opening/closing the door should cancel any pending action
    • For consistency's sake, add a small delay to toggling doors: play a beep sound from door, .15 seconds later, door acts. Synthetics can Bump() to open doors so you wouldn't need to do anything to override for adjacency
    • Remove the hotkeys for electrifying, making it only accessible via door panel
     
  10. dryerlint

    dryerlint Sol Gov Pilot

    I agree that this problem could mostly be solved with some more restrictive rules and recommendations for AI players. As was mentioned further up in the thread, there used to be a rule that (for example) if you saw someone breaking into the CO's office, you would have to initially say something like "Intrusion Detected" and then slowly reveal the situation. What happened to that? And personally, when playing AI, I like to -uh- "subtly not notice" the identity of whoever broke into the room, to avoid immediately giving them way. Why not encourage - or even require - that sort of gameplay more often?
     
  11. Sabira

    Sabira Head Developer Donator

    That was never a rule as far as I can tell, though it still is a point on the AI wiki page, and is a good example of what I'm recommending.
     
  12. Textor

    Textor Game Administrator

    Fair enough, I'll revert this change. There was an idea about checking to see if they have an ID on or not (basically, culling "unknown" and NPC mobs) that we might consider implementing as an alternative.

    I think this might be beyond my skill for the moment (at least implementing it in a cost-efficient way) and if I tried writing it, it'd probably end up being nearly entirely rewritten by the dev's code review process. If someone else wants to implement the change in this manner, I've got no objections to it.

    Overall I'd prefer the changes be made effectively and things should get adjusted to make sure that anything that is changed is balanced between favoring non-AI players and making the AI a pain in the ass to play, and I imagine that some of the initial things in this PR may need to get reverted or adjusted later on as we see things shape up in the live server, and that's why I invite further discussion and suggestions on the changes.
     
  13. Anticept

    Anticept Chef

    I believe there's already an adjacency helper or proc or some other DM flag. Check the attack code with empty hands, I know I saw something.

    If not, perhaps comparing target and src coordinates. 60 second Pseudocode:
    Code:
    /some/proc/for/synths/clicking(src, target)
        if (src != ai)
               If (abs(src.x - target.x) <= 1)
                   If (abs(src.y - target.y) <= 1)
                       open_interaction_window
                       return
        do_after <time>
        open_interaction_window
    
    Now, if you wanted to have it scaling, then you'll have to do some vector math for that do_after time and rearrange the proc a bit so that you save the results of your math if it's greater than 1 in any direction. That way it's only doing the steps it needs to (AI probably should just have a flat time)
     
    Last edited: Feb 2, 2019
  14. Loaf

    Loaf THE SIGNAL THE SIGNAL THE SIGNAL Vox Species Maintainer

    Code:
    if(Adjacent(user) || user.do_after(blah))
        do whatever
    
     
  15. SierraKomodo

    SierraKomodo Command Keyword Detected

    I feel it's important to mention this because of a lot of talk regarding antag AIs: Traitor and malf AI was removed awhile ago.
     
  16. SierraKomodo

    SierraKomodo Command Keyword Detected

    Regarding the tracking changes - I have an additional suggestion to make: You can only track people as AI if they have their sensors set to tracking. This adds another level of gimping the AI's ability to jump to someone if their sensors aren't set when the scream for 'HELP', which should help for certain cases of antags being antags
     
    Wmeacham, flying_loulou and Bramzter like this.
  17. Anticept

    Anticept Chef

    I REALLY like that idea Sierra. Simple and effective.
     
  18. Roland410

    Roland410 Chef

    Technically only traitor AI was removed, malf is still voteable.
     
  19. Wmeacham

    Wmeacham Assistant

    As a mainly AI player, This is a really great suggestion, I second it.
     
  20. afterthought

    afterthought Developer

    This PR is closed. Locking the thread.
     
Thread Status:
Not open for further replies.