It’s been a while since I touched my application and game, but I have learned quite a few things in the meantime, so it feels a bit like someone else wrote it. Spending some time fixing old features and broken graphical effects after all those Unity updates sort of forces me to understand all of this stuff again.
But it is also fun to spot those oversights and fix them, luckily most of it is just an outdated API usage.
Fixing up some placement logic so that I can get a better control over placing my tiles and geometry, by hitting neighboring tiles in addition to the grid in the scene. Then I am removing my custom mesh batching logic, since the GPU instance feature has been introduced to Unity is a lot better fit for my app than rebuilding large mesh items constantly. I need obstruction culling. Make sure that all the tiles in the scene that are between the camera and the editing grid are hidden.
There are a few oddities of behavior that were not finished but need to be addressed at some point. But, I think I should get proper feedback on those before making some brave alterations.
Making changes to this is a lot higher pace than what I have been used to for the last 2 years or so. Get a lot of help from a very rich engine API and graphical goodies. Don’t have to be reading very dense computational geometry papers and books, but rather API documentations and implementation examples, which should offer a lot higher rate of return, feature count wise that is to say.
But, I do like reading up on challenging things though, and making them work. A couple of things are in my backlog for when I have the basic app running and being usable, that are not big projects, but more of a cool addition to what I have with some interesting properties. Manifold dual-contouring for Iso-surfaces and geodesic voxel binding for dynamically skinning procedural geometry. Since I have all the solid stuff covered, it is very easy to voxelize the solids, do all sort of editing to it, and if you need to go back to the solid planar based world, I can use the solid mesh reconstruction I implemented before and hop back and forth. I could use the dual-contouring to dynamically create LODS of the solid meshes. Keep the solid structure around but use the polygons generated from the dual-contouring for rendering.
Most computational geometry problems are a lot easier for me these days. The vocabulary and understanding is good, grunt work and exercises have been done in large amounts, but I will not be able to estimate how much time it would take to build those, I could say that I can do so, but it would take some X*PI days to get through it and make it work. Luckily, dual-contouring is rather simple and the biggest part of the geodesic voxel binding problem is building data that is hard to infer robustly from arbitrary mesh items, but easy as pie when you actually have robust solid structures to tell you what voxels are inside or outside the model, and which are touching the surface of the model.
A few future implementation mistresses are waiting to great me later this year, but now, I am working remotely on my desktop, through my laptop, as I lazily warm my couch and watch some random film with one eye on one of those streaming services that we are paying for. While listening in on an infant through a baby monitor that might demand haste attention for some confusing emergency.
Fun is abundant and work never ends!