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

    • Crysyn

      Only help if you can be helpful

      Hey All, A topic has come up of late in the IRC channel in regards to the general feel of the forums and the community that supports them. Things have progressed further than I would have liked with out this being addressed more publicly because I would much rather have snubbed this out sooner rather than later.. but I have been busy. Here is the general rule I would like people to follow: Wheaton's Law "Don't be a dick." Those of you from the IRC channel know that this is the only rule I ask people in there to follow and we generally have a good and lively time chatting about all manner of things. This is basic rule that just about everyone understands and I am going to expand it to the forums from here moving forward. If you can not help people in a helpful and polite manner then I simply ask you to stop. Now I generally take a back seat to moderating the forums as I like to participate in the suggestions forum fairly heavily at times and would rather do so as a forums user than a moderator. But I am also fairly well known for being the person who constantly puts their foot down and so I am stepping up and doing so on here. If you find yourself unable to respond to a message politely then I ask that you do not respond. This mostly focuses on the increasing level of hostility found within the Suggestion forum as well as the Server forum. I do not care if this is the 30th some odd time you have seen someone make the same suggestion. Or even if the new post on an older topic is one entry above the old one. I expect the members of this forum to respond politely to the user, new or old, and point to the older topic if it applies and even go the extra step to suggest they either add in new information or to summarize the outcome of the previous discussion based upon the new post's entry into it. That is what we are here for, that is why I close most topics instead of deleting them, so that they can be found and referenced down the road. The next topic is the slew of derailment attempts I have seen as of late. If you want to have fun and joke around that is what the off topic forum is for and pretty much anything goes there. I do not expect to read a suggestion thread and have to go through 3 pages of image memes people have shot back and forth. Quite simply this is a waste of my time to read and then have to clean up. Now for the summary. I am going to start taking a more active role, especially in policing the suggestion forum, and handing out warn levels to people whom I see doing this. These will be indiscriminate and applied not to just the first person who derails or is impolite on a topic or response, but to everyone whom follows the lead of that person. As I do not like doing things with out giving you all warning this post shall serve as that warning. If you have a desire to bring this topic up with me then I invite you to do so on the IRC channel. Lets raise the level of quality and grow the community. Let us not descend into the quality often found on the minecraft or league of legend forums. There is simply no need for that here. Be passionate about things, just do not be abusive.
    • Kittychanley

      Offline Servers

      Recently I've seen a few server listings showing up on the first page of the Servers forum that have been closed for an extended period of time, but have recently gotten a reply from a new member who didn't realize the server is offline. To help prevent this from happening in the future, it would be greatly appreciated if you could use the report function on the original post of any servers that have been confirmed as offline, so that the topic may be locked. If you are the admin of a server and plan on taking the server offline, please use the report function on the original post of your topic to let the TFC Staff know that the topic should be locked. If you are the admin of a server that has a locked topic, and would wish to bring the server back online, please use the report function on the original post of the topic to let the TFC Staff know that the topic should be unlocked. As always, please remember to follow rule #3 of the servers forum and update your topic title to contain the version of TFC that the server is currently running. You can do so by editing the OP, and then clicking on "Use Full Editor."
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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now