Connecting the Lighting seems to be more difficult than I first thought. When a neighbor is missing for lighting calculation, I need to re-queue the chunk for later re-lighting when the neighbor is ready. So I need notifications of chunks getting ready. And I need another queue in the lighting thread, so that it doesn't spend all its time just checking neighbors over and over again.
And it seems the new lighting engine somehow broke the logic behind sending chunks to clients, now the clients see way too many missing chunks - as many as 5 % of the chunks don't get sent! Just plain weird:
On a side note, I've been trying to write an ActiveX control host using plain C++ and nothing else (no ATL, no MFC...). With the state of MS docs, it's a major pain in the ___ .
Finally turned out my biggest problem was not returning a valid window handle in the IOleClientSite callback
And it seems the new lighting engine somehow broke the logic behind sending chunks to clients, now the clients see way too many missing chunks - as many as 5 % of the chunks don't get sent! Just plain weird:
Code:
[0adc|22:47:03] Streaming chunks centered on [2, 23], view distance 5
[0adc|22:47:03] cChunk: Entity #1 (cPlayer) at [2, 0, 23] spawning for player "Player"
[12ec|22:47:03] Refusing to send chunk [2, 23] - no longer wanted by client "Player".
On a side note, I've been trying to write an ActiveX control host using plain C++ and nothing else (no ATL, no MFC...). With the state of MS docs, it's a major pain in the ___ .
Finally turned out my biggest problem was not returning a valid window handle in the IOleClientSite callback