My favorite tools and techniques for procedural gamedev
cprimozic.net
cprimozic.net
In theory CSG can fill this niche, but it can be a bit difficult to think about the problem in that way (for me, at least) since you can no longer view it as just for looping to add vertices, but you instead need to model everything as a 3d shape.
I tried building some routines to take two loops of vertices and connect them through heuristics by adding faces, but I had a hard time getting it to work well (choosing which vertices should connect was much harder than I expected, it was easy to get really bad looking connections).
What I really want to do someday is make a game where there is a system for different modular procedural generation systems to work together in a way that allows for spontaneity. So e.g., systems could "claim" slices of the world, delegate parts of it to other systems (e.g., put some plant here) and connect with other adjacent things.
There was a recent video on creating generative trees [0] and the hack was to just let the cylinders intersect, so even hacky tricks can work and produce good results. As you say, CSG can work but might be overly complicated. Another trick is to create a tree skeleton and then do lofting, maybe even combined with CSG, to create the trunk and bark.
For me, a good library is enabling and finding a good 3d geometry library, maybe to do boolean operations, like joining cylinders or subtracting geometry out, helps enable a lot of new ideas. I've played with a few geometry libraries and the only one I even vaguely like is JSCAD [1].
Highly recommend searching for Mercury Delight on YouTube for an idea of what people have done in the demoscene with it. Also lots of examples on shadertoy. It's amazing stuff.
You can if the loop can be unrolled.
https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Condition...
See below for example.
https://github.com/MaxBondABE/batteries/blob/master/src/geom...
Dwarf Fortress for example starts with basic midpoint displacement but then does a lot of custom massaging.
Nothing shown in this article is even vaguely trivial. The author is very obviously a 100x'er by comparison to almost every human on Earth (with GPU shader rendering specifically). The "straightforward approach"? "Straight forward..."?
Out of 8,000,000,000 humans, what percent of them can implement even the "hello world" steps necessary to start this article? Hey y'all, how many even know what a shader is? There's such a huge amount of OpenGL jobs... ("what's OpenGL, we only use Unity")
How about online gamers? What percent of the 1,021,282 players current online for Counter Strike 2 (7/28/2024, 1:22 PM EST) [1] can even implement the first steps of the shaders necessary for the game they're playing?
What percent even know how to compile a simple command line c++ program or write an even more simplistic Javascript script in a browser? Note, this is vaguely a trick question, as most humans can barely operate email.
What is the "problem" you speak of in the first sentence? I don't see it explained in the rest of your post.
Are you just pointing out that this is a very specialized field that requires having studied/learned a lot of complex inter-related topics and that most of us have not done so?
What's even your point?
> How about online gamers? What percent of the 1,021,282 players current online for Counter Strike 2 (7/28/2024, 1:22 PM EST) [1] can even implement the first steps of the shaders necessary for the game they're playing?
It's like asking what percent of the drivers can build a diesel engine. And call it "the entire problem with automobile industry".
Sorry, but this is just nonsense. Of course few users can build the thing they use.
Sounds a little dismissive.
Big companies that can afford it overcome this via specialization. An artist who does concept art and general animation may have zero skills writing shaders, etc, thus the rare one-man-show combination of skills is not required.
I briefly walked through the article and I can confidently say these techniques are well-known among graphics programmers. These days even artists who can't write code know what triplaner mapping and PBR are, even though they can't implement them from scratch.
Doing something "well" is subjective, but there is no chance there are only less than 1000 people who know these.
I'm still thankful to the author for writing these down, of course.
Also, I'm not quite sure how this turned back around to your "thesis". How does this make a problem with the games industry, exactly?
Im gonna give a try the Three.js
If anyone is interested in a WIP procedural RPG level editor, check out https://github.com/gamedevgrunt/3D-Action-RPG-JavaScript
To be fair, my experimentation was within the context of a CAD/CAM application rather than a game. The scenes were quite different from typical game environments, with minimal textures and very high-poly geometry.
Depth pre-pass is also often the first step of occlusion culling, but again that’s situational. Much more likely to be useful for a complex cityscape than a CAD model.