Procedurally Generated Terrain

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:

3 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

I’d agree under normal circumstances, however, there is an element lost when making a map by hand that really only can be observed in random generation or in nature.

Let’s take those images for example (I have no idea how to quote images). Are they beautiful examples of terrain work? Yes, of course. However, it’s painfully obvious that these are not natural.

a literal 2 paragraph rant about river flow and how it shapes terrain (click to show)

Look at the water in the 2nd image. Which way is it flowing? The bubbles (white lines) go both ways from the waterfall, meaning that the river would not flow. This is also suggested by the way terrain is formed around that area, which implies that water from the waterfall would spread out both ways. Again, none of this would make sense in a flowing river.

As an example, let’s do a comparison. example A is what I believe the terrain looks like in that image. Notice how the water flow makes no sense, assuming the river flows toward the direction of the camera. Now let’s look at example B. The water flow makes sense here, and the terrain follows it. The left corner is sharpened by the flow, while the right one is rounded out. As the water flow merges, it shapes the area around it.

Now, the question is why. Why is this a big deal? I’d argue that this oversight exemplifies the one thing hand-made environments fail at: precisely simulating natural processes. The processes that shape terrain in the real world started thousands of years ago and minor changes to the starting conditions would cause vastly different results.

However, algorithms exist for this purpose. Look up “procedural hydrology” and you’ll see examples of people using water flow to generate terrain. When it comes to natural, realistic terrain, you can outperform a human modeler using an algorithm.

Note: I am speaking about only realism. Game design does not always require ultra-realistic terrain, and more realistic isn’t always better.

3 Likes

Smart. Especially if it’s a GROWING map, inside a already generated server. You should suggest that to Ark Survival Evolved, they’re the guys who are capable to make it while making it still very detailed and autonomous. (We’re not God we can’t compare our work to the nature)

2 Likes

Paper on procedural hydrology for any interested (PDF) https://www.google.com/url?sa=t&source=web&rct=j&url=https://hal.archives-ouvertes.fr/hal-01339224/document&ved=2ahUKEwjh9bjUnYz3AhUWq3IEHeYRB_oQFnoECDwQAQ&usg=AOvVaw3SN3lpia5dbOvNDO1ReX13

I highly recommend reading this, it’s a very cool method of terrain generation.

3 Likes

Thanks, I’ll check it out. Looking forward to reading it :100:

1 Like

If I want to make a rust-style game I will, so far all you’ve said are the buts. But you can’t generate terrain(you can), But it’s not realistic(It’s a goddam test of Perlin noise it’s meant to be as simple as possible), but it’s not as good as hand-built maps(Ok?, do you not realize that’s literally every procedurally generated game(A majority of the content is user generated and I’ve already thought about that. (Persistent server systems))). I got a nice thread from people sharing such useful info so I am quite grateful for you constantly replying and keeping the thread active I truly am thankful :heart:. You also gave a few valid points and I do plan to take them into account :+1:

4 Likes

Yeah sorry for sounding a bit impatient, anyways, the most difficult part of games like Rust is fixed servers, it means the same server for the player. Ofc he can chose to change one but the player will lose all his current data. In rust, when a player logout his body stays where he was, that would be pretty difficult to do that In roblox especially that the player has to spawn at the same place in the same server maybe 2 weeks after (if still alive)

1 Like

No worries, what you’re speaking of is a persistent server system and I’ve already come up with a system to allow for the persistency of player data independent of other servers.

Option 1
Using private servers. Private servers are unique because they can be identified using Game.PrivateServerId. With this, we can create basic per server saving systems and of course that it also serves as a join code so when users are in the main game they can view recently played servers, favorites, created servers, and of course community servers hosted by other people similar to what is done in games like Islands e.t.c

Links

TeleportService:TeleportToPrivateServer
DataModel.PrivateServerId

Option 2
I think I’m going to keep this one to myself until I work out how it would fully work :smile:

2 Likes

For people in the future using this as a reference there is a small issue you might run into :smile: . Good luck finding the solution, I’ll share it once I find out.

1 Like

bro you have got to be kidding me

ofc he wont be able to, b/c that is not what he is going for, its like saying adopt me is unrealistic

well ofc it is not realistic, because its a lowpoly style

And you’re one of the guys who annoyed me in my Creations Feedback post.

2 Likes

lol OG isn’t some noob who wanna make adopt me style, he mentioned the game Rust, it means he’s ambitious and aiming for a high level.
Insult me personally if you want, I don’t wanna get sent into a c- you damn communist

2 Likes

cry about my political views,

ratio+

if he mentioned rust, he used it as an example, he never said he is making the exact detail of that games terrain, its pretty obvious not trying to be mean.

3 Likes

Ask him whether if he’s trying to make a fully pixelated game or a generally realistic one.

2 Likes