Hexops Devlog is Stephen Gutekanst's blog on Zig, the Mach game engine, entity component systems, Postgres code search and Unicode compression.
HN commenters cite it for its ECS tutorial and technical posts, and one calls his 100-hours-a-week coding article that of a maniac.
> large unicode tables
I’ve spent quite some time recently wrangling Unicode tables, so a quick note: unless you consciously go for performance over size (e.g. the Windows SBCS code pages use a 65536-entry lookup table for encoding, each), Unicode property tables are not that large.
With general category, a basic[1] set of properties, and canonical normalization, you can get away with about 30K for the whole lot without much of a problem, and probably less than that if you use a sorted inversion list instead of a trie for binary properties (both Plan 9 / libutf and Duktape do this IIRC, while QuickJS does something trickier I haven’t grokked yet, but it’s obviously not trying to be a speed demon there either).
Compatibility decompositions are more problematic (so. many. ideographs), I’m still at 20K for those, and I expect default casing and case folding will cost about that much as well. Maybe you also want some other properties (breaks? bidi class? script?). So let’s say 60K at best, 90K at worst, total.
Overall, a considerable but not catastrophic contribution to Duktape’s 330K (as quoted in your link) and even less of a problem for QuickJS’s 620K. And that is for tables that you can run against—if you’re willing to sacrifice runtime memory consumption for disk / wire size, you can do substantially better[2].
(These were rough estimates from experience. The actual figure for QuickJS turns out to be 37K, so I was a bit too pessimistic; I can’t compile Duktape right…
> What are the three major projects that were cancelled?
Here are some:
- LogLog Games [1]. Not happy with Bevy. Not too unhappy about performance, although it's mentioned.
- Moonlight Coffee [2]. Not a major project, but he got as far as loading glTF and displaying the results, then quit. That's a common place to give up.
- Hexops. [3] Found Rust "too hard", switched to Zig.
Tiny Glade is very well done. But, of course, it's a tiny glade. This avoids the scaling problems.
[1] https://news.ycombinator.com/item?id=40172033
[2] https://www.gamedev.net/blogs/entry/2294178-abandoning-the-rust-programming-language/
[3] https://devlog.hexops.com/2021/increasing-my-contribution-to-zig-to-200-a-month/
I could see a parser combinator working out for you.
https://hasura.io/blog/parser-combinators-walkthrough/
https://www.youtube.com/watch?v=RDalzi7mhdY
https://devlog.hexops.com/2021/zig-parser-combinators-and-why-theyre-awesome
https://www.youtube.com/watch?v=N9RUqGYuGfw
https://lorgonblog.wordpress.com/2007/12/02/c-3-0-lambda-and-the-first-post-of-a-series-about-monadic-parser-combinators/
Well, that is not a pragmatic approach to make games, specially for indies, to just target one graphics API, that limits the audience you can reach
We solved this issue already with WebGPU, it uses what ever is native to the platform you target..
https://devlog.hexops.com/2021/mach-engine-the-future-of-graphics-with-zig
Everyone wins
I don't know, it can definitely be done-I'm doing it for my personal stuff[0] it just takes explicit effort to write about what you are actually doing.
Unless you're suggesting only large startups / teams can create great engineering work, which, like, I don't really agree with at all.
[0] https://devlog.hexops.com
Found about reading this blog post[0] that details plans for an ECS for a Zig game engine.
- [0] <https://devlog.hexops.com/2022/lets-build-ecs-part-1>