1,016 Commits over 974 Days - 0.04cph!
█ ▌▇▍▊▄ ▅▊▅▄ ▋█▇▅▄▅▅▇█▆▍▋▇▅
▊ ▇ █▌█ ▅▆▉▆▉▌▍ ▇█▄▅▉▋▇▆ ▇▄ ▋▅█▅▅▍▌▌ █▉▉█▌ ▆▉▅▌▍█ ▇▅▄█▉▄▋▌ ▊▄▊ ▌▄▇▊▊▇█▇▄ ▇▊█▅ ▆█▍ ▊▌▊█▌▇▋▄ ▍▋▋▍▅▇▅▆▋▋▋ ▉▅▆▊▆▊ ▉▍▅▊▋ ▌▅▅▅ ▅▄ ▄▊▌▉ ▆▆▊▌ ▉ ▉▅▊▅█▊ ▇▉▌▋▇▅ ▇▋▆ ▇▊▇▅▌▊▌ ▄▆▅ ▆▄▍▅▆▌▉▋▊▅ █▇▄▆ ▄█▉ ▆▇▋▌▊▍ ▉▅ ▊▍▉▄▍▋▄█ ▍▅▊█▇ ▉▍▋█▋▊▋ ▄▊▅▅▇▄ ▉▋ █▇▊▅▇ ▄▊▍ ▄▊▋█▇▍▄▄█ ▄▅▊▇▄█
█ ▌▊█▋▌ ▋▍▊▅▅▌ ▇█▅▄▅▍▆█ ▅▅ ▋▆▌ ▊▍▆▊ ▌▍▆▊█ ▍▍▋▊▋▆▇▍▅ ▇▌▊▌▉▆ █▅▍ ▍▇▌▆▄▇▉ ▄▍▉▇ ▌▆▌ ▆▍█▆▇▉▆▍▄▅ ▄██ ▅▌▇▍▅ ▊▄▇▆▉▋ ▌▇▄▊ ▇▌▊▆▅ ▍█▍▄ ▄▅▊ ▊▍▆▊▅ ▊▍▇▆▉▉▅▆ ▅█▍▇▋▇ ▍█▊▊▆▉ ▌▆█▋ ▍▆▍▄▄█ █▍ ▍▉▆█ ▋█▋▆█▍▍▉
▍ ▉▍▆▆▍ ▇█▉▌ ▇▄▊▍██▋▇▅▄▍▍▊▍
▉ ▍▄█▅▉█▇ ▅▋▅ ▆█ ▊█▍▉▅▉▌▄ ▆█▍▍██
▄ ▊▇▆▋▊ ▄▌▄▇ ██▋▅▋▇▄▉▉█▌▍▆▉
▉ ▊ ▆▋▆▉ █▌▋▅▆ █▌▆█▇▄▋▆▆ ▅▍ ▌▊█ ▋▇▅ ▅▆▋▄█▅█▉▉▄▄▇▆▍▋ ▌▆▆▅ ▇ ▍▋▊▋▇▍▊ ▉▌▊▇▉▆ ▆▊▉▇▅▍▊▌▌▋▍ ▋▍▄▅▆ ▍▇▆▉▍ ▆█▉▄▋▉▉▌▋▍ ▋▉ ▄▍▇▆▉▅▆▉ ▉▄▍▋▄▇▌█ ▇▍ ▇▅▍▆▄▅ ▍▇█▇▄▍▅▌▆ ▆▍ ▄▌▄ █▅▍▄ █▅▉▌▄▇▋ ▅▉▌▉ ▊▉▋▌ ▅▆▆▋▍ █▉▌▄█ ▌█ ▋▉▆▉▅▅▍▌ ▌▊▅▆▄▊▍ █▇▆▊▊▅▆ ▋▌▅█ ▄▉▌▇▉▇▆▌▍▉▇▆██ ▊▍▍█ ▄▍ ▊ ▆▉▅█▋▌ ▅▇ ▉▌ █▇▊▄ ▇▍ ▉▅▌▄▅▋▇ ▅▄▌▅
▆ ▊▋█▄▌ █▋▉▋ ▉▅▍▄▌▅▊▋▊▋█▋▄▇▋██▆▅▉
▋ ▇▄▅▊ ▄▄▆█▇▋▇▆ ▉▅▉▆▅▊█ ▇ ▉▌▄▊▌▊▊▌ ▋▄▉▋▋▌ ▄▋▌▍▌▍▉▍ ▆▅▆▅█▅▍▌ ▅█▌▋▆▉▄▉▌█ █▇▋▇▆▊▉▋ ▅▌▇▆ ▌█▋▉▊▌█▊ ▅█▍▌▌ ▄▌▍▊
amend remaining ore bounds
▋ ▄▇▉▅▍▄▄ ▌▍▄▋▅▌▇▌▌▄▄▉▉▊ ▆▆▉ ▊▇▊ ▌▋▉▆▌ ▇▄▅▋▉▍▋▄ ▇▆▄▉▆▉▇▄▅ ▆▋▄▉▍▄▌▅
▉ ▅▆▊▌▅ ▇▆▉▋ ▆▇▅▇█▇▄▅▋▋▍▉▆▆▇█▋▍█▍▍▍█▊▆
▄ ▌▉▇ ▇▆▍▋▇▇▉▉█ ▌▋▋ ▊▉▋█▌▇ ▄▍▆▋▍▇
▉▊ █▊▄▄▌ ▊██▍ ██▅▆▄██▄▍▊▆▄▌▉█▊▇▅▆▉▅
▄ ▇▋█▊▅█ ▅▇▅▆▊▋▊▉▇▍▌▄ ▉▉▍▌▉█ ▌▌▋ ▌█▅▍▌▊▉ ▊▄▌▄▅▌ ▉▋▉▇▋▇█▇▍▇ ▅▊▉ ▌▄▉▅ ▄▌ ▇▊▆▌▍▇▋▄▄ ▍▇▅ ▋▍▋▍▆▆▅▊
▇ ▅▄▄▊▉ ▉▉▍▄ ▅▄▅▍▌▉▇▍▋▇▄▆▄▋▇▋▇▍▌▊▅▄█▇▋
▅ █▇▌▆▊▋ ▋▇▋▊█▌▆ ▍▆▇▊▅ ▅▉ █▄▇ ▄▊▇▊▊▌ ▋▉▅▅█▅ █▇▋▇ █▍▄▍█▌▅ ▍▄▅ ▄▌▆ ▅▆ ▊▇▍▌▊▆▄▄█▄ ▅▆▊▋▌ ▋▄ ▍▋▊▉█▅ ▍▆█ █▊█▌▌▆ ▄▍▋ ▋▉█ ▅▄█▌▉▍ ▇▉█▆▆█▄ ▍██ ▊▆▆ ▄▊▅▌ █▉▊ ▆▌▅▋▄▄▆ ▉▋▋▆▊▌ ▆▊▊▍▆ █▄▌▌▌▊▆▉ ▉▉▌▍▆▍▇▍ ▊██▋▅▅▆█ ▅▋▅▄▇ ▄▇▍▅▊ ▍▉▋▇▄██▉▉▋▊▌ █▆ ▇▍▉▆ ▆▅▄▆▌ █▊▄▉▆▅█ ▅▍ ▋ ▉▄▋▆▇ ▇▍▇▊ ▊▉▋▇▆▌▊█▉▅▋▄▊ ▊▋▇▋▍▍▅▇ ▅▉▋▄ ▍▆▉ ▋▅▌ ▆▌▇▊▆▊ ▆▌ ▊▊ ▋▌▍▅▋▍▇▄▌▊▇▍▅
▊ ▋▋█▅▅ ▍▄▅▅ ▊▇▆▌▇█▅▆▋▍█▅▊▊▅▄▅▇▉▊▅▉▊▍▊
▇ ▆▇▌▇▌▊▌ ▋▊▉▌▉▌▋▍▌█▊▊▋▌▊▌▊▌▍▊▊██▉▄▆▍▌ ▉█▋▊ ▍▉▆▌█▇▌▆▊▉▆
merge from rpctool_generic_fix
merge from useplayerupdatejobs4
█ ▅▆▌ █ █▅▆▆▆▅▇▅▉ ▊▉▉ ▊█▌▋ ▄▅ ▌▇ █▄▍ ▅▍▌▉▉▍█ ▊▍▍▉ ▉▉▆ ▅▄▅▋▅▆▇ ▊▇▋▄ ▊▅▇ ▄█▉▄█▆ ▄▇█▊▌▆▅▄▉▊ ▄▌▆▉▍▄▊▉▆▌ ▊█ ▉ ▅█▌▌▄▊ ▉▇█ ▄▇▅▋▊▉▍▍ ▄▆ ▅▋▊▆▇▉█▍ ▋▄▌▊▊▉▌▆▅ ▍█▅▇ ▍▇ ▊▋▌ ▇▅█▅▉▇▋ ▇▇ ▌█▆ █▆▊▊▋ ▆▊█▋▉ ▍▇▇ ▍▉ ▍▍▅▇▄█▉▆▆
▍ ▌▉▊▄▊ ▋▋▅▌ █▉█▄▍▍▅▍▇█▊▌▍█▆▋▅▇▍▅█▆▅
▋ ▉▊▇▌▆▍ ▊▋▍▋█ ▋▄▍█▄▍▊▋▇▇▄▉██▆▇▆▉▉▍▌▇
▊ ▍▆▍▍█ ▄▉▉▆ ▆▍▇▍▉▆▆▋▊▍▄▌▋▌▆▅█▅▋▍▌█▄
▅ ▊▉▋▉▊▉▄█▌▉▅▊ █▌▉▌▅▉ ▉▍▉▉█▅▉▊██ ▅█▅▊▇
▋ ▄▌▇▅▅ ▇▄▋▋ █▉▍▌▌▅█▆▄▌▄▍▌▅▉█▅▋▍▌▅▅▋█▌▌██
▊ ██▍ ▆▇█▍█▍▄▄▉▋ █▌▊ ▄▍▅ ▋█▉█▇▅█▉ █▆▇▊▍█▅▋▋▄▍ ▍▆▋▉ ▅▅▉ ▍▄█▄▄▌▉▅▅ ▅▍ ▍▊▄▍▍▉▆▊▇▄ ▅▊▊▅▉▅▄▌▄▍█ ▇▋▅ ▇▄▇▆▉ ▅▌▆▍▌▌█▌▍ ▆▅▆▉▋█▌
Modify unit tests to use pooling for collections to remove some GC we wouldn't see in a live scenario
- consistency tests pass
▄ ▉▋▆▋█ ▉▋ █▍▆▇▅▄ ▇▍▅▅▋▋▉ ▇▍ ▆▍ ▌▍▌ ▆█▅▇▋▄ ▍▅▉▇ ▇▋█▌ ▇▌ ▇ ▊▌▍▆▅█ ▊▆▌█▊▉ ▉▇▍▉▊█▄▋▍▉▅▅▅ █▌▌▄▆▋ ▄▅▍▆▍▄▊ ▅▄█▄▍ ▉▆▉▍▄█▅ ▋█▇▄▇▄▋ ▋▄▋▊▌▆ ▉▋▊█ ▊▄▍▉ ▄▇▄▇▍▊ ▉▌▉█
Add unitask branch to run server occlusion pair gathering in parallel with useplayerupdatejobs >= 4, add tests
- initial perf tests suggest ~40-50% faster execution in a 400-player scenario
- consistency tests pass
▋ ▋▆▅▄▆ ▄▊▉▍ ▊█▊▉█▆▇▄▇▇█▆▇▍▍▊▉▌█▍▄▍▆▇
▆ █▉▍▊▇▊▅▇▊ ▌▊▍▄ ▋▊▌█▆▍ ▇▍▅▊▌ ▄▋▆▅▅▊▊▌▇█ ▄▆ ▆▋▅
▅ ▇▍▋▍█▄▄ █▍▉▅ ▍▄▅▊▋▊▍▇▍▅▄ ▌▅▅██▌▉▍▍▉ ▅▊ ▍▉▉ ▉▌█ ▌▋▄
▉ █▌▄▊▌▋ ▉▄▌▇▌ ▌▉▄ ▋█▋▍ ▆▉█▉▌▌ ▅▌▊▄▄▌▆▇▄ ▊▌ ▄█▄ ▅▅ ▄▄▊▍▆▅ ▊▆█▄▌▇▉▊▅▍▄▆ █▍▅█ ▍▍▅ ▉▌ ▌▅▋▄▋ ▋▄▉ █▌▌▉ ▄▆▇▊▄
▋ ▊▋▆▋█ ▍▄█▄ ▋▊▍▋▍▊▍▋▉▅▌▆▇▆▉▌▋▉█▊▄▋▄▋
▆ ▋▊▊▇▌▉▉▅▍ ▉▇▌▅▌▌▋▌█▄█ ▉▌▆ ▆▍▅▋▊ ▆▍▍▌▊▄▅▋▉▆ ▄▌▉▌▌▉▅ ▊█▊▆▆▊ ▊▆▇▊▍███ ▊▌▌ ▌▍▉█▆ ▅▊ ▄▅▉█▅▌▊▍▋▄ ▆▋▄▇▍▆▇ ▊▆▇▆ ▇▅▌▇▍▊▍▍▍ ▋█▆▄▆▄▄▆▅▉▄ ▍▋▇▆▍▌▉ ▍▊▆▌ ▍▋█▋▄▋▄▅▅▊▄▋▇▋█▄▄▍▆▄█▋▇▆▉▌▉▇▅ ▅▄▆▋▌█▉▉▉ ▄▆▆ ▍▇ ▇▍▍▍█▉ ▌█▍█ ▅▇▆ █▆▅▅ ▆▊▄▄▉▌
▅ ▋▅█▋▌ ▄█▅▆ ▅▌▌▆▆▌▉▅▅█▄▋▋█▉▄▌▍▇▉▆▇▉█▆▄▄
▋ ▊█▊▅▄ ▋▌▄▄ ▍▌ ▋▌▉▆▇▊ ▄▉▊▋▌▅▉ ▊▊▉▄▉▄▉▅█▍▇ ▄▍▄▉▉▌▍▌▉▋ █▄▍▉▌ ▉▄▅▉▄▌▇ ▅▉█▅▌ ▉▄█▋▆▍▆ ▅█ ▊▉▄▋▋▍ ▉▋▆▉▉▉▊▉▉▍ ▌▍█▋▋▉▅▇▄█ ▋▅▄▅ ▅ ▋▇█▌ █▅▌▆▌ ▋▇ ▆▌▉ ▆▍█▌ ▌█▍▋█▊▅█▊▋ ▇▆▇ ▋▅█▌▅▆▊ ▄▌▄ ▊ ▉▍▇▆ ▆▌ ▋▉▇▇▆▊▅▍▍▋ ▋▄▉▄ ▍▊█▊▅▇ ▋▅▊ ▋▋▄█▆▆ ▉▆ ▍▅▌▍▌ ▌▄██▇▌▆█▍
▊ ▉▄▌▍▇ ▍▊▉▄ █▌█▇▇▄▇▋▊▇█▄▋▄▇▅▄▍▇▌▋▍▅█▍▆▍▍█▍▌▍▇▋
▅ ▆▇▊██ █▅▇▊▋▄ ▌▌▊█▍▅ ▊▍▇ ▋▊▊▆▉▅▇ ▄▄▇ ▊▋█▊▆▅▆▆█ ▄▊▋ ▊▉▇ █▋▍▋ ▉▇▍▄▄
▄ ▊▇▍▍▋ ▄▄▆▆ ▌▄█▌▊▆▍▅▇▉▋▉▅▅▇▇▅▇▆▌▍▉▊▅▅▄▋▅▊▄▋▋▅▄
█ ▇▊▋█ ▌▊▉▄ ▌▅▆▋ ▇▍▉█▉▆ ▅▉▆ ▄▌▆▋▇▋▍▄▉ ▆▆▅▋ ▄▌▉▉█▍█▉▌▊ █▅▍▍ ▄▊▇▌ ▊▌ ▆▇▌█▋▉▌▊ ▄▇▌▍▉ ▉▍▋▍▄▌ ▆▄▋▅ ▅▌▉ ▇▋▍▇ ▅█▉▇▉▋▄▄▋▌ ▄▌█▉▋█▉█▄▇▊▇ ▄█▋ █▆▊▊▅ ▆▅▋▊▅██ ▆▍▆▊ ▍▆▍▅▆▆▉█▇▄ ▌▋ ▉▋▋▇ ▅▊▅██▇▉ ▊▌▄▌▇▆ ▄▇ ▉▋ ▊▋▅ ▅▆█ ▆▊▆▇ ▅█ █▅▍▇▅▇▉▌▋ ▆▉ ▊▇▆▅█▅▅▇ ▋▇▍▍ ▍▊▆▌▅▌ ▌▅▄█▆█ ▍▌▍▅▋▋▊▄█ ▅█▋▍▆▌█▅▄