99
Created by @r_channels
Room-based A* for dungeon generation, has anyone made this work?
Been building a Minecraft dungeon server where rooms are hand-built schematics and the procgen only handles layout/placement. Wrote up how it works for some devs who were curious, figured I'd share here too in case anyone has thoughts or has solved similar problems.
[https://thom.ee/blog/procedural-generation/](https://thom.ee/blog/procedural-generation/)
The part I'm not happy with is the corridors between rooms. They're procedural 5x5 cross-sections, but look uninspiring. Short-term fix is adding some additional noise-based details and inserting smaller filler rooms into the corridors to break things up. But curious if anyone's tackled this differently, especially approaches that avoid procedural corridors entirely.
https://redd.it/1suauhx
@proceduralgeneration
Terrain generator I am working on in Godot
https://redd.it/1su1i35
@proceduralgeneration
Evolving procedurally generated cells
https://redd.it/1stwa60
@proceduralgeneration
Built a procedural level generator for my indie game in Godot, here's how it works
https://redd.it/1stnwn5
@proceduralgeneration
T-Square Fractal
https://redd.it/1stk6n1
@proceduralgeneration
Wanted to share some shots from my current portfolio project.
https://www.reddit.com/gallery/1stiddw
https://redd.it/1stifho
@proceduralgeneration
Looking for Blockbench Model Creators (Game Project – Credit + Future Revenue Share)
I’m working on a game at the moment and I’m looking for people who enjoy using Blockbench to make models and want to get involved.
To be clear upfront — I can’t offer any payment right now. This is still a small project I’m building up. What I can offer is:
Your models being used in the game
Proper credit for anything you make
A share of revenue later on if/when the game starts making money (based on the models being used)
I know revenue share stuff can be a bit hit or miss, so I want to be honest about that from the start. The goal is to grow this into something solid over time, not just a quick throwaway project.
I’m mainly looking for:
Blockbench models (style is flexible, we can figure that out together)
People who are up for contributing to something longer-term
Anyone who just enjoys making assets and wants to see them actually used in a game
If that sounds like something you’d be into, just comment or DM me and I’ll go into more detail about the game and what I need.
Site for the game https://exudizmono.com/
https://redd.it/1ssw55v
@proceduralgeneration
Concentric diamond rings generated with a recursive color field algorithm
https://redd.it/1sssfny
@proceduralgeneration
Pen plot of a Toroid constrained by a limiter.
https://redd.it/1ssl6bw
@proceduralgeneration
I built a real-time Eulerian smoke simulator from scratch — CUDA/C++, no engines, no pre-built solvers
https://redd.it/1ssb0l5
@proceduralgeneration
Methods for generating unique and believable book titles?
I've been struggling with this thought before, and it really also applies to titles for any media. Any one have some ideas?
https://redd.it/1ss3jzc
@proceduralgeneration
interpolation - 15) * interpolation + 10) * interpolation * interpolation * interpolation;
}
float MyLerp(float interpolation, float dotOne, float dotTwo)
{
return dotOne + interpolation * (dotTwo - dotOne);
}
https://redd.it/1srvsas
@proceduralgeneration
Prototype growth sim for a small strategy game: 4-connected simplex-biased frontier on a 25x25 grid
https://redd.it/1sru4wj
@proceduralgeneration
One Click City Generation
https://redd.it/1srsiaj
@proceduralgeneration
Two new features added
https://redd.it/1sro2fx
@proceduralgeneration
more updates to my procedurally generated gravity simulator where you can control the flow of time - thanks so much to this community for your support!! ✌️❤️
https://redd.it/1su8ucd
@proceduralgeneration
Procedurally generated monochrome noise field
https://redd.it/1stwwev
@proceduralgeneration
Car Generator Stylized - Procedural Editing & Asset Library in Blender
https://redd.it/1stqhzo
@proceduralgeneration
Procedurally generated birds
https://redd.it/1stnv0n
@proceduralgeneration
I built a Vulkan ray-marched voxel sandbox in Rust because I got tired of switching between Minecraft and external tools just to make custom blocks
https://preview.redd.it/ylepaccpbkwg1.png?width=1312&format=png&auto=webp&s=f80a28aaa4cfb7bf2619919ad9c9330cddd3c949
My daughter and I have spent countless hours in Minecraft creative mode. Over time we kept reaching for external apps to design custom blocks, models, and textures. It worked, but the context switching killed the flow. At some point I thought -- why isn't all of this just... in the game? An ultimate creative mode where you never have to leave to make something new.
So I built Voxel World.
It's a GPU-accelerated voxel sandbox written in Rust that renders entirely through Vulkan compute shaders. No vertex/fragment pipeline -- everything is ray marched through a 3D texture. I went this route because I wanted to see how far you could push pure compute-based voxel rendering and honestly because it was a fun engineering challenge.
What started as a rendering experiment turned into a pretty full-featured creative sandbox:
World building tools \-- 20+ tools for cube, sphere, torus, arch, bridge, bezier curves, helix, stairs, terrain brushes, clone stamp, and more. All the stuff we wished Minecraft had built in.
In-game model editor \-- Sub-voxel models at 8\^3, 16\^3, or 32\^3 resolution with 32-color palettes and per-voxel emission. 175 built-in models (torches, fences, doors, glass panes, etc.) and a full editor for making your own with pencil, fill, mirror, undo/redo. This was the big one for us -- being able to design a model and place it without alt-tabbing.
Procedural texture generator \-- Design custom block textures in-game with real-time pattern preview. No more exporting to an image editor and hoping the tiling works.
The world itself is procedurally generated with 17 biomes, 4 cave types, 9 tree species, water/lava simulation, and falling block physics. 47 block types with 608 painted variants (any of 19 textures in any of 32 color tints). Day/night cycle, shadow rays, ambient occlusion, animated clouds, stars, water, point lights with animation modes. Quality presets scale from potato to ultra depending on your hardware.
Multiplayer is still very work in progress but getting better. Encrypted UDP, up to 4 players, full world sync. The networking stack has been the hardest part to get right -- epoch-aware chunk dedup, LZ4 compression, handling the host running both server and client. It works but I wouldn't call it battle-tested yet.
Runs on Linux, macOS, and Windows. MIT licensed, fully open source.
Repo: https://github.com/paulrobello/voxel-world
Build from source: git clone `https://github.com/paulrobello/voxel-world.git` && cd voxel-world && make run
If you have any questions about the rendering pipeline, the sub-voxel model system, or the chunk streaming architecture I'm happy to dig into the details. This has been a wild project to work on and I've learned a ton building it.
https://redd.it/1stl6t1
@proceduralgeneration
Real time Fluid simulation demo *1MILLION PARTICLES* [oc]
https://redd.it/1stf1e5
@proceduralgeneration
Been working on a voxel physics sandbox with procedural worlds and interactions - inspired by old falling sand games!
https://redd.it/1sstl3f
@proceduralgeneration
Fractal Curve
https://redd.it/1ssqhnh
@proceduralgeneration
My game is fully procedurally generated , releasing a demo next month! do you think it's ready?
https://redd.it/1sslrha
@proceduralgeneration
Proc-Gen-Pipe-Grid-Pic-Glance
https://redd.it/1ss8sbu
@proceduralgeneration
I just finished my world generator
https://redd.it/1ss266z
@proceduralgeneration
First Time Perlin Noise
Hey all. Attempting to learn procgen and perlin noise and struggling a bit. This is what I have gotten to after using both of these references to try and write it out myself. Just trying to create a simple perlin noise and place some blocks using the Raylib library to draw to a window. Not trying anything fancy right of the bat.
[https://rtouti.github.io/graphics/perlin-noise-algorithm](https://rtouti.github.io/graphics/perlin-noise-algorithm)
[https://cs.nyu.edu/\~perlin/noise/](https://cs.nyu.edu/~perlin/noise/)
Maybe I'm just not understanding how I'm supposed to use the values that I'm getting from this? I'm not currently worried about performance, more just trying to get it to work before i think about any sort of optimization.
float Noise2D(float x, float y, int seed)
{
int X = (int)(floor(x)) & 255;
int Y = (int)(floor(y)) & 255;
float xF = x - floor(x);
float yF = y - floor(y);
Vector2 topRight = Vector2{ static_cast<float>(xF - 1.0), static_cast<float>(yF - 1.0) };
Vector2 topLeft = Vector2{ static_cast<float>(xF), static_cast<float>(yF - 1.0) };
Vector2 bottomRight = Vector2{ static_cast<float>(xF - 1.0), static_cast<float>(yF) };
Vector2 bottomLeft = Vector2{ static_cast<float>(xF), static_cast<float>(yF) };
vector<int> permutation = MakePermutation(seed);
int valueTopRight = permutation[permutation[X + 1] + Y + 1];
int valueTopLeft = permutation[permutation[X] + Y + 1];
int valueBottomRight = permutation[permutation[X + 1] + Y];
int valueBottomLeft = permutation[permutation[X] + Y];
float dotTopRight = topRight.x * GetConstantVector(valueTopRight).x + topRight.y * GetConstantVector(valueTopRight).y;
float dotTopLeft = topLeft.x * GetConstantVector(valueTopLeft).x + topLeft.y * GetConstantVector(valueTopLeft).y;
float dotBottomRight = bottomRight.x * GetConstantVector(valueBottomRight).x + bottomRight.y * GetConstantVector(valueBottomRight).y;
float dotBottomLeft = bottomLeft.x * GetConstantVector(valueBottomLeft).x + bottomLeft.y * GetConstantVector(valueBottomLeft).y;
float u = Fade(xF);
float v = Fade(yF);
return MyLerp(u, MyLerp(v, dotBottomLeft, dotTopLeft), MyLerp(v, dotBottomRight, dotTopRight));
}
float FractalBrownianMotion(float x, float y, int numOfOctaves, int seed)
{
float result = 0.0f;
float amplitude = 1.0f;
float frequency = 0.05f;
for (int octave = 0; octave < numOfOctaves; octave++)
{
float n = amplitude * Noise2D(x * frequency, y * frequency, seed);
result += n;
amplitude *= 0.5f;
frequency *= 2.0f;
}
// Transform the range to [0.0, 1.0], supposing that the range of Noise2D is [-1.0, 1.0]
result += 1.0;
result /= 2.0;
cout << result << endl;
return result;
}
vector<int> MakePermutation(int seed)
{
vector<int> permutation;
ranlux24_base rng(seed);
for (int i = 0; i < 256; i++)
{
permutation.push_back(GetRandomFloat(rng, 0, 360));
}
ShufflePermutation(&permutation, seed);
for (int i = 0; i < 256; i++)
{
permutation.push_back(permutation[i]);
}
return permutation;
}
void ShufflePermutation(vector<int>* permutationToShuffle, int seed)
{
ranlux24_base rng(seed);
for (int i = permutationToShuffle->size() - 1; i > 0; i--)
{
int index = GetRandomInt(rng, 0, permutationToShuffle->size() - 1);
float temp = permutationToShuffle->at(i);
permutationToShuffle->at(i) = permutationToShuffle->at(index);
permutationToShuffle->at(index) = temp;
}
}
Vector2 GetConstantVector(int value)
{
const int findVector = value & 3;
if (findVector == 0) return Vector2{ 1.0, 1.0 };
else if (findVector == 1) return Vector2{ -1.0, 1.0 };
else if (findVector == 2) return Vector2{ -1.0, -1.0 };
else return Vector2{ 1.0, -1.0 };
}
float Fade(float interpolation)
{
return ((6 *
Procedurally Generated Infinite Dunes Terrain in Real Time
https://redd.it/1srtgo7
@proceduralgeneration
Free 3d cone generator for blender
https://redd.it/1srnkir
@proceduralgeneration
Procedural Pixel Planets
https://redd.it/1srln8t
@proceduralgeneration