12 comments

[ 4.3 ms ] story [ 26.8 ms ] thread
The author mentions simplicity in their Readme. I would be very interested to read their journey and some of the decisions they made where they preferred simplicity. More of this please !
Hello, author here :)

I've been thinking of doing a series of blogs on the journey but .. it's been a journey, which is a lot to write about in full. In short, a few places where I've been able to prefer simplicity:

1. Allocators are all pretty much as simple as you can get. Most memory in the program is bump/arena allocated. There is a buddy-style heap allocator for things that are annoying to arena allocate (strings that can be edited, for example). I make heavy use of temp memory and freelists.

2. Containers are all very straight-forward, and it's definitely a feature. The example I always give here is std::map from C++. On paper, it looks great; it has very good looking properties. In practice, the implementation is a nightmare; it's slow, and has a comically large rebalancing-shaped performance cliff. My containers strive to be simple, with reasonable average and worst-case performance.

3. I wrote my own metaprogramming language instead of using C++ template metaprogramming. Writing an entire programming language sounds like the antithesis of simplicity, but in reality, having a good metaprogramming layer makes your life immeasurably easier in the long run. With strong metaprogramming capabilities, stuff like realtime debug UI and state serialization becomes nearly trivial. Once you start doing versioned data serialization in C++, you quickly realize you need a better compiler (see: protobuf, cap'n proto)

(comment deleted)
I’ve been using Voxel Max for the last couple weeks to draw voxel art for a game and it’s incredible.

I’ll have to try some of my assets out in this engine.

the look and aesthetic of some of your screenshots is awesome. reminds me of ultima online in the best way possible.

It's like looking into the future, will there be a point where you can just render the entire scene in voxels at high enough res where it's indistinguishable from modern 3d graphics?

So many of these voxel engines suck, but it appears that this person totally nailed it. Bravo