--- deliantra/server/pod/random_maps.pod 2010/06/29 18:19:01 1.1 +++ deliantra/server/pod/random_maps.pod 2010/06/29 18:27:02 1.2 @@ -122,7 +122,7 @@ Layout Style: Parameter: Effect: - maze maze_type 0: rooms (open space with some walls) + maze maze_type 0: roomy (open space with some walls) 1: sparse (maze with some larger open spaces) 2: braided (few dead ends) 3: closed (complete maze) @@ -236,10 +236,10 @@ 32 sparse treasure. 1/2 as much treasure is generated. 64 rich treasure. 2x as much treasure is generated. - If option 1 is not set, options 2-16 are ignored. Options - may be added together: treasureoptions 3 means treasure - optons 1 and 2 are set. - + If option 1 is not set, options 2-16 are ignored. Options + may be added together: treasureoptions 3 means treasure + optons 1 and 2 are set. + =head2 Map Layout styles =head3 Onion Maps @@ -279,60 +279,117 @@ Maze maps are like this: +A "roomy" maze: + + ######################################## + # # + # # # # # # # # # + # ## ## # ### # # ## # + # ### # # # ## # # + # ## ## # ## # # ## # + # ## # # ## # # # # # ## ## # + # # ## # # #### # #### # # # + # ## ## ## ## # # # ## ## # # + # # # ## # # # # # + # ## ### ### ## #### ## # + # ## #### ### # # + # ## ### ### # # ## # + # ## ### # ## # # # # + # ### ### # ### # #### # + # # ## ## ##### # ## # + # # ## # # ##### ## # # + # ## ## ## # # # ## # + # ## ### # ## ## # ##### # + # #### # # # ### # # # + # # ### ## ## # # # # # + # ## ## # # ## # # + # # #### ## #### # + # ## + ######################################## + A "sparse" maze: - ######################################## - # # # # # # # # # # # # # # - # # # # # # # # # # # # - #### ## ## # # ### # ## # # # ## - # ##### # ## # # # ## ### ## ### # - ## ### # # # # - # ### # # #### ### # - # # ## ## ## # # ### - # ###### # ### # # ## # # - # # ## #### ## # # # # # - # # ## ## ## ### ## # # # # # - #### ## ## ## ## ### # ### ### - # # ## ##### # ### # - ## ## # ### # ## ## - # ## ## ## # ## # ### # - ## # # # # # # # ## # - # ### ### ## # ## ## #### ## # # - ## # # # # # # # #### # ### - # ### ## ## # ## ## ## # ### # - ## # ## # # # # # # ## # ## - # ##### ## ## #### ## # # # ## # - ## # # # # ## # ### # - # # # # # # # # # # # # # # - ######################################## + ######################################## + # # # # # # # # # # # # # # # + # # # # # # # # # # # # # # + #### # # ## ### # # # ## ## # + # # ### # ## # ## ## #### ## + ## # ## # ## # # # # + # ## #### ## ## # ## # ## #### + #### # ## ### # ## # # + # ## ## ## ## # #### # + #### # ### ## ## ## ## # + # # ### # # # # ### + # ##### #### # #### ### ### # + ## # # ### # #### + # ## # ## ## ### # + ## ## ### #### ##### # # + # # # ## # # ## # + #### #### ## ### #### # # # + # # ## ## ## # # # + ### ##### # #### #### # ## # ## # + # # # ## ## # ## # # # + ##### ## ## # ## ## ## # ## # # # + # # # # # # ## # ## # # ### + # #### # # ## ### # ## # # ## ## # # + # # # # # # # # # # # # # + ######################################## + +A "braided" maze: + + ######################################## + # # # # # # # # # # # # # # # + # # # # # # # # # # ## + # ## # # ## # # # + # ## ## # ## # ## # ## ####### + # ### # # # # # # ## # # + # # # # # # ### ### #### ## # + ### #### ## ### # # # ## ## + # # # # # ## # # + # ## ## ###### ## ### ## #### #### + #### # ### # ## # # # + # ## # # # ## # ####### ## #### + #### # # ### # # # # # + # ## ### # ## # ## ### # ## + # # ## ##### # # ### ## # # # + ## # # ## ### ## ## # + # # # # # #### # ### ### + # # # ## ##### # # # ## # # # + # ## ## # # ## ## # ### # # + # # ### ###### # # # # # # + ## # ## # # # ## ## # ### # + # # ### # ##### # # # ## # # + # ## ## ### # ## # # # # ### # + # # # # # # # # # # # # + ######################################## A "full" maze: - ######################################## - # # # # # # # - # # # # # # # # # # # # # # # - ### ## ## ######## ### ### ### # # - # # # ## # ### ### # ### ## - # ##### ### ##### ## ## ## # # - # # # ## # # ## #### # # # ## - # #### ## ### #### # ## ## ### # # # - # # # # # ### # # # # - # ### ## ## ### #### #### ## # ### - # # # # # # #### ## # # ## # # - # # ## #### ## # ## # ## # # - # #### ## # ### #### # ### # #### # - # # # # # # # # ## #### # # - # ##### #### ## ### # # ## # - # ## ## # ## ## ## ##### # # # - # # # # ## # # # ## # # ### # # - ## ### # ## # # #### ### # # # ## # - # # # # ## # # # ## ### # # - ## # #### ## # # ###### # # #### # - # # #### # ###### ## ### # # - ### # ## ## # # # ## # - # # # # # # # # # # # # # - ######################################## - + ######################################## + # # # # # # # # # # # # + # # # # # # # # # # # # # # # + ## #### ### #### #### #### ## ### # # + # ## # # # # ### ### # + #### ##### #### ## # # #### # # + # ## # # ## # ## # ### ## ## # + # ### ## ## # # # # # # + # ### ## ## # ### # ##### ## + # ## ## ###### ## # ## #### # # # + ### # # # # ## # # ######## + # ####### # ## # ### #### # # + # # # # #### ## # ### ## + #### # # # ## ## #### #### # # # + # ### # ## ## # ### ### ## + # # ## ### # ### ### # # # + #### #### #### # ## # # # ### # + # ## # ## # # # ## ## # ## # + # #### #### # ## ### # # ## # ### + # ### ## # # # #### ##### # + # #### #### ### ### # # # # + # ## # # ### # # ##### # + # ### #### ###### ##### ####### # # + # # # # # # # # # + ######################################## =head3 Spiral Maps @@ -368,7 +425,7 @@ 1 Regular spiral: distance increases constantly with angle 2 Fine spiral: most coils possible are fit in 4 Fit Spiral: scale spiral to fit rectanglar region - (i.e., the spiral will look elliptical) + (i.e., the spiral will look elliptical) =head3 Rogue-like Maps: @@ -530,142 +587,6 @@ wallstyle wooden symmetry 1 - -=head2 Below is the original proposal - - Random Maps - - The major thing still missing from Crossfire, I think, is a good facility -for generating random maps: - - 1. They can be used by map creators to create a basic layout for his -quest or whatever, so that he need not start from a blank canvas. - - 2. Buildings with nothing else in them can have a random map in them. -In fact, we could have the same random map generated every time someone -enters a particular building (pick the seed off of the parent map name -and the entrance location!) This would transform the world from finite -to infinite. - - Needed Features: - - Styles: - - Random maps would need to be "styled": walls, doors, monsters, and other -decor should be picked from certain subsets of the total object set. An inn -has a very different style than a castle, and from a dungeon, in both walls, -decor, and monsters. - - Ubiquity: (map configurable: unspecified==no random maps) - - Any exit which does not have a destination specified should lead to -a random map, but WITH a sign saying "this is a random map". - - Identifiability: (configurable) - - Random maps includes a sign -which states that the map is random. - - Recursion: - - Random maps should optionally have another entrance to a random map of -the same style. The depth of recursion should be specifiable. - - Difficulty: - - Difficulty should be specifiable. Also, whether the map advances in -difficult with recursion should be specified. - - Quests: - - It would be cool if random quests could be implemented, too. I won't -put this in immediately. - - Standalone operation: - - It'd be cool if the random map generator operated standalone, so that -map designers could use it easily as well as the server could at exits. - - Size: - - Random maps should be sized. A big, multi-square exit should have a bigger -random map to it, while a small house should have a small interior. - - Inheritance: - - The type and location of the exit should imply something about its random -interior. A shop exit should have a shop interior, a house should have a -home interior, etc, a difficult map should have difficult sub-maps. - - Directedness: - - Buildings should have random maps with stairs up to the next random map, -dungeons with stairs down, etc. - - What does everyone think? Anyone willing to help? Has anyone already - made so much progress on this that I should just help them instead of - starting one myself? - - - Algorithms: - - Maze algorithm: start from a wall point, move forward left or right -or start from a new wall point, at random, recursively. If blocked, -pop the stack until you can walk again. If you return all the way, -a maze is generated. - - - Specs for a room algorithm: - Can you write for a function: - - char **room_gen_corridored(int xsize, int ysize, int option); - - which allocates and returns a char[xsize][ysize], with # being a wall - and a char value of 0 indicating nothing. - like:: - - ###################### - # # # # - # # # # - # # - # # # # - ######### ########## - # # # # - # # - # # # # - # # # # - ######### ########## - # # # # - # # - # # # # - ###################### - - Some suggested options: - option: - 0 random choice of one of the other options below * - 1 vertical centered corridor * - 2 horizontal centered corridor * - 4 vertical corridor on the right-hand wall * - 8 vertical corridor on the left-hand wall - 16 horizontal corridor on the bottom wall * - 32 horizontal corridor on the top wall - - The *'d ones are the important ones. - - Options 4 and 16 are important so I can easily create reasonable - bilaterally and 4-way symmetric maps, as in a castle. - - If you're really ambitious, you could make it so you could ADD the - options to get something like 10: centered vertical corridor and right-hand - corridor. - - One restriction you must satisfy, however, is that every place on the map - be accessible from everywhere else. - - Feel free to contact me with any questons. - - peterm@langmuir.eecs.berkeley.edu - =head1 AUTHORS The original document was taken from Crossfire and subsequently modified by Marc Lehmann.