Content: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Background: Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Pattern: Blank Waves Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Welcome to TerraFirmaCraft Forums

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

  • Announcements

    • Dries007

      ATTENTION Forum Database Breach   03/04/2019

      There has been a breach of our database. Please make sure you change your password (use a password manager, like Lastpass).
      If you used this password anywhere else, change that too! The passwords themselves are stored hashed, but may old accounts still had old, insecure (by today's standards) hashes from back when they where created. This means they can be "cracked" more easily. Other leaked information includes: email, IP, account name.
      I'm trying my best to find out more and keep everyone up to date. Discord (http://invite.gg/TerraFirmaCraft) is the best option for up to date news and questions. I'm sorry for this, but the damage has been done. All I can do is try to make sure it doesn't happen again.
    • Claycorp

      This forum is now READ ONLY!   01/20/2020

      As of this post and forever into the future this forum has been put into READ ONLY MODE. There will be no new posts! A replacement is coming SoonTM . If you wish to stay up-to-date on whats going on or post your content. Please use the Discord or Sub-Reddit until the new forums are running.

      Any questions or comments can be directed to Claycorp on either platform.
raymondbh

World generation

44 posts in this topic

Compiled TFC2 for a quick look, kind of curious on how far you have come @Bioxx ;-)

 

The new trees looks awesome and I love the rivers/streams, but what's up with the strange hexagon generation of the world?

 

Would love to contribute to TFC2 when the time comes, if I have something to offer, love the project :D

Edited by raymondbh
1

Share this post


Link to post
Share on other sites

Its a stylistic choice as much as a requirement for our pregenerated island maps. It grows on you.

1

Share this post


Link to post
Share on other sites

The noise hasn't been added to they generation yet that with disguise the hexagons.

1

Share this post


Link to post
Share on other sites

I have some ideas for how to disguise the hex edges a little bit which I'll be testing out in the near future. Also, as more clutter is added to the world, it will have the effect of hiding some of that. Your island, I noticed, has the cliff feature which causes much less smoothing to occur between hexes with a large height difference which is why it is so noticeable where you are. Also keep in mind that you wont be flying TFC2 unless you're cheating. If it looks ok from roughly ground level, then I'm ok with it. 

2

Share this post


Link to post
Share on other sites

I have some ideas for how to disguise the hex edges a little bit which I'll be testing out in the near future. Also, as more clutter is added to the world, it will have the effect of hiding some of that. Your island, I noticed, has the cliff feature which causes much less smoothing to occur between hexes with a large height difference which is why it is so noticeable where you are. Also keep in mind that you wont be flying TFC2 unless you're cheating. If it looks ok from roughly ground level, then I'm ok with it. 

 

Ok, I see. Just though it looked kind of strange... :-)

0

Share this post


Link to post
Share on other sites

woh that looks cool, I wonder if the mountains look like sauron's tower :P

2

Share this post


Link to post
Share on other sites

I like this idea, however I can't help but wonder if the hexes would be easier to hide if they were...smaller? Say around a quarter of the size. You wouldn't need to do as much to hide them and that might make things like a Rolling Hills type biome look smoother. This is mearly my though. In the end this is your baby Bioxx. Lol

0

Share this post


Link to post
Share on other sites

Unfortunately that would not work Mathias. One of the key requirements of decent rivers is that they be somewhat big. Too much smoothing causes major trouble when you begin to try and create rivers. That was actually what doomed the original TFC2 project, and caused me to give up at the time. The original implementation of the island generator created rivers between corners of hexes ala civ5 rivers. This is fine when your rivers exist in a 2d or pseudo 2d world where the water level doesn't need to fluctuate. Once you enter a proper 3 dimensional world, you suddenly have a river between two hexes of vastly different heights and it begins to look very bad when you have a rivers generating on the side of a cliff, not to mention the bugs. 

 

So now, back to the current implementation, rivers now gen between the hex centers which means that we can step the river down in a sane way. The size of the hexes have a big impact on how well the smoothing occurs. Too small and you end up with too much terrain noise which means that not only do the rivers have to be very small, but you'll end up with very odd fluctuations in river height. On top of that is the shear amount of data that you have to generate. Currently there is ~16k hexes per island. These hexes are iterated upon repeatedly in the island generation phase to add all of the features like canyons, valleys, lakes, rivers, etc. Just cutting the size in half means a 4 fold increase in the number of hexes that need to be generated and managed in memory.

 

If we increased the size of the hexes we have the problem of each hex being at vastly different heights. The smoothing that would need to occur just doesn't look very good. the current hex size in my estimation allows for each hex to provide a certain level of detail to the overall terrain while maintaining usability of the overall map.

1

Share this post


Link to post
Share on other sites

variable y-level rivers is going to be so amazing.

 

