TerreSculptor

TerreSculptor is now one of the main terrain tools available to the industry. Over it’s lifetime to-date, TerreSculptor has had more than 80,000 downloads, and like its predecessors, it remains free software for any use.

TerraForge3D

TerraForge3D is a Opensource procedural terrain generation toolkit as well as a procedural modellling toolkit. TerraForge3D is suitable for modern 3D Environment design. It can be used for both low poly games as well as for cinematic shots in films.

6 months later

I was thinking that you might be able to generate terrain with Material Maker. It's pretty flexible. At least to export the heightmap for a tesselated plane, and then you can do all the texture / material stuff in Material Maker. Would be fairly easy I think.

    cybereality At least to export the heightmap for a tesselated plane…

    The terrain generator is NOT a map of heights. What makes only a map of heights should be called "pseudo-generator" and used only as a supplement. A good terrain generator should be able to plot rivers, streams, determine where vegetation may be located and where only rocks. I do not know at the moment good programs for this.

    Just because my thread was tagged here: I am not doing a terrain generator.

    A terrain generator finds the visible surface. There are various ways of doing this, from simplex noise to modelling natural processes. Adding surface details, scatterings of things from rocks and stones to vegetation, buildings and fauna is content creation and artwork and depends on the individual use case and the type of scenery one wants to create. Some of this can be integrated in a generator, but usually game developers would have to create their own content that fits their game or simulation. For instance, objects in a space game would look rather silly with grass and trees on them. Just like a veritable desert on earth, think Rhub al Khali.

    I would also like to point out that I am doing a seamless and fast LOD mechanism for use in games that want large worlds. At the beginning, the LOD mechanism uses prior generated heightfields or heightmaps as input. I am not doing a terrain generator because there's a plethora out there already that one can find searching "terrain generator". Some of them support earth-like vegetation and scattering of stones and some flora, but many just do the visible surface with various methods. And I am not doing content creation as this is the task of game developers.

    While heightmaps are just 2.5D, other terrain generators may use 3-dimensional algorithms to produce a voxelized terrain. These are usually slower to display, require a huge amount of memory even for small worlds, and quite some programming effort to make them look "naturally". Rendering these isn't yet suitable for large open world, naturally looking, and fast rendering real time applications. I am not talking about mindcraft.

    But that's another thing.

      Well you can write shader code in Material Maker. The height map would be easy to do with noise. And setting up water on a lower depth and dirt, grass, snow, etc. at different depths would be relatively easy, and similar to what you could do in older apps. Making rivers and laying rocks would have to do custom, but I think possible, as I said you can code custom nodes and GLSL in Material Maker. I don't think it would take more than a week or two to write the algorithm.

      Pixophir No idea why my thread was tagged here.

      I just gave a link to my post, which described in more detail what I expect from such progamma.

      Pixophir I am not doing a terrain generator because there's a plethora out there already that one can find searching "terrain generator".

      It would be very nice to provide a link to a real example of a generator that creates this kind of locality:

        It is called "erosion" and you're part of the link ;-)

        Ignoring the litho-, hydro-, atmo- and biosphere that built the stuff in the first place and delivered the processes for such formations to occur, including the algae mats.

        Seriously, would be cool to know if that's a real photography or something rendered (real time I mean, not overnight). My bet is photography because of the water. These types of things aren't suitable for real time rendering, if you haven't millions to invest and a bunch of programmers to assign, like the Unreal Engine. And even then it is huge project. Sometimes expectations and reality just won't fit together.

          I've only seen that kind of quality with 3D scans. Quixel has some stuff close, but the license only allows use with Unreal Engine. It's probably best that way anyhow, because Unreal 5 is the only engine that can handle that kind of geometry with real time performance. I guess you could fake it with good normal and depth maps, but it still probably a lot to generate procedurally and render in Godot.

            Also, world machine is still worth checking out, indie license is $119, free basic/community edition:
            https://www.world-machine.com/


            cybereality I was thinking that you might be able to generate terrain with Material Maker.

            Would need compute shaders for computing things such as errosion.


            Pixophir While heightmaps are just 2.5D

            2D, really.


            Tomcat It would be very nice to provide a link to a real example of a generator that creates this kind of locality:

            You'd have to use a voxel generator for such overhangs.


            cybereality Quixel has some stuff close, but the license only allows use with Unreal Engine.

            You mean for free, if you pay you can use them wherever.

              Pixophir It is called "erosion" and you're part of the link

              eriously, would be cool to know if that's a real photography or something rendered…

              It's called the "Natural Arch" and there are no links to generate it. Well, at least I couldn't find any. Maybe you'll be luckier. And, yep, also the difficulty of generating caves is a similar problem.

              More examples.

              Megalomaniak Would need compute shaders for computing things such as errosion.

              Unfortunately, the terrain changes over time. Over several years the changes are certainly not big and do not need to implement them in games, but in my case it is necessary.

              cybereality I guess you could fake it with good normal and depth maps, but it still probably a lot to generate procedurally and render in Godot.

              I'll probably leave it for later. In my concept to do the possible, using ready-made solutions to the maximum. Improvements can be made later, in future versions.

              Quite ideally, I try to use only free software - you could say that this is something of an experiment. But there is a deeper meaning in this — I want to offer users the ability to create content, including terrain. And I have a very vague idea of how the issue of licenses will be resolved in the case of using paid add-ons when creating a constructor for the game.

                Oh I see, yeah. You can pay $19/month for Quixel. The website makes it really confusing because I looked into it before. Might pay for a bit and do some renders, but I'd prefer to learn how to create the art myself.

                @Tomcat This is basically the state of the art right here. These are scans and expertly placed art. It would be very hard, or impossible, to get better results than this right now. And the mesh density is so large, I think only Unreal 5 can render it without crashing your system. Though I guess, in theory, it could be made procedurally. No one has figured that out, AFAIK.

                  Tomcat Unfortunately, the terrain changes over time. Over several years the changes are certainly not big and do not need to implement them in games, but in my case it is necessary.

                  You haven't yet stated what you're exactly after, but to give you guys an overview of what real erosion models may need in addition to the generated terrain surface:

                  • A representation of the ground and its strata with their hardness and coherence.
                  • A solvent with certain chemical/physical properties.
                  • Determine forces to to dissolve a grain from ground and energy to keep it suspension.
                  • Determine place and conditions of deposition, watch angle of repose.
                  • A representation of erosion mechanisms to determine surface runoff, diffusion, and possibly other things like expansion/contraction when wet/dry.
                  • The amount of solvent per unit of time and surface area and their erosional effects.
                  • A representation of the transport mechanisms, a river classification, the erosional effects they have on their riverbeds, deposition depending on transport energy.

                  And put that all in a shaker and model a numerically stable time dependent integration with a bunch of differential functions, shake (don't stir) and voila ... an erosion model. And that was rather a minimum, aeolian things not yet included. And it is not part of every terrain generator.

                  Maybe stick with stable terrain, for the time being ?

                    cybereality And the mesh density is so large, I think only Unreal 5 can render it without crashing your system. Though I guess, in theory, it could be made procedurally.

                    Pixophir And that was rather a minimum.

                    Simplify the grid and calculations (terrain quality) is quite acceptable. Full photorealism and a perfect model are not required (yet). The emphasis of the project is on social interactions (and politics). But a beautiful environment would be desirable…

                    Maybe stick with stable terrain, for the time being ?

                    For now, yeah, of course. But the possibility of minimal terramorphing (irrigation) is necessary. Something like this:

                    Pixophir And put that all in a shaker and model a numerically stable time dependent integration with a bunch of differential functions, shake (don't stir) and voila ...

                    I once looked into writing a physics engine that would work on the molecular level. Didn't write any code, but I got a ballpark estimate to the kind of computer that would be needed, and it was like as complex as the entire universe.

                    @cybereality Ok, you're kidding. But these models exist and run on a pc, also the real stuff for settlement and city planning or estimation of environmental impact of infrastructure projects may need some supercomputing here and there when official guidelines are still missing. But it is not magic. They work with well defined features, grain sizes being one of them.

                    @Tomcat Go ahead. I doubt that there has been the necessity yet to make this for Godot. Go and learn some about the theory, some C++. Then grab some open source programs to see how others addressed the problem, and then go.

                      Pixophir Go ahead. I doubt that there has been the necessity yet to make this for Godot. Go and learn some about the theory, some C++. Then grab some open source programs to see how others addressed the problem, and then go.

                      Tomcat In my concept to do the possible, using ready-made solutions to the maximum.

                      I have in front of me The Sims 3, a rather old open-world game. The minimum I set myself is to improve it a bit by adding some social interactions and allowing players to expand the game. And then improving it can be done to… infinity.

                      Pixophir But these models exist and run on a pc

                      I mean in real time. Like a realistic game, where you could pick up a glass of water, and the entire water is simulated as hydrogen and oxygen molecules. And then you could drop the glass, and the glass would shatter, based on the physical properties, and each drop of water would be simulated. I can't recall the exact numbers, but to simulate that amount of particles would require more energy than would be possible (hotter than could be cooled). I mean, maybe some crazy quantum computer could do it, I'm talking about traditional processors.

                        @cybereality I don't know enough about fluid dynamics. Former girlfriend of mine worked in the field doing math for a company that makes ventilation systems.

                        Is this really done on a particle basis ? Maybe reasonable sized quantities of particles ?

                        I recall something about Boltzman equations and probability distributions, thermal gradients, viscosity, thermal conductivity, more qualitative and very math. But that was in the late 80s. Probably something has changed meanwhile.

                          Note that for procedural terrain, which is what you want to look into instead of just "terrain generation", specifically I think you want real-time procedural terrain, we rely on fast noise algorithms that produce a height value for a 2d input coordinate. That means each input x,z only has one y height, which then excludes the possibility of caves, 90 degree cliffs. Rivers are easy enough but not rivers that actually flow up or down on the y axis.
                          There's an infinite number of ways you could combine different terrain methods to get closer and closer to the results you want, but it'll take a lot of time

                            Erich_L …we rely on fast noise algorithms that produce a height value for a 2d input coordinate. That means each input x,z only has one y height, which then excludes the possibility of caves, 90 degree cliffs.

                            So that's what I'm saying, that noise-based terrain generators are in fact pseudo-generators.

                            cybereality Nope. I'm not ready to model on an attomaric level yet. Pardon me.

                            Tomcat Unfortunately, the terrain changes over time. Over several years the changes are certainly not big and do not need to implement them in games, but in my case it is necessary.

                            In your case you could probably implement the sim in a separate thread and periodically sync result with main thread to update it. Do the sim then as a lower priority on cpu. Say update the result once per in-game year or such. You'd still have to implement some custom pixel processor to process the height-map texture/height field data. Could use gradient descent for rain/hydraulic erosion sim.

                            Pixophir Is this really done on a particle basis ? Maybe reasonable sized quantities of particles ?

                            You could probably use SPH and fairly sparse/large scale 'molecules' for approximations. But it would also look a bit toony.

                              cybereality I mean in real time. Like a realistic game, where you could pick up a glass of water, and the entire water is simulated as hydrogen and oxygen molecules. And then you could drop the glass, and the glass would shatter, based on the physical properties, and each drop of water would be simulated.

                              Water has surface tension and maximum drop size. If we talk about modeling the behavior of water, it is enough to imagine it as a bunch of balls, which is similar to SPH. The amount of computation is large, but much less than calculating each molecule.

                              Megalomaniak You could probably use SPH

                              Actually, proper simplification is the basis of modeling. This applies to my project to the fullest extent. I am now trying to understand the level of simplification that I can achieve.

                              Megalomaniak In your case you could probably implement the sim in a separate thread and periodically sync result with main thread to update it. Do the sim then as a lower priority on cpu. Say update the result once per in-game year or such.

                              Yeah, I have a lot of things that are going to be done in parallel threads. Only the minimum necessary part will be displayed on the screen. Updating the landscape can happen when the seasons change, which is not very noticeable and close to reality. For example, rivers usually change channel in the spring.

                              5 days later

                              This devs work in Unity looks pretty close to what you want (except for the dynamic damage).

                              a month later

                              Very cool, but also something that probably could be achieved even before with the particle/dynamic paint system.

                              cybereality yeah, it's very close… but unfortunately:

                              atm there is no sediment being carried, particles have no lifetime etc... i might have to read some theory on this.

                              To create a simulation similar to reality you need to be an expert in many different areas… apparently this is not feasible yet.

                              If I go back to work, I will look for simple workarounds.

                                It is feasible. All the math is known classical physics. Whether the simulation can run in a reasonable time is another question, but an approximation should be possible.

                                Feasible, if know exactly what factors need to be taken into account. And in what proportions (with what weight — the power of influence). And for a proper understanding, you need to have the appropriate specialized knowledge.

                                  Yes, what I'm saying is that you may not know all the math right now, but someone does (or various people over time). So if you read enough books or did enough research, then it would be feasible, because it is technically possible right now.

                                    cybereality So if you read enough books or did enough research, then it would be feasible

                                    Well, this is one of the main problems in the creation of games in general. Individually you can probably do almost all the elements. But there won't be enough time and energy left to put it all together into a single project and link and balance all of these elements. Therefore, my idea is to take everything ready-made (with the exception of one or two elements at most) and try to combine them. The element I absolutely have to deal with is character maturation. The main task is to work out the social interactions, taking into account the characters. Therefore, I simply do not have the resources to create a terrain generator, and I will choose from what I already have.

                                    If I ever get back to the project…

                                    Tomcat To create a simulation similar to reality you need to be an expert in many different areas… apparently this is not feasible yet.

                                    The first part has some truth in it. Let's say, some geoscience and physics don't do harm, math and programming round it up.

                                    I have linked exemplary work in my terrain thread and in this one that addresses these things. I have made a prototype based on one those papers (the one that does drainage systems and river types), but without graphical interface.

                                    Of course they exist, closed and open source, even for game environments, and certainly for engineering of projects in construction as well as environmental concerns, and for different kinds of regimes (the erosional and/or depositional circumstances and parameters). Much of this has a scientific background and isn't real time and others cost real money (like add-ons for Geographical Information Systems GIS). But, with some knowledge in math and programming one could sit down and hack something in.

                                    Tomcat Feasible, if know exactly what factors need to be taken into account. And in what proportions (with what weight — the power of influence). And for a proper understanding, you need to have the appropriate specialized knowledge.

                                    For what it is worth, I have a master in geoscience, though a long time has passed and I haven't kept up in all areas I could have a look over it, and maybe add some more knowledge through papers etc. Am offering help with the geological principles, and if it is only for writing down a specification, because I am interested in these things, too. But I won't do the programming because of lack of time and having my own ideas.

                                    Expect such things to take years to realise. And probably an adaptation of the own ideas and plans to the harsh reality. I mean, it should doable in a finite time :-)

                                      Pixophir Am offering help with the geological principles, and if it is only for writing down a specification, because I am interested in these things, too. But I won't do the programming because of lack of time and having my own ideas.

                                      This is an exceptionally interesting suggestion.

                                      Pixophir Expect such things to take years to realise.

                                      The years don't scare me. A little bit about my concept of working on the project. First of all, I'm going to make a completely simple proof-of-concept (MVP). Then I plan to complicate and refine it. And improving such a project can go on and on (as shown by the example of the Sims series). At what speed will be introduced new features — will depend on the demand for the game and which team will gather to work on the project. On my own, of course, I can not overpower mathematical modeling and programming the landscape generator.

                                      Sure, if you have a concept let's talk about it.

                                        Pixophir Sure, if you have a concept let's talk about it.

                                        Yep, the concept is in place. But there is a problem — it is stated in Russian. It requires a translation that is more complex than a simple technical one. Very roughly (exactly in a highly simplified version) I have tried to set out here. Here it is not presented in its entirety, and I fear that it may even create a false impression, due to the difficulty of translation.

                                        I mentioned it briefly here.

                                        my project is supposed to be not so much a game as a scientific entertainment - "learning by playing".

                                        I define the project as "Socio-Economic Constructor-Simulator" (SEC[K]S for short)

                                        I will try to summarize the main points:

                                        1. Externally (and partly in gameplay) game resembles The Sims 3 (open world). I call the project alternative to the Sims. You can say that this is a refined Sims with elaborated social relations.
                                        2. Human economic activity associated with changes in terrain: as artificial (canals, dams) and natural (drought and flooding) — because it is important ability to change the terrain.

                                        I am conscious of the scale of the project and do not intend to do the Ideal Dream Game right off the bat.

                                        I think to start with a small primitive settlement (like a farm), even, perhaps, — low-poly. Refining and releasing new versions of the game over time.

                                        The concept includes aspects of project development, audience coverage, and issues of commercialization.

                                        The development of the project will depend on the interest of the public.

                                        I think that for the discussion of the project, this thread will be more appropriate.

                                        24 days later

                                        When I talk about terramorphing in the game, I roughly mean this:

                                        2 months later

                                        This, of course, creepy shots, but what landscape generator allows you to implement such changes in the dynamics?

                                        4 months later