Procedurally Generated Terrain

Practicing using Perlin noise to generate terrain. The eventual goal is to make a rust-style game. (This is just for practice at the moment :wink:)

Update: I now plan to use this to document my progress as I work on it, I’d also like to get some feedback though it seems my thread is dead atm :smile:

Portfolio- https://chainreactionist.com/

V1 Apr 8, 2022

V2- May 17, 2022

Just playing around with the idea of using triangles as opposed to cubes, I assume would be a lot more performant. I haven’t really been focusing on this as I have been working on many other projects but I’ll keep updating this post once in a while
https://gyazo.com/f002ae18615f34338be8e2fe3a276ac9

V3- May 21, 2022

I got some time to play around today so I tried out generating terrain using blocks as opposed to triangles, this doesn’t seem to be a good idea at the moment, but It might be worth considering if you were working on an open-world adventure game where you wouldn’t need to generate as many blocks because you would be using really large scalable blocks.

Example

Anyways, back to our talk on blocky terrain generation. I followed a YT tutorial that explained the basics of terrain generation using the built-in Roblox noise function. It went pretty well and from working on it I learned quite a few things and got a few ideas listed below

  1. Use a single part for water, and use swimmable parts. A few issues with this is that Roblox has a part size issue, I’ll figure this out later as it’s done in other Roblox games such as Mad City. This is an issue for future me.

  2. I got some info from another developer called SyntheticDev#9931 he linked me some useful resources and I’ll link them below as well for anyone who might find it useful

  3. Also got a few ideas as to how to generate triangular terrain. I’ll save this for the next update when I get more ideas and also because it’s also subject to change.

Links

Polygonal Map Generation for Games

https://www.reddit.com/r/proceduralgeneration/comments/gulol6/combining_noise_to_make_a_more_interesting_terrain/

https://github.com/Synthetic-Dev/TerrainPrototype

Now I’d like to showcase what I made today. It might be useful to you if you’re making something similar

Images

https://gyazo.com/4adb2f0c835dd43a0e7ac5a184b50268

Game link (What did you think I would be selfish with my code? this is our code)
Project Cupcake - Roblox

7 Likes

Hi
Good start, I started like that too because it seemed interesting. Then i started adding biomes and using pre made chunk models by me like 4 per biome to make it look good. And learned how to use and generate a height and temperature map. This is on a bit of a higher level but just dont give up cause even me who didnt know anything about it could make something cool.
Also you can test it out and play around with values here: Procedural terrain generation showcase - Roblox

4 Likes

Real good game maps are built manually, stop trying to act advanced, it’s simply going to make your game unrealistic and barely detailed compared to good maps.
We’re not that advanced, you can’t build rust with a few generator scripts.

2 Likes

That simply isn’t the case. Manual Maps don’t equal a Good Game. “We’re not that advanced” do you not get the point of an experimental project? and it mainly seems like you’re just projecting your insecurities about your coding skills and your ability to try out experimental projects.

10 Likes

I checked out your game, it’s amazing what you were able to accomplish. I would love to talk to you sometime about terrain generation. My contacts are on https://chainreactionist.com/.

2 Likes

Sure but it’ll definitely be a pixelated game, if you wanna generate something as beautiful as the Ark survival evolved island you’ll have to script for another 10 years.

2 Likes

You realize Roblox has a terrain API that allows you to generate terrain right?

2 Likes

This isn’t some far off Idea. Infinite terrains have already been created Roblox Infinite Terrain Plugin - YouTube.

4 Likes

I’ve seen it, it’s very plain, like a few hills with brushtool.



But for something like this by ArtBlox you just can’t build it with codes.

3 Likes

A agree this would be quite hard to replicate with code but you totally miss the point of procedurally generated terrain is to have virtually limitless worlds that couldn’t have been created through regular building.

4 Likes

Bro thats not the point, let the guy experiment. You are saying but it wont be as good looking as a manual build which is mostly true but one of the points for it is it can be made infinitely without you spending tons of time to make a well detailed giant map. Look at minecraft graphics isnt good but the terrain itself and the infinite world is. Which is also different for every player based on the seed. Its just not possible to achieve that with manual builds. Sometimes more good terrain is better than less well detaild.

6 Likes

I highly agree with this. I really don’t get why people are so against this.

3 Likes

I’m not, this kind of terrain is probably great for many games, not rust though.

2 Likes

This is great! I would move forward learning about other types of maps as each layer of code-mapping you lay onto a procedural world is a huge step in how it looks.

Larger terrain systems (you said you plan to aim for something like Rust), tend to use a seeding system. Decisions are made on the basis of a singular number or string for consistency (this is fairly easy to write for perlin terrain, where the noise runs based on a seed- but eventually you could manually write algorithms that do more important generation around it).

You can, actually, in fact this is literally how Rust generates its worlds (and every other well-done game where maps are anywhere on the spectrum of randomization).

A root gameworld is generated from a seed. This seed is then used to determine where landmarks should be placed (landmarks are manually built, but carved into the world through code intelligence). You then generate other necessary defaults (roads, paths, etc… in Rust).

Rust has premade maps, but these maps were also originally created through terrain generation. The landmarks were just manually placed.

3 Likes

This is just the very early stage of development where I’m literally learning about procedural systems. Rome wasn’t built in a day and neither was rust. Everyone has to start at some point and it seems that you just don’t have the same vision as I do. Instead of attempting to get me down how about you follow me and watch my progress instead :cool:

2 Likes

Thanks a lot, I didn’t realize rust monuments weren’t procedurally placed. Maybe an ideal solution could be a mix of procedural and hand-placed work by actual builders :+1:.

3 Likes

In games like Rust, Ark (Better) and Battlefield 5, every single piece of non-harvestable and non-maneuverable objects are the same in every single server using this map. Not just landmarks.

2 Likes

What are you even saying???

2 Likes

You unironically live inside of the box. Good for you, good luck with that. :smiley:

3 Likes

You figuratively lives outside our world, in 4065 maybe. Good luck with Dreamtime traveling.

2 Likes