Computational Solid Geometry (CSG) Library #672
Replies: 1 comment
-
One other thing I might mention: Manifold already has C bindings, so zig bindings aren't large or complicated. I already suggested to the Manifold creator that I could add zig bindings into Manifold's own bindings directory alongside the C bindings, but they said they'd prefer zig bindings to stay in a separate repo (they'd never even heard of zig, so I understand - Java bindings were also relegated to a separate repo anyawy). Given that, I'll be making the equivalent of a zmanifold repo somewhere no matter what, so I'll probably start making it under my own account name, and if we want it here, it can be moved. EDIT: Here is the in-progress zmanifold repo: https://github.com/a-day-old-bagel/zmanifold |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
CSG enables fast level-editing workflows and in-game editor capabilities. Quake's BSP tree-based levels, and all the games subsequently derived from Quake's approach (source engine games, etc.) all relied on CSG in the form of brush-based level creation, for example.
Currently, we have zmesh, which includes some tools for operating on triangle meshes, but I don't see any libraries in zig-gamedev specifically designed for CSG.
In my own project, I've tried several such libraries. One that stands out is Manifold. Manifold is quickly gaining popularity, and is being considered for inclusion in notable projects such as Godot and Blender. It's already being used by recognized names in the engineering/cad space.
I had previously hoped to bring a smaller library up to speed, fix its bugs, and suggest it be included in zig-gamedev, but I'm finding myself spending too much time bugfixing with this one, and so I'd tend to suggest Manifold instead now.
Anyway, I don't know if there's been any discussion so far about CSG or including CSG capabilities in zig-gamedev. Naturally, modern CSG offers quite a bit more utility and usability than the BSP tree engines of old could offer, so to be clear, CSG can serve as a useful tool for level editors or other in-game editors even without the users game engine being tailored around it. Triangle meshes can be an output, for example, to mesh with the rest of the zig-gamedev tools.
Personally, for me, the conventional asset creation pipeline used by most of the game industry, where you have big fat 3D modeling and art asset creation tools requiring special training or expertise to use, and where the process of using them eats up the bulk of the budget (and time) you have to make a game, is unappealing.
I'm including CSG as a big part of my own project, regardless of whether we're interested in including it in zig-gamedev, but I wanted to bring it up for discussion.
EDIT: Oh, I should add: I'm happy to create and maintain the "zmanifold" or whatever zig-gamedev sub-library we'd have, if we chose to include it, following existing patterns in here.
Beta Was this translation helpful? Give feedback.
All reactions