Closed jonahseguin closed 7 years ago
Solution: Checks have been moved to their own individual classes. This allows for checks to be either very complex or very simple, without sacrificing performance by allowing for each check to be optimized in itself.
The current check structure is as follows:
Trigger -> Capture -> Inspect
Meaning that a player 'triggers' a check by a lightweight and simple 'trigger' check. Once it is triggered, a varying capture period is started for a configurable amount of time. After this period, the Inspect part of the check will review the collected data and make a decision on whether the player passed the check.The problem with this system, is that it is bottlenecked by the "Trigger" part, because the trigger part has to be so lightweight/simple, complex checks will be setting off a lot of false-positives (false capture periods) because they are just not taking enough into consideration.
I am suggesting the following: Checks are moved into their own classes, one class per check. This allows for varying complexity between checks.