Closed EBro912 closed 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.
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! 👍
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.
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.
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:
ImpostorHandler
class to handle recording data as impostor
isImpostor
bool is set, otherwise the values will be default and lists will be emptySabotageTypes
enum and recording a list of doors shut MoveToVent
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. 😁
Recording shouldn't happen in scripts outside of Recording folder, it breaks the structure
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.
@js6pak please review if you have time
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.