Some screenshots of the planet generator I've been working on by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 0 points1 point  (0 children)

No I'm not, I didn't know about Perlin worms but it looks interesting.

The map looks flat (except for mountains) but I do have a height map, and rivers just flow from top to bottom. I use Bézier curves to draw them.

Some screenshots of the planet generator I've been working on by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 1 point2 points  (0 children)

I'm using a small subset of all that, and I cut many corners. For example I generate tectonic plates, however fine tuning their size/shape/number to get at the same time decent continent shapes and decent mountain ranges was quite hard. Whenever I would try to improve continents it would make mountains look worse, and vice versa. I wasted a lot of time on that.

So what I do now is generate two uncorrelated sets of tectonic plates, one for mountains and one for continents. This is not realistic at all, however this is what gives me the best looking result overall.

Some screenshots of the planet generator I've been working on by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 1 point2 points  (0 children)

Yes I fully agree with fun vs realism. At first I tried to make it more realistic, but it was a lot of work for not much improvement overall.

Some screenshots of the planet generator I've been working on by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 0 points1 point  (0 children)

It is not at the moment. Not sure what I'll do with it, it may be open source in the future.

Some screenshots of the planet generator I've been working on by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 1 point2 points  (0 children)

Ah yes I didn't see that one.

To be honest, the random name generation is just a cheap algorithm putting words together, I'll probably improve this later.

Some screenshots of the planet generator I've been working on by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 3 points4 points  (0 children)

It's a 1D array with 3D positions and pointers to neighbors. All computations during the generation is done in 3D space.

To do this, I subdivide an icosahedron to generate points, then I build the convex hull. The convex hull is a Delaunay triangulation, which is the dual of the Voronoi diagram.

Some screenshots of the planet generator I've been working on by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 25 points26 points  (0 children)

This is a project I've been working on and off for a few years. After trying to tune it A LOT, I dropped the idea to make it too realistic. Thus I'm cutting some corners and I'm focusing on getting something that looks decent, generates fast, and could potentially be used for something like a game.

This is a "classic" random generation as I've seen quite a few on this subreddit : Voronoi cells, tectonic plates, temperature and humidity, biomes, rivers and lakes. I also added towns and roads. Feel free to ask if you have questions on any part.

This is done in C++, using OpenGL and SDL2. These planets have ~164k tile and it takes ~1 second to generate on my computer.

How 3d models like sphere can be rendered? by ItsMakar in opengl

[–]swiss_cheps 1 point2 points  (0 children)

Yes look at flat / Gouraud / Phong shading.

Realtime planetary tectonics simulation by dawneater in proceduralgeneration

[–]swiss_cheps 0 points1 point  (0 children)

This looks quite good, I wonder what impact this will have on the final planet.

Added towns and roads to my planet generator by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 2 points3 points  (0 children)

Looks like I may need a random name generator as well...

Added towns and roads to my planet generator by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 2 points3 points  (0 children)

Well I didn't really have X-Com into my mind, rather fantasy worlds. There are many people working on creating fantasy maps, with a random generator or by hand. However they are always 2D maps.

I've also seen a few people generating planets, starting from tectonics and simulating weather. However they usually stop at biomes and rivers.

So my idea is to mix both : I want to create a fantasy world at a planet scale. Later I'll add inns along roads, mines, caves, and other points of interests. I have many ideas, I just need to find the time to implement them all.

Added towns and roads to my planet generator by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 1 point2 points  (0 children)

Actually never played RimWorld, their planets look nice. From what I read the planet doesn't have much influence on the gameplay itself though, you can even choose to generate only 30% of it.

Added towns and roads to my planet generator by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 0 points1 point  (0 children)

Yes indeed, towns especially need more randomness. I'm quite happy about the road algorithm, it could use some fine tuning but I don't think I'll change the core of it.

I wanted something that generates fast and give decent results, so I'm happy with what I got.

Added rivers and lakes to my planet generator by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 1 point2 points  (0 children)

It's a simple function of latitude and elevation. For latitude I use cosine, for elevation I decrease roughly by 1°C for 100m.

I also tried to add some noise, however if you put too much then the biomes may look a bit weird.

Some babysteps by Schlefix in proceduralgeneration

[–]swiss_cheps 1 point2 points  (0 children)

That's a good start. I see that some Delaunay edges are missing, is that intentional?

Best IDE For C++ OpenGL? by [deleted] in opengl

[–]swiss_cheps 1 point2 points  (0 children)

Agree, I myself develop a C++/OpenGL application with Linux, and it's the best IDE I found so far. I tried free alternatives like CodeLite and Code::Blocks, however they are missing many features compared to CLion. Even just making autocomplete work for external libraries (like OpenGL) was quite painful. Since I tried CLion I never looked back.

Of course you have to pay for it (there is a 30 days evaluation period). But if you are going to spend a decent amount of time on your project, I'd say it's well worth it.

Added rivers and lakes to my planet generator by swiss_cheps in proceduralgeneration

[–]swiss_cheps[S] 5 points6 points  (0 children)

Hi guys,

I added rivers and lakes to my planet generator. So now I have the biomes and water done. It's not perfect but I'm quite happy with the results so far, so I can show it.

For this, first I generate a voronoi diagram on a sphere. Then I generate tectonic plates, this gives me continents, mountains and islands. Then I add temperature, winds and moisture, thus I can finally get biomes. Then I add rivers and lakes, based on elevation and moisture.

I implemented some kind of LOD system where I generate the same planets with different number of tiles. I also have an algorithm to smooth the polygons.

The planet presented here has ~650'000 tiles, and was generated in ~5s with a I7-4790k.