Wooden poker dev blog, pls rate and subscribe

Project to ditch udon's network sync entirely is going pretty well. Instead, I pack the positions/rotations into synced strings, update the strings, then on the client, unpack the strings back into poses and force the (local) gameobjects positions to match. I implemented some bitpacking code to get each tile down to 7 chars (14 bytes), which is still not as efficient as it could be, but a lot better than naive string encoding.

Udon will only sync a string somewhere less than 56 chars long (i think it's maybe 32, guessing. So, I have multiple synced strings, and I slowly iterate over the 136 tiles within those strings, so in theory all of the tiles will eventually get through. However, synced strings aren't completely reliable, so if you rotate them too fast, the clients will "miss packets" essentially. Which is what you see in webm related, where most of the tiles get properly updated, but a few are stuck for a long time.

But, it's all definitely better than relying on vrchat's own sync. I "just" need to implement other basics techniques of physics syncing, like prioritizing moving objects, and also reimplementing the ownership system (right now, master owns all the tiles). https://gafferongames.com/post/snapshot_compression/ is a good general guide for this sort of thing.