You can now paint textures and have them persisted in the database!
A button on the main gui “Test Function” allows you to push your texture changes for the currently visible chunk up to the server. This sort of manual thing is not at all what I’m hoping to implement but there are a lot of factors involved in timing these sizable updates to the server.
In the future this will want to be on a delay and happen totally in the background.
I spent some time working with Async RestSharp to try and get it working but ended up backing out of it. While the code is easy enough to switch (and I think we really need to) you have to conform to thread-locked resources when dealing with GameObjects. This is perfectly sensible because Unity is pushing stuff to the graphics card constantly and it needs to know what the state of the objects it’s brokering is.
I’m hoping we can look at splitting off all of the chunk mesh-creation code from being GameObject dependent (it’s just a component sitting on a GO right now.) Instead we’d create everything in memory before we do a single batched swap-out of it (much like I’m doing with textures) so we can get the benefit of not waiting on the server to deliver packets while the UI hangs.
All in all a really productive weekend. Looking forward to what comes next. Check out Bitfune if you haven’t. I’d love to get some feedback on things that could be added to make it a better resource for understanding auto-tiling using bit-sequence matrices.