VedalAI / neuro-amongus

Among Us Plugin for Neuro-sama
GNU General Public License v3.0
540 stars 49 forks source link

Impostor behavior #20

Closed EBro912 closed 1 year ago

EBro912 commented 1 year ago

Similar to #13, this is a preliminary draft PR to begin implementing Impostor functionality. When the player is an impostor, the impostor routines will run.

As Impostor, the following information is recorded in each frame:

It also changes certain behavior such as pathfinding to the furthest task instead of the closest task as impostor, as well as adding methods to allow murdering players and venting, and pathfinding to murder targets and vents.

Vedal987 commented 1 year ago

Hey! Just wanted to quickly warn you that the current plan is to train a neural network to play the game and use that for determining behavior (as briefly described in the about) instead of explicitly programming it like a bot. This is however, a very good fallback and may end up being used instead.

EBro912 commented 1 year ago

Hey! Just wanted to quickly warn you that the current plan is to train a neural network to play the game and use that for determining behavior (as briefly described in the about) instead of explicitly programming it like a bot. This is however, a very good fallback and may end up being used instead.

I understand, that wasn't entirely my intent. I just wanted to get the groundwork laid out (mostly to see what's even possible) and once we know what is and isn't possible we can most likely convert the functionality to allow neural decision making. Obviously playing impostor is a lot more complex than running around and doing tasks, but my goal was to get a head start on basic functionality so that bits and pieces can be used in the future. I do appreciate your feedback though! 👍

EBro912 commented 1 year ago

ed3d299 has Impostor stuff built into the latest main, I made a separate ImpostorHandler for impostor stuff, let me know if there are any concerns about this.

EBro912 commented 1 year ago

As discussed in #23, I am beginning to shift this PR towards recording impostor related data rather than implementing functionality. I have left stubs of existing functionality code as examples just in case for the future.

EBro912 commented 1 year ago

As of 8c91bf1, this PR is pretty much all set unless other additions are requested. Ignoring the main post, this PR now contains the following changes:

I've tested most if not all of this and everything seems to work fine, but feel free to double check and let me know if you run into any issues. 😁

oleg20111511 commented 1 year ago

Recording shouldn't happen in scripts outside of Recording folder, it breaks the structure

EBro912 commented 1 year ago

Recording shouldn't happen in scripts outside of Recording folder, it breaks the structure

Bad wording on my part. Rather, the ImpostorHandler class collects that data and provides it to the Recorder class.

Alexejhero commented 1 year ago

@js6pak please review if you have time