I...don't suppose there's any chance you could flip z and y axis, and make north of equator positive y, and south of equator negative y?  The engineer in me rages a little bit every time I have to deal with the y and z axis as they are now.  The x axis is my only refuge of sanity.

1

Share this post


Link to post
Share on other sites

No that's a 'feature' of OpenGL. MC would need to be DirectX for that.

0

Share this post


Link to post
Share on other sites

ok so it is most likely because I am a) running on far too little sleep and b0 I have not used github before except for browsing other people's code but I will ask the question anyway as I know that there are a lot less savvy people who would love to see the world gen just as much as I would. How do I compile your TFC2 github project? I have eclipse and Xcode both on my system so I can use either.. sorry for the ultra noob question Bioxx.

0

Share this post


Link to post
Share on other sites

honestly you don't even need eclipse, download the repository and run the setup.bat file, then the build.bat file. it will create a compiled jar file in the build/libs folder.

1

Share this post


Link to post
Share on other sites

Can you kindly post the TFC2 repo link? I want to see because I haven't and am currently wondering.

 

Meanwhile, I imagined that it would be something like this:

World Machine file

Posted Image

 

Posted Image

Edited by Miner239
0

Share this post


Link to post
Share on other sites

Any system reqs for running this repo? Or is my shitty dual-core with 3.5 GB ram gonna be ok? Lol.

0

Share this post


Link to post
Share on other sites

Also keep in mind that you wont be flying TFC2 unless you're cheating. If it looks ok from roughly ground level, then I'm ok with it. 

Lots of people use mini maps though. I've noticed some oddities in TFC1 maps because of that. There are more straight lines than you would realize if you weren't looking at an overhead using a mini map.

Edited by Daeruin
2

Share this post


Link to post
Share on other sites

anyone got more screenshots for me to stare at? lol. i dont have a pc to run the bat files on atm. (im using the site from my android and my pc has been dismantled for the past 4 months)

0

Share this post


Link to post
Share on other sites

anyone got more screenshots for me to stare at? lol. i dont have a pc to run the bat files on atm. (im using the site from my android and my pc has been dismantled for the past 4 months)

 

Here's the conceptual visualization of a single island:

 

Posted Image

 

And here's the actual island mapped out using JourneyMap

 

Posted Image

2

Share this post


Link to post
Share on other sites

From an aesthetic point of view, the rivers look more like canals to me - they seem a bit too regular (especially with the nice irregularity of the rest of the terrain).But it's looking great nevertheless, and I won't grumble about them in game I'm sure.

Edited by ChunkHunter
2

Share this post


Link to post
Share on other sites

Well that island is quite beautiful! A couple of minor things which could perhaps be corrected with a single change though.

The noise algorithm you are using works very well on the large scale Bioxx but the more fine grained terrain gen is pretty lacking... Have you considered adding a few more octaves to the function call to correct this? That would be an efficient way to generate the terrain map without having to add a second function altogether.

Secondly, have you maybe considered adding a Fractional Brownian Motion subroutine to your noise engine? It would drastically heighten the quality without messing around to much with the code itself. Here is an example in psuedocode for you to think about:

//for each pixel, get the value

total = 0.0f;

frequency = 1.0f/(float)hgrid;

amplitude = gain;

for (i = 0; i < octaves; ++i)

{

total += noise((float)x * frequency, (float)y * frequency) * amplitude;

frequency *= lacunarity;

amplitude *= gain;

}

Doing this as part of each octave pass will create beautiful and natural chaos whilst not involving much extra work on your part.

If you try it (even if you decide not to keep it) let me know! I would love to see the results :)

1

Share this post


Link to post
Share on other sites

Really cool island generation! I hope some islands will have tall mountains too with realistic shapes.

1

Share this post


Link to post
Share on other sites

Well that island is quite beautiful! A couple of minor things which could perhaps be corrected with a single change though.The noise algorithm you are using works very well on the large scale Bioxx but the more fine grained terrain gen is pretty lacking... Have you considered adding a few more octaves to the function call to correct this? That would be an efficient way to generate the terrain map without having to add a second function altogether.Secondly, have you maybe considered adding a Fractional Brownian Motion subroutine to your noise engine? It would drastically heighten the quality without messing around to much with the code itself. Here is an example in psuedocode for you to think about://for each pixel, get the valuetotal = 0.0f;frequency = 1.0f/(float)hgrid;amplitude = gain;for (i = 0; i < octaves; ++i){total += noise((float)x * frequency, (float)y * frequency) * amplitude;frequency *= lacunarity;amplitude *= gain;}Doing this as part of each octave pass will create beautiful and natural chaos whilst not involving much extra work on your part.If you try it (even if you decide not to keep it) let me know! I would love to see the results :)

I'm not using any local noise at all. It ended up being too much of a pain in the ass to deal with as I was making rivers generate correctly. I'll probably revisit local noise in the future.

1

Share this post


Link to post
Share on other sites