/r/proceduralgeneration
This subreddit is about everything procedurally generated (media, techniques, ...)
This subreddit is about everything procedurally generated (pictures, videos, discussions on techniques, ...)
/r/proceduralgeneration
I’m building a mod for the game Valheim that will add procedural roads to the world during generation. I’m struggling to figure out how to smooth the road across existing terrain.
For context, the terrains height map is already generated when I place my roads. So I need to smooth + paint the terrain to make a road.
I’m struggling to conceptualize how I can actually make a the road (dirt path) look natural and follow the terrain height changes. Does anyone have suggestions or references for this?
I have wanted to learn game development and procedural generation for a long time. I was playing game called Shadow Empire and got inspired by the planet generation in the game and I decided to try create a similar planet generator using Godot as the game engine.
I spent about two weeks working on this, and learnt a lot about Godot and game dev and proc gen in general. I also spent way too much time studying physical formulas such as ideal gas law or how to calculate escape velocity.
The generator tries to simulate various physical phenomena and then represent the simulation as a hex based world map. The features include:
The project is very much a prototype and not a finished product. I hope you have fun generating and exploring the worlds. Please let me know if you have any questions or feedback.
Planet Hex: https://zeikk0.itch.io/planet-hex
Hi, i am thinking of a topic of my thesis at uni, and i thgought about procedural generation. I know very little about it so i want to ask you if what i have in mind is possible.
I though about a web application connects through API with an app that procedurally generates ttrpg (DnD 5e in my case) parties. How would it work: end-user inputs some parameters about how his party would look (if it's either good or bad leaning, if it should be balances id combat or good in social situations, so on and so forth), then such parameters would be sent through API in json format to the app that procedurally generates the party based on the generation rules and sends back the output again in json format to display on the web app.
And here's my question. Imknow very little about procedural generation. How possible would be such thing? I know it is mostly used for textures/terrain etc. but i thought it would be fun, since some of my cources included NLP and data science. Also i though it would be a cool idea to connect two of my hobbies.
When it comes to where it would take the data for generation from, i think i got it sorted, because i would base my work on DnD 5e rules.
So my question here is how possible would it be for me to do. I have a decent experience in creating web apps, i'd say good knowledge of python. I plan to use Django framework with PosgresSQL for storing and filtring data for generation, Redis for cache and optimizing generation algorithm. And Django Rest Framework for data sending.
What other technologies would you recommend me to use? And what good sources for learning procedural generation do you suggest. It won't be aa big project so i don't think i need to delve very deeply into it, i thought it would be fun to learn something new while writing a thesis.
Thanks in advance for all answers!
This is such a happy day, I managed to make a procedural planet after years of on and off procedural terrain programming as a self taught programmer. I don't care that it doesn't look proportionally realistic, I just took a screenshot and wanted to share! I'm so happy. This is the only community that can understand how much this means. I can make infinite planets now!
EDIT: Made some major improvements, wanted some feedback and some tips on getting rid of the sharp looking artifacts from simplex noise(Unity.Mathematics.noise.snoise).
Visual artifacts:
Tried to rotate the coordinates around the sphere but didn't help any. Random seeds also didn't help, offsetting flat coordinates(before conversion to sphere) made it all mess up, so just rotations around the sphere for now.
If someone knows some examples / case studies / papers about generating and properly saving really huge worlds without save-files taking up 100+ GB of disk space I would be very thankful if you will share your knowledge.
TL;DR How to properly generate and save huge procedurally generated worlds (in-minecraft-scale: 32768 blocks x 32 768 blocks x 32768 blocks for one "region")?
So, let's say we are talking about Minecraft-like or DF-like game, where we want to generate earth-like worlds 1:2 scale (or at least close to it).
We want our 'blocks' to be 0,5m x 0,5m x 0,5m.
Our min height = - 16 384 m = - 32 768 blocks
Our max height = + 16 384 m = + 32 768 blocks
And we want to have a finite world with pre-determined size, for example:
16 777 216 m x 16 777 216 m = 281 474 976 710 656 m2
or in blocks:
33 554 432 blocks x 33 554 432 blocks = 1 125 899 906 842 624 blocks
Obviously we won't generate and save it all it once, but in chunks like in Minecraft. So, just for example I will define measurements:
1 block = 0,5m x 0,5m x 0,5,
1 chunk = 512 blocks x 512 blocks x 512 blocks
1 chunk-group = 4 chunks x 4 chunks x 4 chunks
1 region = 8 chunk-groups x 8 chunk-groups x 8 chunk-groups
1 region-group = 4 regions x 4 regions x 4 regions
And our whole world is 512 region-groups x 512 region-groups.
So if we will assume that we are using minecraft-style generation and saving we will have the following memory needed for saving our world if i understand correctly:
1 block = 2 bytes
1 chunk = 1 073 741 824 bytes = 1.07 GB (which is already too much)
1 chunk-group = 78.40 GB
1 region = 246.72 PB
and there is no point in counting further, even with 10x compression we will have an unimaginable file size.
So, obviously, no player will ever have time / ability to explore all the chunks of the world, but the problem rises far before he is reaching the limits.
I want to generate these regions only when player will enter them / interact with them, so I don't need to generate the whole world, but the problem is that the player can and will enter a lot of "regions" and if he will change something in those regions I will need to save information about the changes. Changes can be anything from building a hut on top of a 16k blocks high mountain, to erasing that mountain to the ground entirely.
And the effect that I want is that the player can see far into horizon into yet-unloaded (fake LOD-terrain) or already loaded-before regions (with very low-poly LODs).
I thought about generating only visible first layer chunks of the world which are determined by Z-level when player is loading into location (like only surfaces of ground, mountains, etc.) and generating everything else after that durning gameplay. But it is still at least 134 million blocks to generate for one chunk, infinitely more for 1 chunk-group and infinitely-infinitely more-more for 1 region and unimaginably more for 1 region-group. Then I thought about generating only cover-layer, but it is still as much as 262 144 blocks to generate per chunk, 4.2 million blocks per chunk-group, 268.4 million blocks per region and 4.3 billion blocks for max render (region-group).
So my question is. Is it possible at all? Is there any way to efficently generate such wast landmasses (like 32km x 32km terrain with elevation from -16k to +16k, or at least generate it in chunks with sizes = 256m x 256m with elevation from -128m to +128m)? And adequately save all changes across a lot of different regions that are that big?
I am only starting to learn this stuff and coding in general, so sorry in advance if something seems stupid in my assumptions :)
Hi Everyone!
My company Mythica makes and curates Open Source Procedural (mostly Houdini) tools.
There are just over 3 weeks left in the first of our ongoing series of open procedural competitions with large cash prizes to the victors.
Our first open competition has competitors crafting tree asset generation tools in Houdini. The contest is open to anybody in the world over the age of 18 and all submissions (including the victors) will be made open source and commercially licensed for anybody to use, free of charge.
Signups and submissions are all handled through our Discord: https://discord.com/invite/mythica
Come Join the Fun!
Here's another simulation I did in pythonista for ios.
This simulation is of particles with forces that are dependent on the the shape and rgb color of the particle.
Each particle is added with a screen touch in this video. The particle added is a random shape (circle, triangle, square) and random color (random roygbiv color)
The very nice text menu: -Particle count is the top number -The list is a sum of the rgb color values of each particle (idk why, it just is) -The number to the right of the rgb sum is the sum of the rgb sum (again, idk it is because it is)
Hey everyone! I’ve been working on a Pythonista for iOS project that simulates a 3D grid of particles. Each particle's position is updated dynamically based on forces calculated between particles.
The code uses Pythonista’s scene module to render the 3D grid, with some custom classes for particle behavior and grid management.