Re: LoS Check Manager
PostPosted: Mon Sep 16, 2013 5:22 pm
OK I spend the evening testing, there was a lot of small bugs.
Caching helps a lot in EvE situation, like guards vs mobs, I didn't even thought of this one
in PvE with a 2500 ms cache, it hardly makes two swing, but making it longer will allow to shoot mobs easily by playing with boulder or walls, it will help more with skills and spells LoS check it could trigger during attacks.
I don't expect much of pvp caching (100ms) except in crowdy situations. I even think player could notice a short caching like this.
The throttling wasn't working because player aren't added to ClientChecks dictionary
without throttling it tend to launch all LoS check at the same time, the reply are pretty quick in local and this prevent from running into an "LosUnavailable" exception which are hard to handle !!
I don't think most of the code is prepared for LosUnavailable and "try again next time" exception handling, I don't think there is try again in most loops
And that make me think throttle can't be handled this way, the code itself already handle kind of timeout (with previous check sending a false value when it needs to send a new one) but try again later I don't think so
I already handle a PvP check to launch LoS checks anyway !
This leads me to the queue, but how long can it be ? Only for PvE matters ? Need a Timer to try again if hardly any code handles it ?
LoS packet are pretty small, and connection Lag could handle the throttling
Maybe it's better without too much throttling
Caching helps a lot in EvE situation, like guards vs mobs, I didn't even thought of this one
in PvE with a 2500 ms cache, it hardly makes two swing, but making it longer will allow to shoot mobs easily by playing with boulder or walls, it will help more with skills and spells LoS check it could trigger during attacks.
I don't expect much of pvp caching (100ms) except in crowdy situations. I even think player could notice a short caching like this.
The throttling wasn't working because player aren't added to ClientChecks dictionary
without throttling it tend to launch all LoS check at the same time, the reply are pretty quick in local and this prevent from running into an "LosUnavailable" exception which are hard to handle !!
I don't think most of the code is prepared for LosUnavailable and "try again next time" exception handling, I don't think there is try again in most loops
And that make me think throttle can't be handled this way, the code itself already handle kind of timeout (with previous check sending a false value when it needs to send a new one) but try again later I don't think so
I already handle a PvP check to launch LoS checks anyway !
This leads me to the queue, but how long can it be ? Only for PvE matters ? Need a Timer to try again if hardly any code handles it ?
LoS packet are pretty small, and connection Lag could handle the throttling
Maybe it's better without too much throttling