procedural generation
129 subscribers
5.33K photos
1.78K videos
7 files
11.3K links
Created by @r_channels
Download Telegram
Procedural generation without repetitions

Hi there!

I'm refining some old projects, and there is a few ehnancements I would like to do.

Lets say I have a random generator that generates random runes (Like https://fontmeme.com/fuentes/fuente-angerthas-moria/) from a given seed:

> int a = randForSeed.nextInt(1-3);

> if (a == 1) {

> start drawing from the top left corner

> } else if (a == 2)

> start drawing from the top center

> } else if (a == 3)

> start drawing from the top right-corner

> }

> then draw a diagonal, or straight down, using another randForSeed.nextInt(1-x)

Other example: generate random books: I have a list of titles

>The $color $type of...

>The $color $type with...

then a list of colors, and a list of types. Selecting a random one from each, would result in

> The black tome of...

> The red manual of...

> The red guide of...

> etc.

Question is... how can I be sure no repetitions are produced? No same runes are generated, and I have no duplicate book tittles?

I could brute force it: check if the generated element is already generated, and reroll the randoms, generating another. There should be not much collisions, but looks like the dirty way.

In another generator I used a list of consecutive values, and then shuffled it to get a random (non repeating sequence). But I dont really know how to integrate this in a more complex algorithm. For example in the books example, I could generate a list of 0 to n-1 colors (0..10) shufle it, and then pick the color for the next book from this list, using the next value in the shuffled list. But somehow looks like a cheap solution.

Hope my english is clear enough... Any ideas?

https://redd.it/1360jb6
@proceduralgeneration
Procedural Content Generation via Knowledge Transformation (PCG-KT)

I did a writeup on a new paper just published on PCG-KT that shows a lot of potential because can use AI to transfer knowledge from different domains for a new way to do PCG.

You can find the original research paper here: https://arxiv.org/pdf/2305.00644.pdf

And my humble writeup here:
https://airesearchnews.com/unleashing-game-worlds-with-knowledge-transformation-a-new-era-for-procedural-content-generation/

I hope you find it as interesting as I did.

https://redd.it/136tac9
@proceduralgeneration
This media is not supported in your browser
VIEW IN TELEGRAM
Ever wonder what happens when you combine worley (or voronoi) noise + fractional brownian motion + domain warping?

https://redd.it/137382y
@proceduralgeneration
Made a game with generative puzzle pieces
https://redd.it/137tqgp
@proceduralgeneration
Procedural generation thesis topics

Hi, I'm looking for my honor's thesis (tfg) research topics about procedural generation in videogames for things like levels, assets,... (whatever really). I would like to innovate in some capacity in this field of study but I do not know what are the current problems or limits as of late. If anyone knows about it or has any mediums of searching for this information please DM me or ping me.

Thank you beforehand!

https://redd.it/137watu
@proceduralgeneration
Is there an Infinitely Reproducible Technique for the Wave Function Collapse?

I know there are videos of infinite wave function collapse worlds on Youtube, but they all seem to use some re-creating technique such as back-propagation to "fix" issues that come up that are caused by lack of information / conflicting states in surrounding tiles. On top of that generation seems to depends on what order of chunks you generate, since there is more than one solution to the combination of tile states, and this doesn't seem to be possible to lock down to "reproducibility" with hash functions or anything.

The only way I can think of doing this is to ensure that what is generated is being generated in chunks, and the tiles on the edges of the chunk are essentially blank-canvas tiles that accept any tiles adjacent to it. That way in a finite space you can run a reproducible chunk, and can guarantee the states of other chunks don't invalidate the current chunk's state.

​

Is there any other way of doing this? For instance, is there a mathematically proven formula for determining how "far away" you need to generate from the current tile to ensure there can no longer be any backpropagation issues? Or is there another algorithm similar to the wave function collapse that actually is able to be reproducible infinitely?

https://redd.it/1384ts3
@proceduralgeneration
This media is not supported in your browser
VIEW IN TELEGRAM
Thanks to the community feedbacks we released a new version of our procedural walk engine demo!

https://redd.it/138kim7
@proceduralgeneration
Quick performance preview of my hobby procedural city engine (C++) on the Steam Deck

A quick preview of the performance on the Steam Deck (apologies for the youtube link but the video is 600mb and it's not practical on my data package to currently upload this >1 time): https://youtu.be/kWwDXNQ6w3Q

https://redd.it/138kkj0
@proceduralgeneration
Applying a Distorted Voronoi Map to a Perlin Noise Map

Hi! I'm completely new to game development but have a background in software engineering. I've been brain storming for a game idea that would allow a player to choose what biomes are in what spots on a finite voxel map. I have following requirements:

1. The initial height map will be generated by a low frequency/contrast Perlin noise function so that there are some small hills and shallow valleys, but not much. The idea is it's barren.
2. The map will be divided into random undeclared biome sections of relatively equal size using a voronoi map (or something similar). Whether the biome map is procedurally generated does not matter too much to me (the map bounds will be finite so there's no decisive reason it should need to be tileable).
3. The player should be able to choose one of the undeclared biome sections and choose which biome should go there. As a first pass there are no limitations on which biome can border another.
4. When the player chooses a biome, either a corresponding Perlin noise function is applied to that section of the map, or the parameters of the initial noise function are modified in that section to match the selected biome, and blended on the edges in a way that is reasonable. For example, if the user chooses to place a mountains biome, then higher hills and valleys should be placed in that section. If a Plains section is placed, then the opposite.
5. The terrain is not modifiable in any other way, no mining, building etc.

The main issue I'm having with processing all of this is figuring out how to do a look up of what section of the voronoi map a voxel vector is in when rendering, and how to preform the blend so that when a plain is placed next to a mountain, there is a reasonable blended slope for 1-3 tiles around the perimeter based on what the neighboring biome's topography is like

Any insights or ideas on how to approach this would be super helpful! I attached an image for a visual description.

https://preview.redd.it/hp7ihjetz1ya1.png?width=841&format=png&auto=webp&v=enabled&s=6fe31ae399b72eaa97c5cca9879d8fa0b885decd

https://redd.it/138wpa8
@proceduralgeneration