On 11/12/05, Mark Wedel < mwedel at sonic.net > wrote: > Brendan Lally wrote: > > On 11/12/05, Mark Wedel < mwedel at sonic.net > wrote: > >> Crossfire > >> is somewhat limited by only 1 aspect of terrain is available (we don't have > >> forested mountains for example). > > > > Forested mountains could exist in principle, it just requires someone > > to be able to draw alpine trees. > > > >> All that said, if we were to create another continent and wanted to start with > >> an automatic process, there are many improvments I can think of: > >> > >> 1) Create altitude map (with different seed of course) like did before. > > > > Actually, I think it might be preferable to create tectonic plate > > boundaries, and then generate heights from that, it would give a much > > greater concentration of mountains, without having them scattered > > everywhere (and impeding movement) > > I believe there are other projects out there (not related to crossfire) about > mimicing a planet creation process. If we were really serious, we should look > at those. I did ask the freeciv developers on freenode about that point a few months back, they have a random world generator which creates tile based maps. However a lot of what they had was quite hardcoded, and they don't have a nice way to analyse the squares. - Plus the scale is much larger, millions of acres per square. This was just before their 2.0 release however, they map have something more hi-jackable now. > Then with that, you use that as the blank slate to start putting towns, > dungeons, etc on. Having the above info actually makes some of that process > easier - towns wouldn't be in the middle of a mountain range, but likely along > the rivers, and most typical, at the river/sea junction. That could work, particularly if canals were added later, so that boats could travel across much of the continent (your movement code reworking could make it possible then to have narrowboats to travel between cities). > But point here is that this is still creating a map with actual forest spaces > and whatnot - you use a dynamic process to create a static map. Yes, and thereafter are forced to use that static version to edit it, this is an issue if there is a change that would be easy to make with a heightmap, but which would require extensive modification otherwise. Incidentally, it also strikes me that the best way to get a height map would be from a grayscale image. - simply say that brightness is altitude, and then lots of adjustments could be made with the use of gimp filters. > That said, if the same weather process is used to create this static map as > that used in the game, then at least as the game runs, the weather would be > consistent with the terrain. For example, right now, there are desert areas on > the map, but with the weather code, I have no idea what level of rainfall they > get, since the location of the desert was rather arbitrary set (lets put it here). Also there aren't enough deserts, but that is another point altogether. > In geological terms, rivers will carve out valleys. So in those cases where a > river flows into what would form a lake, see where the water would flow out and > make some random determination if the ground in that area is hard (rock) or soft > (earth/gravel/whatever), and thus a gorge would get eroded away to let the water > out, and you don't have a lake anymore. The issue with doing that is that it would require playing with the sea levels as water evaporates, to compensate for the water falling as rain. As long as the world is mostly land, and not water, then that will be a significant effect. Furthermore, because in the real world, water will often drain through rock until it reaches an imporous layer, there is normally a water table rather than lots of water on the surface, creating vast swamps. It would be neccessary to account for this effect to avoid a disproportiate amount of swamp, maybe there would need to be two inputs then, elevation and geology? This would also improve lake formation, since it would simply be the point at which the water table intersects with the surrounding land. To get this to vary properly then, at least an approximation to measure groundwater flow would be needed. (probably the laplace approximation would be sufficiant, but I'd need to do some reading to check on that), hmm, hacking the weather code to include a water table would have some merit to it (for one thing, the quick hack would be to determine porous rock depth by archetype, so deserts might still get rain, but they would have lots of porous rock, so the water would never stay on the surface (yes, I realise that is not even vaguely what deserts actually are, but it would at least stop puddles forming....)