#proceduralcontentgeneration

2025-08-12

devcom 2025: Neue Sprecherinnen und Sprecher im Programm
Die devcom 2025 erweitert ihr Programm um mehrere neue Fachvorträge, die ein breites Spektrum an Themen aus der Spieleentwicklung abdecken.
xboxdev.com/devcom-2025-neue-s
#Devcom2025 #Entwicklung #Event #AnnGrin #devcom #Devcom2025 #DonDaglow #HaronYounis #IndustryInsiders #JosephAzzam #NabazSali #ProceduralContentGeneration #RuslanaKruchek #UnrealEngine20

2025-07-13

The "negative space" in this image represents all the room configurations that are impossible from the Rogue(*) level generator, given the first two rooms are fixed configurations. No obvious structure (and I wouldn't expect it to be visible in this view.)

Each room configuration is tagged with the number of seeds that produce it.

Considering flipping this and highlighting just the impossible room sizes.

#Rogue #ProceduralContentGeneration

Each of the nine segments of this diagram represents one of the nine possible rooms in the Rogue level generator.  Within each cluster the size and positions of the room are plotted, along with the number of seeds that generate that room.  Rooms 0 and 1 are constrained to be the 4x4 room in the most upper-left position possible.
2025-07-13

Exhaustive enumeration of Rogue seeds progress:

I've created an S3 bucket full of bitmaps for each room "feature" (currently only position and size), one bit per seed. This will allow reverse lookups -- if we want to find seeds where room 0 has height 6 and width 17, we can AND the corresponding bitmaps and find which bits are set. This is about 231GiB large.

But, the slow part is actually uploading to S3. Running a complete enumeration locally takes less than 14 minutes (and this without any particular effort put into optimization or parallelization!) So building a query engine over this data may not be worth the investment if it only takes that little time to run an exhaustive search.

I'm still thinking of a visualization. There are 2529 possible room configurations so a nice 51x50 grid could plot the relative frequency of each, in each room position. But, this makes large rooms look more probable than they are. (Rogue picks a room size and then places it to fit second, so there are many configurations for small rooms and only one for the largest room.)

However, this is still Rogue(*) not real Rogue. A small variant in which monsters are placed _after_ room creation, not _during_.

#Rogue #ProceduralContentGeneration #BruteForce

A screenshot of S3 showing 4MiB files named things like 00000000-room0-width16 which is <start of seed range>-<room 0 through 9>-<feature>.A console log showing the 'time' output for a complete enumeration -- it reads 13m32.998 seconds.  The end of a table is shown listing room id, configuration id, height, y offset, width, x offset, and the count of rooms with that configuration.

This says there are 40,775,101 seeds that produce a 25x7 room in the lower-right corner.
2025-04-28

#GameDev #GameIdea #GardeningGame #ReverseOf4X #Voronoi #Crystals #ProceduralContent #ProceduralContentGeneration #PCG

I wrote up one of my old game ideas.

A few years back I found the concept of "gardening games" by @maxkreminski.

mkremins.github.io/blog/garden

The point is not literal "gardening" but rather a deeper way to interact/relate to procedural content, pretty much by inverting the idea of a 4X game. Instead of arriving at a beautiful, believable, "wild" landscape and exploiting it to bits, the player works with the environment system to enhance it.

E.g. the same way a gardener works with/within nature: collecting seeds, growing seedlings, moving self-set plants, removing weeds, composting waste, pruning, improving soil.

It's a beautiful idea that captures something I hunger for in games, but rarely find...

...so this is my attempt to implement the idea in a design: emnf-ideas.ianbadcoe.uk/growth

This particular take is literally gardening, which is not required, but works as a jumping off point.

2025-04-03

#GameDev #Godot #PGC #ProceduralContentGeneration #ReallyEarlyDays #YesItsACube

Don't laugh, but I have spent about a day just getting a cube displayed in Godot...

...but wait, this is no ordinary cube, it's built from a slightly "smart" data structure that knows all the faces, all the edges, all the verts, and how they are connected together.

Why? Well the point is:

i) if I have an algorithm building procedural levels and it is pasting a load (let's for the moment say cubes) together, it is easy to delete the hidden faces where they touch (and merge edges/verts and delete any orphaned ones), and...

ii) this is the data I need to apply a subdivision surface algorithm, which will enable me to tag verts and edges to be smooth or sharp, giving me (near) spheres, cylinders, cylinders with right-angle bends and so on...

A really simple Godot scene containing just the axes and a grey unit-cube at the origin...
2024-10-29

First sampling run of the #Rogue (-ish) room generation algorithm. This ASCII diagram shows the proportion of samples that each square on the map is occupied by a room (including walls). For example, 6 = 60-70% of samples, 0 = less than 10%.

13.125 seconds for 1m samples gives an estimated time of 15.7 hours to sweep the whole 32-bit space of possible seeds. Totally doable, and not even parallelized yet.

#ProceduralContentGeneration #ExpressiveRangeAnalysis

2024-10-26

The original Rogue level algorithm picks a width for each room between 4 and 25, and a height between 4 and 7.

Ignoring "gone" rooms, that gives 22^9 * 4^9 possibilities with only a 32-bit seed. So some combinations of rooms must be impossible! How does the subspace of rooms produced by the limited seed space compare with the theoretical distribution if rnd() was really random?

Weekend project, maybe? I have been thinking ever since #RoguelikeCelebration about how small RNG seeds (or poor PRNG algorithms) limit the expressive range of PCG in ways that might be unexpected.

#ProceduralContentGeneration #PseudoRandom #Rogue

2023-08-02

not that the world really needs more computer science conferences, but i keep wondering if there’s appetite for one focused on procedural generation/generative computation, i.e. the union of PCG, generative art, program synthesis, &c.

mostly, it would really help to have a name for this field that people don’t mistake for consisting entirely of text2image statistical models

#generativeArt #genartclub #generativeAI #procgen #proceduralcontentgeneration #programsynthesis #logicprogramming

2023-01-28

Experimenting with generating procedural geometry using Voronoi polyhedra in real time...

One of the colours of block is also smooth-shaded, just to show that can be controlled. What this ultimately needs is some seriously funky shaders attaching, but that's not really a priority ATM.

Up to 50-odd polyhedra doesn't seem to strain the generation system, but I need to scale it up to 1000s and and see how slow it gets. I probably will ultimately need a spatial subdivision. I wonder if Unity's own scene graph would cover that efficiently, or I need to roll my own...?

#procedural #unity #proceduralcontentgeneration #voronoi #delaunay

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst