ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/pod/random_maps.pod
(Generate patch)

Comparing deliantra/server/pod/random_maps.pod (file contents):
Revision 1.6 by root, Sat Jul 3 00:39:57 2010 UTC vs.
Revision 1.11 by root, Wed Dec 15 20:16:38 2010 UTC

1=head1 Random Map Deployment Guide 1=head1 Random Map Deployment Guide
2 2
3=head2 Using random maps 3=head2 Using random maps
4 4
5Any exit with "/!" as the destination map will generate a random map. To 5Any exit with "/!" as the destination map will generate a random map. To
6specify random map parameters, you put parameters in the message field for 6specify random map parameters, you put parameters in the message field for
7the exit. 7the exit.
8 8
9=head2 How styles work 9=head2 How styles work
10 10
11A "style" is usually a small map which contains only objects which 11A "style" is usually a small map which contains only objects which define
12define the "style". For example, a monsterstyle "orc" might be a map 12the "style". For example, a monsterstyle "orc" might be a map which has
13generated with crossedit which has six orcs, a kobold, and a troll in it. 13six orcs, a kobold, and a troll in it. When monsters are placed, the
14When monsters are placed, the generator will randomly choose monsters from the 14generator will randomly choose monsters from the "orc" style, and for this
15"orc" style, and for this example, on average, it will generate 6 orcs/troll 15example, on average, it will generate 6 orcs/troll and 1 kobold/troll. So
16and 1 kobold/troll. So orcs will be very common, and there'll be occasional 16orcs will be very common, and there'll be occasional trolls and kobolds.
17trolls and kobolds.
18 17
19In principle, you may put any object in any style map. However, the 18In principle, you may put any object in any style map. However, the
20map generator will do special things with the object depending on which 19map generator will do special things with the object depending on which
21directory it is in. Style maps are located in maps/styles/*, you may use 20directory it is in. Style maps are located in maps/styles/*, you may use
22the editor to modify the style maps, or create new ones. 21the editor to modify the style maps, or create new ones.
23 22
24Any style parameters that accept a map path accept both simple maps 23Any style parameters that accept a map path accept both simple maps
38 37
39=head2 Style Parameters 38=head2 Style Parameters
40 39
41 layoutstyle <style> (special!) Pick the layout style for the map. 40 layoutstyle <style> (special!) Pick the layout style for the map.
42 Currently, "rogue", "spiral", "maze", "cave", 41 Currently, "rogue", "spiral", "maze", "cave",
43 "snake", "onion", and "squarespiral" are allowed. 42 "castle", "snake", "onion", "squarespiral" and
43 "multiple" are allowed. See below for more
44 See below for more detail. 44 detail.
45 45
46 floorstyle <style> Load /styles/floorstyles/<style> and pick a random 46 floorstyle <style> Load /styles/floorstyles/<style> and pick a random
47 floortype from that style map for the random map. 47 floortype from that style map for the random map.
48 The entire map will be tiled with the floortype. 48 The entire map will be tiled with the floortype.
49 49
50 wallstyle <style> Load /styles/wallstyles/<style> and pick a random 50 wallstyle <style> Load /styles/wallstyles/<style> and pick a random
51 walltype from that style for the random map. All 51 walltype from that style for the random map. All
52 the walls in the map will be of this type. The 52 the walls in the map will be of this type. The
53 walls are modified on insertion so that players 53 walls are modified on insertion so that players
54 cannot go through them: this is expected for 54 cannot go through them: this is expected for
55 walls, but the random map generator makes sure of 55 walls, but the random map generator makes sure of
56 it. A <style> of "none" causes no walls or doors 56 it. A <style> of "none" causes no walls or doors
57 to be generated. 57 to be generated.
66 leading to another, harder, random map. A style of 66 leading to another, harder, random map. A style of
67 "none" causes no exits to be generated. 67 "none" causes no exits to be generated.
68 68
69 decorstyle <style> Load /styles/decorstyles/<style> and pick the 69 decorstyle <style> Load /styles/decorstyles/<style> and pick the
70 decor objects from that style to insert in the 70 decor objects from that style to insert in the
71 map. Decor objects are modified on insertion so 71 map. Decor objects are modified on insertion so
72 that they do NOT block movement, regardless of the 72 that they do NOT block movement, regardless of the
73 archetype. They are placed randomly. A style of 73 archetype. They are placed randomly. A style of
74 "none" causes no decor objects to be generated. 74 "none" causes no decor objects to be generated.
75 75
76 monsterstyle <style> Load /styles/monsterstyles/<style>, if it exists. 76 monsterstyle <style> Load /styles/monsterstyles/<style>, if it exists.
77 If it doesn't exist, then it will look for a directory 77 If it doesn't exist, then it will look for a directory
78 of that name. If it finds a directory, it will choose 78 of that name. If it finds a directory, it will choose
79 a style based on dungeon_level. It will pick the style 79 a style based on dungeon_level. It will pick the style
80 with the name <name>_# with the # closest to the 80 with the name <name>_# with the # closest to the
81 dungeon_level. Monster objects are copied from the 81 dungeon_level. Monster objects are copied from the
82 style map, so you may form style maps with modified 82 style map, so you may form style maps with modified
83 monsters which are weaker or stronger than the default 83 monsters which are weaker or stronger than the default
84 archetype.A style of "none" causes no monsters to be 84 archetype.A style of "none" causes no monsters to be
85 generated. 85 generated.
86 86
87 treasurestyle <style> (Special) If the style name chosen is contained 87 treasurestyle <style> (Special) If the style name chosen is contained
88 in the lib/treasures file, it will use 88 in the lib/treasures file, it will use
89 that for making treasures. If it is NOT 89 that for making treasures. If it is NOT
90 in the lib/treasures file, it will look up 90 in the lib/treasures file, it will look up
91 /styles/treasurestyle/<style>, and pick random 91 /styles/treasurestyle/<style>, and pick random
92 treasures from there. If <style> matches neither 92 treasures from there. If <style> matches neither
93 of these, it will generate treasures using the 93 of these, it will generate treasures using the
94 "chest" treasurelist. A style of "none" causes no 94 "chest" treasurelist. A style of "none" causes no
95 treasures to be placed. 95 treasures to be placed.
96 96
97=head2 Layout Parameters 97=head2 Layout Parameters
98 98
99 99
100 xsize <int> size of the map: if not set, random from 10 to 70 100 xsize <int> size of the map: if not set, random from 10 to 70
101 101
102 102
103 ysize <int> size of the map: if not set, random from 10 to 70 103 ysize <int> size of the map: if not set, random from 10 to 70
104 104
105 105
106 expand2x <bool> Do we double the size of the layout? This has 106 expand2x <bool> Do we double the size of the layout? This has
107 the effect of increasing the corridor widths by about 107 the effect of increasing the corridor widths by about
108 2x. Set it to a non-zero integer if this is desired. 108 2x. Set it to a non-zero integer if this is desired.
109 109
110 110
111 symmetry <sym> symmetry of the layout: You can cause the map generator 111 symmetry <sym> symmetry of the layout: You can cause the map generator
112 to generate a symmetrical layout by using this flag. 112 to generate a symmetrical layout by using this flag.
113 symmetry 0 random symmetry 113 symmetry 0 random symmetry
114 symmetry 1 no symmetry 114 symmetry 1 no symmetry
115 symmetry 2 symmetry about the vertical centerline 115 symmetry 2 symmetry about the vertical centerline
116 symmetry 3 symmetry about the horizontal centerline 116 symmetry 3 symmetry about the horizontal centerline
117 symmetry 4 both 2 and 3 symmetry 117 symmetry 4 both 2 and 3 symmetry
118 118
119 119
120 Layout Style: Parameter: Effect: 120 Layout Style: Parameter: Effect:
121 121
122 122
123 maze maze_type 0: roomy (open space with some walls) 123 maze maze_type 0: roomy (open space with some walls)
124 1: sparse (maze with some larger open spaces) 124 1: sparse (maze with some larger open spaces)
125 2: braided (few dead ends) 125 2: braided (few dead ends)
126 3: closed (complete maze) 126 3: closed (complete maze)
127 default: random 127 default: random
128 128
129 cave cave_type 0: very rough, mazelike 129 cave cave_type 0: very rough, mazelike
130 1: round 1-2 space corridors, often elliptic 130 1: round 1-2 space corridors, often elliptic
131 2: more open, roundish 131 2: more open, roundish
132 3: wide open areas, roundish 132 3: wide open areas, roundish
133 133
134 50% of the time a maze layout will be "doorified", meaning that doors 134 50% of the time a maze layout will be "doorified", meaning that doors
135 will be placed at random in the maze. 135 will be placed at random in the maze.
136 136
137 onion layoutoptions1 0 (default) Pick random options 137 onion layoutoptions1 0 (default) Pick random options
138 See "Onion Rooms" below for 138 See "Onion Rooms" below for
139 the rest of the options. 139 the rest of the options.
140 140
141 onion layoutoptions2 0 (default) Pick a random number of 141 onion layoutoptions2 0 (default) Pick a random number of
142 "onion layers" 142 "onion layers"
143 143
144=head2 Map generation parameters 144=head2 Map generation parameters
145 145
146 146
147 difficulty Set the map difficulty. Has no relation to the 147 difficulty Set the map difficulty. Has no relation to the
148 "difficulty" defined in common/*.c. 148 "difficulty" defined in common/*.c.
149 If nonzero, this map and its descendants will 149 If nonzero, this map and its descendants will
150 have the same difficulty. If zero, it'll be set 150 have the same difficulty. If zero, it'll be set
151 to the value of dungeon_level and incremeneted with 151 to the value of dungeon_level and incremeneted with
152 each recursive map. 152 each recursive map.
153 153
154 difficulty_increase Sets how fast the difficulty increases. This value 154 difficulty_increase Sets how fast the difficulty increases. This value
155 is a float - the default value is 1.0. Reducing 155 is a float - the default value is 1.0. Reducing
156 This only applies to map without a default 156 This only applies to map without a default
157 difficulty set (but that could change in the 157 difficulty set (but that could change in the
158 future). For each level of a map, the difficulty 158 future). For each level of a map, the difficulty
159 is set to depth * difficulty_increase. Setting 159 is set to depth * difficulty_increase. Setting
160 this parameter to 0.5 (or other values between 0 160 this parameter to 0.5 (or other values between 0
161 and 1) is a way to have deep dungeons that do not 161 and 1) is a way to have deep dungeons that do not
162 increase in difficulty all that rapidly. 162 increase in difficulty all that rapidly.
163 163
164 164
165 dungeon_level Another way of setting the map difficulty. This 165 dungeon_level Another way of setting the map difficulty. This
166 has no relation to the "difficulty" defined in 166 has no relation to the "difficulty" defined in
167 the common/*.c source code. The effect is to pick 167 the common/*.c source code. The effect is to pick
168 which monsters to use: for example, if the 168 which monsters to use: for example, if the
169 monsterstyle 169 monsterstyle
170 is "humanoid" and the dungeonlevel is 9, the style 170 is "humanoid" and the dungeonlevel is 9, the style
171 map /styles/monsterstyles/humanoid/humanoid_9 will be 171 map /styles/monsterstyles/humanoid/humanoid_9 will be
172 the style from which monsters are chosen. After the 172 the style from which monsters are chosen. After the
173 monsters are placed, the map 173 monsters are placed, the map
174 difficulty is set according 174 difficulty is set according
175 to the server's rule, for treasure purposes. 175 to the server's rule, for treasure purposes.
176 176
177 dungeon_depth The map generated will have an exit to another 177 dungeon_depth The map generated will have an exit to another
178 random map of the same style if 178 random map of the same style if
179 dungeon_level < dungeon_depth. The next random map 179 dungeon_level < dungeon_depth. The next random map
180 will have dungeon_level incremented. If dungeon_level 180 will have dungeon_level incremented. If dungeon_level
181 >= dungeon_depth, no exit to a more difficult map 181 >= dungeon_depth, no exit to a more difficult map
182 will be made. 182 will be made.
183 183
184 orientation How the exits look: 184 orientation How the exits look:
185 0 random "orientation" 185 0 random "orientation"
186 1 player arrives in the map at 186 1 player arrives in the map at
187 a "stairs up", he goes to harder 187 a "stairs up", he goes to harder
188 levels by finding a "stairs down" 188 levels by finding a "stairs down"
189 2 reverse of 1 189 2 reverse of 1
190 3-6 exits are horizontal. In the future 190 3-6 exits are horizontal. In the future
191 these will be made to make exits to 191 these will be made to make exits to
192 rightward, leftward, north and south. 192 rightward, leftward, north and south.
193 193
194 rotate 0 do not randomly rotate the map
195 1 randomly rotate by 90, 180, 270° (default)
196
194 origin_x <You shouldn't need to set this> The exit which 197 origin_x <You shouldn't need to set this> The exit which
195 leads back from this map will go to this x. 198 leads back from this map will go to this x.
196 199
197 origin_y Like origin_x 200 origin_y Like origin_x
198 201
199 random_seed Set the random seed number used. This number 202 random_seed Set the random seed number used. This number
200 completely determines the random numbers: a map 203 completely determines the random numbers: a map
201 with the same random seed and other parameters 204 with the same random seed and other parameters
202 will always produce exactly the same map. 205 will always produce exactly the same map.
203 206
204 final_map When dungeon_level >= dungeon_depth, another exit 207 final_map When dungeon_level >= dungeon_depth, another exit
205 isn't usually made. However, if final_map is set 208 isn't usually made. However, if final_map is set
206 to a map's name, then an exit to this map will 209 to a map's name, then an exit to this map will
207 be made. 210 be made.
208 211
209 exit_on_final_map The default action is to place an exit on 212 exit_on_final_map The default action is to place an exit on
210 the final map. When explicitly set to 'no' this will 213 the final map. When explicitly set to 'no' this will
211 not place a return exit on the final_map. 214 not place a return exit on the final_map.
212 If you use this setting YOU MUST PROVIDE A WAY BACK IN THE FINAL MAP! 215 If you use this setting YOU MUST PROVIDE A WAY BACK IN THE FINAL MAP!
213 216
214=head2 Misc. Parameters 217=head2 Misc. Parameters
215 218
216 decoroptions <option> Currently, ignored. Possibly in the future it 219 decoroptions <option> Currently, ignored. Possibly in the future it
217 will cause the decor to be patterned in some way, 220 will cause the decor to be patterned in some way,
218 such as <put decor along walls> or <put decor 221 such as <put decor along walls> or <put decor
219 in center of rooms> 222 in center of rooms>
220 223
221 224
222 treasureoptions <opt> Parameterizes how the treasure is placed and protected. 225 treasureoptions <opt> Parameterizes how the treasure is placed and protected.
223 0 choose random treasure options 226 0 choose random treasure options
224 1 concentrate the treasure on the map in a few locations 227 1 concentrate the treasure on the map in a few locations
225 2 hide the treasure behind hidden doors 228 2 hide the treasure behind hidden doors
226 4 put the treasure in a chest which must be unlocked. 229 4 put the treasure in a chest which must be unlocked.
227 (a key will be placed somewhere in the map, probably 230 (a key will be placed somewhere in the map, probably
228 in a monster.) 231 in a monster.)
229 8 Put locked doors around the treasure (a key to each 232 8 Put locked doors around the treasure (a key to each
230 door will be placed in a monster or somewhere reachable 233 door will be placed in a monster or somewhere reachable
231 by the player: one key on each side of the door.) 234 by the player: one key on each side of the door.)
232 In onion maps, the treasure is co-located with the 235 In onion maps, the treasure is co-located with the
233 exit to harder levels, so this makes the exit harder 236 exit to harder levels, so this makes the exit harder
234 to get to. 237 to get to.
235 16 Trap the treasure. A trap from /styles/trapstyles/traps 238 16 Trap the treasure. A trap from /styles/trapstyles/traps
236 is selected and inserted into the treasure chest. 239 is selected and inserted into the treasure chest.
237 32 sparse treasure. 1/2 as much treasure is generated. 240 32 sparse treasure. 1/2 as much treasure is generated.
238 64 rich treasure. 2x as much treasure is generated. 241 64 rich treasure. 2x as much treasure is generated.
239 242
240 If option 1 is not set, options 2-16 are ignored. Options 243 If option 1 is not set, options 2-16 are ignored. Options
241 may be added together: treasureoptions 3 means treasure 244 may be added together: treasureoptions 3 means treasure
242 optons 1 and 2 are set. 245 optons 1 and 2 are set.
243 246
244=head2 Map Layout styles 247=head2 Map Layout styles
245 248
246=head3 Onion Maps 249=head3 Onion Maps
247 250
248Onion rooms are like this: 251Onion rooms are like this:
249 252
250 regular random 253 regular random
251 centered, linear onion: bottom/right centered, nonlinear: 254 centered, linear onion: bottom/right centered, nonlinear:
252 255
253 ######################### ######################### 256 ######################### #########################
254 # # # # 257 # # # #
255 # ######## ########## # # ##################### 258 # ######## ########## # # #####################
265 # #################### # # # # # # 268 # #################### # # # # # #
266 # # # # # # # # 269 # # # # # # # #
267 ######################### ######################### 270 ######################### #########################
268 271
269 options: 272 options:
270 0 Pick random options below 273 0 Pick random options below
271 1 "centered" 274 1 "centered"
272 2 linear doors (default is nonlinear) 275 2 linear doors (default is nonlinear)
273 4 bottom "centered" 276 4 bottom "centered"
274 8 bottom-right centered 277 8 bottom-right centered
275 16 outer wall off: i.e., no outer wall. 278 16 outer wall off: i.e., no outer wall.
276 32 irregularly/randomly spaced layers (default: regular) 279 32 irregularly/randomly spaced layers (default: regular)
277 280
278=head3 Maze Maps 281=head3 Maze Maps
279 282
280Maze maps are like this: 283Maze maps are like this:
281 284
555 # ### ######### # ### # 558 # ### ######### # ### #
556 # # ##### ## ######## # 559 # # ##### ## ######## #
557 # #### ####### # 560 # #### ####### #
558 ######################################## 561 ########################################
559 562
563=head3 Castle layouts
564
565Castles are similar to caves, except they generate very straight dungeon
566features (not unlike roguelike layouts).
567
568 ########################################
569 #### #################### ##
570 #### ###### ######### ##
571 #### ### ####### # ######### ##
572 #### D D ## ##### ##
573 #####D## ##### D ##
574 ##### # # # ## ##
575 ##### # #### # ##########
576 ##### # # # # D #
577 ##### # # # ######## #D# #
578 ##### # #D# # ######### ########
579 ##### ######### # D #######
580 ##### ########## D ##D########
581 ###### ### #### ###### #D# # #####
582 ##### #D# ## ### D # #####
583 ##### # # ## ###### #####
584 ##### # # ### ###### #####
585 #######D###D### ### ## # ##
586 ###### #### ### ## # ##
587 ###### # ##### ## ##
588 ###### # ####### ## # ##
589 ###### D ############# # ##
590 ########### ############# # ##
591 ########### ################## ##
592 ########################################
593
560=head3 Spiral Maps 594=head3 Spiral Maps
561 595
562A Spiral Map: 596A Spiral Map:
563 597
564 ########################### 598 ###########################
586 ########################### 620 ###########################
587 621
588 layoutoptions1: 622 layoutoptions1:
589 623
590 0 pick random options 624 0 pick random options
591 1 Regular spiral: distance increases constantly with angle 625 1 Regular spiral: distance increases constantly with angle
592 2 Fine spiral: most coils possible are fit in 626 2 Fine spiral: most coils possible are fit in
593 4 Fit Spiral: scale spiral to fit rectanglar region 627 4 Fit Spiral: scale spiral to fit rectanglar region
594 (i.e., the spiral will look elliptical) 628 (i.e., the spiral will look elliptical)
595 629
596=head3 Rogue-like Maps 630=head3 Rogue-like Maps
597 631
598A Rogue-like Map: 632A Rogue-like Map:
736 # # # ####D#### # # # 770 # # # ####D#### # # #
737 ##D##########D# #D##########D## 771 ##D##########D# #D##########D##
738 # # < # # 772 # # < # #
739 ##################################### 773 #####################################
740 774
775=head2 Multiple layouts
776
777The layoutstyle "multiple" divides the map into many areas
778and uses random layout styles in each area. Works best with
779very high or wide maps and fewer levels.
780
741=head2 An example input file 781=head2 An example input file
742 782
743 layoutstyle onion 783 layoutstyle onion
744 monsterstyle humanoid 784 monsterstyle humanoid
745 dungeon_depth 3 785 dungeon_depth 3

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines