Skip to main content

On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

I'm a big fan of http://catlikecoding.com/unity/tutorials/

He explains stuff really well too.

I like Jasper's tutorials too. I began his procedural tutorials a few months ago but found I was just copying the code instead of understanding what I was doing and why (cave generation typically requires intermediate programming experience, which seems to be ~90% of procgen tutorials).

I believe I need to have a better foundation in programming before tackling procgen of that complexity. That's where I'm struggling; finding it difficult to grasp the full gamut of what procgen could be and mean. What it is in its simplest form. Is it simply using random elements within a semi designed constraint?

This is my personal view on your last question (writing on phone we'll see if it assists me in some of the text).


To me it is about emergence.

You have some sort of non-predictable input and rules to interpret/constrain it.

The input can be ununiform random like random.value or random.range, or it can be pseudo random like perlin noise.

It can also be player input, most recent tweets, time of day.

Or many other things and maths transformations of these or combinations.

The rules will of course depend on what tickles your imagination. In the simplest forms they are schema in which you select content from some database. But maybe they are distributed like cellular automata, boids or maybe they have a memory and build up a bias for certain outcomes over time.

So this might not have been helpful, but in principle I'm trying in a very convoluted way to answer yes!

There's nothing much mystic about it all. Just letting go and see what comes out .


As an example, I'm trying to make a poet that will write song lyrics based on a word graph I constructed from 10k songs and some ad hoc rules so it will rhyme and such.

Oh wow, that poetry project sounds cool. I'd love to see it when it's done.

I looked up what boids are and that stuff really interests me. I also really like the idea of something that learns from experience. Sadly, I've a long way to go before I'm capable of doing that sort of stuff. I don't even know where to start because everything seems to be targeted at intermediate to advanced programmers!

(1 edit)

You are probably right that many tutorials and descriptions assume quite a lot of previous knowledge. Admittedly I've probably levelled a bit from the beginner programmer and Unity user by now but my general way of solving my own lack in skills is simply allowing for spectacular failure and/or boring results. In all (?) cases, my adventures into procedural generation stems from more or less explicit questions following the structure "What would happen if I did X?"

As an example, let's say I wanted to do random mesh generation in Unity. Reading some on it one learns that meshes are constructed from triangles. Well, how would it look if I on every frame just decided on a random number of triangles I wanted the mesh to have (e.g. between 1 and 10), and just made a Vector3[] verticies array 3 x number of triangles. And for each vertex I simply made a random Vector3, not caring at all about those rotation rules. Finally update the mesh with the new array.

Like this

That would probably be utter chaos, so maybe one could slow down the update frequency somehow or maybe one would only update some of the Vector3 in the array from the previous iteration and keep the rest.

It wouldn't be hard to get some results and see what happens when tweaking the parameters. Maybe hard to go from there to a full experience that could be called a game, but that is besides the point. In the process one learns some about procedural mesh generation and next time one can try to add more constraints and/or different sources or random. The procgen entity could be placed in a room on a pillar, drop a default FPS controller on the camera and you have an exhibition.

As for my song-writer, it is struggling with sounding human, but I don't mind:

"like forty miles a-a-away You crackin' Like ripples run everything
I've robbed a puddle.
Something something cooking inside of desire burning matches Lifting latches"

Thank you for the reply. That's an interesting way to look at things; How can I break things and what will the results look like? Best of luck with your poet project!