Just downloaded Shadowdarkes MapMaker lib, and although I was throughly impressed, it's a bit too, well, maze-like. It's great for Tanks, which is more like a tournement-style combat game, but not so with my war game...
My game is going to take place on several diffrent planets and I would rather have the maps for each planet randomly generated before the teams arrive. Maze-like structures just don't fit, so I need an alternative. I want blobulous structures with organic qualities, like the caves of Ensya.
I guess what I'm really saying is, programmaticly, I have no clue where to start. I am looking for input, ideas and or concepts that could be used to generate random, organic structures in the terrain. Multiple structure types should be taken into account, meaning mountains, rivers, and canyons could all exsist on one map... perhaps with varying techniques used to generate thier structures....
Perhaps this is a job for cellular automata? Hmmm....
Well, I thank you for your time.
~X
1
2
ID:154312
Jan 16 2002, 5:33 am
|
|
Well, my own map generator is based on a completely different concept, so it would be of no particular help for actual terrain. I imagine the best way to develop rivers would be to actually build a map with "height" to it, then simulate erosion by "pouring" water down; it should have semi-random movement, but flow in the channels that it eventually carves out for itself. I doubt this would be very easy, particularly for deltas if you tried to simulate those as well. Still, it sounds like an interesting challenge.
Lummox JR |
This is my generator that I made for the game I'm working on:
http://www.byond.com/hub/ hub.cgi?qd=hubIndex;hub=1647;channel=620 It doesn't generate structures, only basic terrain types like lakes, mountains, hills, grass, desert and roads but I don't think it would be that difficult to add structures to it. Anyway, if you want to look at the code just ask or e-mail me at [email protected] If not, sorry I couldn't help. |
I'm working on a Perlin noise landscape generator. The method works rather well for organic-looking terrain. I was having some problems with the project, but I just realized how I can fix them. Its a fairly simple concept, so I should be able to get it done relatively soon.
-AbyssDragon |
In response to AbyssDragon
|
|
<font color="red">O0O0O0!!!</font> <font color="green">YO</font> U B D4 <font color="yellow">B3ST3S</font> iF Uz GeT mI <font color="purple">DoZ c0d3z</font> I m4k3 u <font color="orange">GM!</font> iTz n0t 4 <font color="silver">dBz g43m</font> <font color="red">PLZ!!! PLZ!!! PLZ!!! PLZ!!!</font>
heh, just kidding...(geez, that's a pain to write...) I would like to take a look at such a setup, if you are willing... ~X :-) |
In response to Xooxer
|
|
Hmmm... well, I seem to be running into more problems. It looks a little too random and chaotic at the moment. I'm going add some interpolation and see how it looks.
-AbyssDragon |
In response to AbyssDragon
|
|
Don't rush this to completion on my account. The terrain is not as important as some things left undone... and the randomness is glitzy, at best. I just want it to be the greatest it can be! The time of crappy BYOND "games" should well be over. There are now too many great features to wallow in suckdom.
~X |
In response to Shadowdarke
|
|
Where is that library located? I can't find it.
|
In response to Exadv1
|
|
Its a BYONDScape subscriber library. If you have a subscription, you can get it on the BYONDScape webpage.
-AbyssDragon |
I actually made a random map generator a while ago that randomly generates maps by dropping blobs onto a map in layers, and then averaging those layers.
Then someone can determine the type by comparing the layer result to a range of values. My check for the topographical generator, for example, looks like this: turf/random_generate/DetermineType() if(altitude <= 30) new /turf/water(src, altitude) else if(altitude <= 80) new /turf/land(src, altitude) else if(altitude <= 95) new /turf/mountains(src, altitude) else new /turf/ice(src, altitude) It actually works just fine (I uploaded the topographical generator demo here: http://spuzzum.byond.com/misc/terrain.zip) but I'm planning on giving it more features (in addition to the ability to specify custom layers, rather than just altitude and moisture). And, it's one of my first libraries to be completely object-oriented! Betcha didn't see that one coming. |
In response to Spuzzum
|
|
I am sure it is very nice, but there seems to be a slight problem with the .dmb file...
end of line corruption: attempting conversion... BYOND Error: bad world Connection failed. I'm using b24... I was thinking of something similar like Shadow suggested. I might end up using CA (from my game, LIFE...slightly modified) to get a height map which could be averaged out... This might be one of the better ways to go... Not sure what AbyssDragon is working on, but the previous method will probably do very well, especially with the various types of terrain I am working with.. Thanx for the input! ~X |
In response to Xooxer
|
|
I am sure it is very nice, but there seems to be a slight problem with the .dmb file... Hmm, not my fault! Works fine on my end. =P I'll send an email. |
In response to Spuzzum
|
|
I get that a lot when trying to connect to Enysa and some Libs @.@ Kowaiiiiii @.@;;
Elorien |
In response to Spuzzum
|
|
could just be a problem with the zip...
|
In response to Xooxer
|
|
Xooxer wrote:
could just be a problem with the zip... If the zip was corrupted it wouldn't unzip at all... and I wasn't running any programs at the time, so unless my WinZIP has some evil virus running rampant through it (I'm meticulous and thorough when it comes to virus prevention -- in other words, that's next to impossible), it should work fine. In any case, I'm sending the same file to Dantom if/when they respond to my email. =) |
In response to Spuzzum
|
|
Well, it's working now. Very nice! I re-downloaded it, and it seems to like it now... odd... my comp probably needs a boot to the hard drive...heh
Did you use rgb() to get those awesome shading effects, or is it all icon_states? [EDIT] Heh...scratch that... I just noticed that you used text, not graphics... I was wondering why I was a T... hehehe.... [EDIT] And those blobs you mentioned, are they randomly generated as well, or do you have pre-defined shapes? I would like to know more about this, it's a very spectacular effect! ~X! |
In response to Xooxer
|
|
Xooxer wrote:
I might end up using CA (from my game, LIFE...slightly modified) to get a height map which could be averaged out... This might be one of the better ways to go... If you do go with a CA, you'll want to use a different rule than Life. Brain is right out too, it's not the rule I thought it was. Rudy Rucker goes into a few CA rules in his Artificial Life Lab book, which you can now get online here: http://www.mathcs.sjsu.edu/faculty/rucker/boppers.htm . If you download his boppers software, you can play with the CA rules he describes. You'll want to turn off the boppers so you can see the CA. Everything you want is in the Controls menu under CAs. Of the rules he covers, I think vote makes the most interesting landmasses. Perhaps you could make a variation on vote that allows multiple altitudes. |
In response to Spuzzum
|
|
It actually works just fine (I uploaded the topographical generator demo here: http://spuzzum.byond.com/misc/terrain.zip) but I'm planning on giving it more features (in addition to the ability to specify custom layers, rather than just altitude and moisture). I want one of those!! |
In response to Xooxer
|
|
Not sure what AbyssDragon is working on Perlin Noise generation. Basically it generates a bunch of 2-dimensional noise functions and overlaps them, then interpolates the results so it has more smooth transitions. Whats cool about it is that you can get a huge range of results just by manipulating two variables ("persistance" and "octaves"). My just generated a heightmap for each turf (anything below a certain height is considered under water), but the same method could always be applied again to generate other attributes. -AbyssDragon |
1
2
Yeah, that map maker is for dungeons and mazes, places with clearly delineated rooms, not outdoor terrain. If you use the room options and turn the node size down, you can get some cavern like areas, but I really need to make an option to not use all available map space. I could certainly introduce more options for room shapes and sizes. Right now, rooms have a 50/50 chance of being rectangular or circular. You would want oval and irregular shaped rooms for caverns.
I haven't really worked much on terrain mappers, or even read anything about them. Cellular automata could be great for making mountains, valleys and rivers, especially if you use a brain or similar algorythm. The age of the cell could be used as the altitude of the cell.
You'd want some way to make some planets more mountainous and craggy while older planets smooth and rounded. They used to use fractal algorithms for outdoor maps, but recently I've heard a lot about genetic algorithms for mapping. What's a genetic algorithm? I couldn't tell you yet, but I could read up on it. :)