File this one under “Aceade is an eejit”. I broke the spammers’ sound detection, and I’m not sure when I did that! I didn’t realise that until today, when I started trying to make them react to misses from the SQL injector.
The root cause of this bug is that I had converted their sound detection to use a Coroutine with a 0.2-second interval, rather than OnTriggerStay. OnTriggerStay runs on the physics timestmp, which by default is 50 times a second - which is a bit more intensive than I wanted. However, when converting it, I forgot to actually make it run more than once (hint: use a while loop)! So, the spammers were effectively deaf, which pretty much defeated the point of the game.
Another thing that was broken was their Sockpuppet detection. This was a physics issue - I had set the Spammer layer to ignore collisions with the Decoy layer. However, that’s the layer which is supposed to contain the Sockpuppets!
I think these were introduced while trying to improve performance a month ago. Those performance issues I ran into were ultimately caused by using MeshColliders as trigger areas for sound and line of sight detection, which is generally a bad idea. However, when I got those fixed, I didn’t think to check if I had broken anything else. I really need to find a way to test more thoroughly…
0 comments