[CF-Devel] Suggestion.
Adam Ashenfelter
aashenfe at bright.net
Thu Nov 15 11:57:13 CST 2001
I suggested a similar Idea a couple of months ago, but I thought I would
suggest it again before everybody started working on the huge outdoor map.
My idea was to generate a procedural map to help ease the development time,
as well as save storage space that would be used by a huge map. Here is how
it would work.
A huge map would be a procedural texture type of thing. Look up Perlin
noise on a search engine to see how this kind of thing works. Basically low
values below a certain level would be ocean, a value between that and a next
higher value would be plains. The next higher range would be foothills.
Anything above that would be rugged mountains. Forestation could ten be
decided by a secondary Perlin function modified not to happen in mountain
terrain. Even monster populations could be decided in such a way
When the server loads a area of the outdoor map from coordinates (x,y) to
(x+wid,y+depth), it would first calculate the map using the procedure. It
would then load the map file for that block. Any changed in the map file
override the object that the procedure has already put there. Thus the Map
designers can come in, and instead of creating all the details, they just
make changes(i.e. Cities, Caves, Rivers, Lakes, Mountain passes. Mazes,
Volcanoes, Towers) to what's already there.
NOTE: wid and depth are a constant value that determines how much of a map a
client loads at one time. x is divisible by wid, and y should be divisible
by depth. Thus laying out a nice grid. Map change files could then be named
world{X},{Y}
Advantages.
1. Infinitely huge and detailed maps can be mathematically generated, with
none to very little drive space used to store the map.
2. Ability to easily increase the size of the outdoor map at a later time.
3. Map would be an adventure for everyone, because of areas unexplored by
everyone.
4. Autosmooth possible. After generating the map, Tiles could automatically
be replaced by transition tiles to remove the blocky-ness from the maps.
5. The map would use a universal coordinate scheme. Thus monsters could
track players through map block without worrying about map transitions and
portals.
6. Map design times could be shortend. Depending on how many changes a
designer wants to make to a certain area. If the designer wanted to change
everything, then procedural generation could be skipped, and the change file
would be the whole map.
Disadvantages.
1. Don't know exactly what kind of hit generation a map block on the fly
would cause to the server. May result in a pause for everyone when a person
moves across maps.
Other features I would like to see: In (client/server) map design(I don't
need the server setup or the map editor to design maps, just a client, and
someone to give me design permissions for their server), Large maps loaded
as tiles. this would be the best for the above map design scheme, Multi
server capability(Different maps run on different server, One server is
authority on player stats)
Oh well I don't know how great any of these ideas are, but I hope they at
least push things in an interesting direction. Sorry for the long windedness.
Thanks
Adam Ashenfelter
More information about the crossfire
mailing list