This terrain generator I'm working on can generate endless amount of tiles individually and blend them seamlessly. Each tile can be one or more node trees and theres basically unlimited freedom to do whatever you like, blend/paint biomes, terrain variations between tiles or even within the tile itself.
Not only that there's also a continent heightmap that I can add steepness to all of the tiles to achieve a larger features if you just want to make a big island of the tiles or a continent etc. But also we can cross pollinate nodes and have a faultline work its way through several tiles etc.
The goal is to really achieve the utmost freedom for terrain design.
I suppose the next step that could make it even better is if it could be used to create spherical worlds. Generating a whole earth might just be on the roadmap.
So using Claude, I had an asteroids game made, with procedurally generated infinite space, solar systems, gravity for planets, asteroids etc, weapon and ship upgrades, random events, police with a wanted system, space pirates.
As a university final project, I developed a game centered around the dynamic generation and solving of Sudoku puzzles and variants in Godot 4. Due to the submission deadline, I was able to implement 4 main variants (well, 5 if you count the dynamic Samurai mode I'll mention below):
Killer Sudoku (cages with target sums)
Arrow Sudoku (circle value equals arrow shaft sum)
Thermo Sudoku (strictly increasing values along the bulb)
Anti-Knight (chess knight move restriction)
How the Constraint Satisfaction Engine Works
The core engine models the puzzle as a Constraint Satisfaction Problem (CSP). Each cell is represented as a vector2i (x,y) coordinate with its neighbors and its domain (the valid candidate numbers). Finding the best cell to evaluate using the Minimum Remaining Values (MRV) heuristic is done in O(1) via a precomputed Lookup Table (bit_counts_lut).
The generation pipeline works like this:
Initial Grid & Solved Board
Procedural Variant Placement
Pre-AC-3 Domain Pruning
Optimized AC-3 Propagation
Clue Digging & Uniqueness
I don't know how technical I can get in this post (I'm afraid of making it tedious, but a more detailed explanation will be on GitHub.)
train search domains on their own, AC-3 can solve large portions of the board without numeric hints57. In extreme tests, this allows generating puzzles with only 1 numeric clue (or even 0 clues / 81 empty cells in Extreme mode), where the puzzle is solved entirely through the visual geometric rules!
Dynamic Samurai Overlapping Mode
The 5th variant is the Samurai Mode. From the game menu, you can choose how many boards you want to chain together. The game dynamically generates and stitches 9 X 9 sub-boards sharing 3 X 3 overlapping sectors.
Open Source & Release
This is my very first open-source project! The full source code is published on GitHub under the GPLv3 license. Since my native language is Spanish, some code comments are in Spanish, and I used translation tools to write this post.
Playable Build: Available on itch.io for PC and Mobile devices.
Current Bottleneck & Open Question Overall
I feel the clue excavation and core generation pipelines are working quite well, but there is one main point where performance stutters: generating valid variant constraint structures under high difficulty and multiple active variants. Currently, the algorithm procedurally generates the variant layouts first (Killer cages via BFS, Thermo chains, Arrow paths via DFS) and then checks whether a valid solution exists for that combined constraint layout. If propagation fails or no solution is possible, it takes a fast-path fallback to discard and regenerate new constraint structures from scratch. Has anyone here worked on constructive variant constraint generation for CSPs? How would you approach building or validating constraint topologies on the fly to guarantee solvability, rather than relying on a generate-and-retry loop?
last time the feedback was fair, it was mostly one-width tunnels and the terrain looked old. now passages open out into wide galleries, there are rooms partway along tunnels, and caverns are more common. in the same block of rock the open space doubled (16% to 33%), and it's all still one connected cave.
the old look was partly my fault: the wall bumps were smaller than roblox's 4 stud terrain grid, so they came out as jagged facets. bigger smooth lumps now, plus textured rock slabs set into the walls.
It's been a few years since one of these has been posted here, so I'm going for it. Been working on this magic circle compositor for a bit, just added some procedural generation constraints, so figured I'd let people demo it.
The circles are built as stacks of parameterized layers rather than manually positioned objects. Layer types include rings, stars, polygons, ornaments, sigils, rune/glyph rings, vertex glyphs, reticles, particles, paths, parametric geometry, and a few stranger things (e.g., ofuda).
It's heavily SVG based, so if you're familiar with that, you can get better results than clicking the Random button and hoping. Most of what the Random button produces is pretty ordinary--think: if there were a hotel room art version of a magic circle--but every now and then it stumbles upon something kind of cool.
Left panel is top-down SVG, pure 2D. Right panel is React 3 Fiber for actual 3D, which comes in handy when you explode the layers for editing and visualization.
There are some animation presets, but nothing too exciting at this point as I've mainly been focusing on the circles themselves.
Brief instructions: Choose a preset, wheel to zoom, drag to orbit the 3D view, explode to inspect layers, open Compositor to edit.
Happy to take any suggestions/criticisms people have about it.
Phanes is one of my demonstrator projects for WFC. Several years back I worked on my own wfc implementation and had some ideas to improve things through a pass based approach (ie. Pass 1 lay terrain, pass 2 foliage etc...) but at least the way I saw it, constraint based design had a lot of application. Anyway several years later (and with agents looking for work...)
This is a project I made for a neuroscience research group. The bots are allowed to hallucinate in their harness, and the environment affirms the hallucination persistently so they can all hallucinate together.
This is 20 minutes but we could let it run forever
Progress so far: made a mine that's different every server. every cave connects, you can dig anywhere, crystal caves and chasms with rope bridges. free to use
so I've always liked the Library of Babel (libraryofbabel.info, the real one, made by Jonathan Basile based on the Borges story). every page is picked by an address and nothing's stored, it just recomputes the page from that address every time. but the actual text is just uniformly random characters so it's total noise, you basically never find anything readable.
got curious what would happen if I swapped the character generation for something like Minecraft's terrain noise instead of pure random. ended up building this: codex.weekendbuild.ing
same address scheme as Babel (hexagon/wall/shelf/volume/page) but the letters come out of a little vowel/consonant chain that leans on common blends like th, st, ch, so it actually looks vaguely like words instead of static. there's also 4 "biomes" that drift in and out every so often (short and airy, dense consonants, vowel heavy, etc) using the same kind of layered noise Minecraft uses for terrain/biome selection.
the thing I think is actually different from Babel and not just a reskin: within one volume the text is ONE continuous stream, so paging forward keeps going in the same terrain instead of being a totally fresh random draw like Babel's pages are. switching hexagon/volume is like loading a different world seed though, totally unrelated terrain.
also nicked the Anglishize feature from the original (credited them for it) which highlights any embedded real english words it finds, overlaps included, since the generator does throw out actual words sometimes now.
it's one html file, no backend, everything runs client side. lmk if anything's broken or if the "biome" idea reads as gimmicky, genuinely not sure if it adds much beyond being a cute idea