I’ve not not been working on wannabe — in fact I have significant code and written content that I haven’t posted. I’ll try to get somewhere more this weekend. In a nutshell, there’s at least two problems: I use a pretty naive neighbor data structure, and I ended up conflating hidden surface removal with hidden voxel removal. And I’m not sure I can quite tease those apart.
The issue with that last bit is that removing hidden voxels, while great for performance, actually removes some of the quaint visuals that wannabe produces. For example, this 10x10x10 grid:
That is, sometimes the voxels rendered behind the others is what makes for catchy visuals.
There is still space for optimization, especially on the rendering types that add bits for the side to try and make the voxels a bit more 3d. In fact, there’s plenty of glitches to fix because of those and order-of-rendering:
As to the naive data structure, well, I’ll probably keep that, since that’s my approach to the whole thing. 😉