ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/doc/Developers/mapguide
Revision: 1.2
Committed: Thu Sep 7 21:42:49 2006 UTC (17 years, 8 months ago) by pippijn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
State: FILE REMOVED
Log Message:
Moved documents to doc/historic

File Contents

# Content
1 This is a guide on what is an acceptable map and what is unacceptable.
2 Only acceptable maps will be put in the official Crossfire map distribution
3
4 1) Check that all exits lead where they are supposed to. Unless there is
5 a specific reason an exit leads only one direction (like a trap door or
6 perhaps a teleporter), players should be able to exit back from where they
7 came from right when they enter the map.
8
9 One way exits/entrances should only be used on objects in which it is
10 obvious it is one way. A house is not an obvious one way entrance. Remember,
11 players may not have the three hours of time it takes to find the exit
12 after being trapped in a map (a work around for this can be have the trap
13 lead to a safe place with no exit which contains a savebed. Thus, the
14 player could save and come back at a later time to find the exit.)
15
16 2.1) Try to make sure the maps are multi player accessible. In towns, this
17 means the road should be at least a couple squares wide, buildings should not
18 be trapped in corners in which case one character standing in front blocks
19 access, etc.
20
21 2.2) Try to make corridors in dungeons or mazes a few squares wide -
22 especially if there is only a single path. If it is a maze with several
23 different paths, single width corridors are acceptable. The main problem
24 here are big labyrinths in which only one monster attacks at a time, and
25 which there is only 1 or two routes. If two players enter such a map, the
26 one that went in first will be in the lead the entire time.
27
28 2.3) Avoid spiral or single path mazes that just have monsters lining the
29 corridor. These are not very good for multiple players, not particularly
30 interesting (map justs consists of killing all the monsters), and tend to be
31 an easy and safe way to gain experience.
32
33 3) Don't put:
34
35 3.1) extremely valuable treasure right next to the entrance, or
36 nearby. Players should need to work to get treasure. If the treasure is
37 fairly worthless (food, or non magical items), this would be acceptable.
38 But a character should not be able to pop in, pick up a potion, spellbook,
39 or a lot of diamonds, and then pop out again, without ever meeting
40 a monster.
41
42 3.2) Don't put monsters of high experience point near to entrance where they
43 are trapped. Low level player could boost their experience high by using some
44 weapons or spells from distance without danger. For example find a trapped
45 troll and get wand of fireball.
46
47 3.3) monsters on top of other monsters. A troll should not be sitting on
48 top of an oriental dragon. The only exception to this would be if a monster
49 could be on top of another monster (making sense) and hiding it at the same
50 time. A troll on top of an oriental dragon does not make sense (could not
51 fit), nor can the troll hide the oriental dragon. Using tricks like these
52 which are only applicable due to display limitations is something that
53 should not be done, nor should the player need to click on every monster he
54 encounters to see if something is below it. (as a side note, doing this
55 will tend to lock the monsters into position, making them unable to move.)
56
57 3.4) Large groups of monsters that can be killed quickly with spells. A
58 fairly popular tactic to make high level maps is just to put 30 dragons (or
59 other tough monsters) in a big room. Do not do this. All the player needs
60 to do is cast a dozen icestorms, and quickly gets millions of experience.
61 Likewise, it is unlikely that any more than 2 or 3 large (multisquare)
62 monsters will be able to attack a player or party at once - the remaining 25
63 will be blocked from doing anything. This then makes it so that having 30
64 dragons is not any tougher than having 3.
65
66 If you want to make a high level map, instead of tossing a lot of monsters
67 on it, take existing monsters and make them tougher. Increase their
68 hit points, level (which then means spells they use do more damage), add
69 immunities or protections, remove vulnerabilities, change attack types, etc.
70 Try not to totally change the characteristics of a known monster - a normal
71 dragon should still be dragon like. Also, remember to adjust experience
72 that the monster gives.
73
74 4) Try to keep the treasure in line with the difficulty. 5 potions should
75 not be given out for defeating orcs or gnolls (even if there are a lot
76 of them), but if you need to defeat several dragons to get to the
77 potions, that is fine. Likewise, if it is likely a lot of spells will be
78 needed to defeat the monster, and those spells have a chance of destroying
79 the items, then perhaps a few extra items to take this into consideration
80 is not a bad idea.
81
82 5) If use of a specific skill/class/spell is needed to complete the map,
83 that should be stated near the map entrance. How clearly this is stated
84 depends on the circumstance. If use of a certain skill is needed, there is
85 probably no good way other than to state that a skill is needed. If use of
86 a certain spell is needed, stating that a spell caster of XX level might be
87 sufficient, with the assumption that a spellcaster of that level would have
88 the spell. It is safe to assume that all characters can fight, but
89 spellcasting (especially certain spells) should not be assumed, and thus
90 should be stated.
91
92 Also, don't put in hidden rooms requiring dimension door if they only real
93 way to know about them is pure luck or looking at the map. If you want to
94 do something like that, at least put some clues in.
95
96 If a certain skill would make a map easier, but is not required, you don't
97 need to necessary state it. The idea of this is that it can be frustrating
98 to wander into some map, complete most of it, but find out you can't
99 finish the map because you lack some skill or spell.
100
101 5.1) A map should be designed so that a character can never be
102 trapped in a room (except via other player interaction.) A character should
103 never be forced to dimension door or word of recall out of a map because
104 some gate closed behind him. For a character without these spells,
105 it would mean death. A simple method around this is put a lever on
106 both sides of the door. If the door is opened by special actions (saying
107 things, dropping things), just put the lever on the hard to get side of
108 the gate.
109
110 6) If a map require multiple players to simultaneous be on it to solve
111 the map, put a sign or message so players know. Such maps would be those
112 that require manipulation of levers or buttons in certain sequences in
113 order to get through gates.
114
115 Don't make ends of maps require multi users. This ruins that map for
116 single players (not able to complete it), and makes a map that requires
117 multiple players for only a small portion.
118
119 7) Try not to make the maps too many levels deep. To get to the goal,
120 it should not require a 6 hour continous sitting, as the player works
121 through each map to get to the next. Multi level maps are fine - just
122 don't over do it. One way to do this is have several maps with a key
123 or other special item at the end. The final map could have the various
124 battles, and then a series of gates/altars which uses up these keys.
125
126 8) Shops:
127
128 8.1) Don't put super stores in any towns or villages you create. With the
129 growing number of maps, players can already make a trip to all the different
130 towns to try and find certain items. A one stop find all shop is not
131 interesting. A good maximum size is about the same size of the shops
132 in the starting village.
133
134 Also, making six magic shops of that size and putting them in the same
135 town is not any better than one large magic shop. If you want to have
136 specialized shops, then make each shop smaller. If you just want one
137 shop that sells every type of item (magic, armor, weapons, food, etc), then
138 a large shop is permissable.
139
140 8.2) Make sure the entire interior the shop is covered with tiles. Likewise,
141 don't put shops that lead to areas without tiles without going over one of
142 the 'magic doormats'. A player should never be able to get an unpaid
143 item out of a shop, whether via exit that does not go over the magic
144 doormat, or through spells.
145
146
147 9) Don't make maps which require high level characters that low level
148 characters can wonder into without warning. Put a warning sign nearby,
149 or gates or doors so the player can see they are in over their head, instead
150 of instantly getting toasted the second they enter the map.
151
152
153 10) The structure of the map should make sense. That is to say,
154 if you enter a house, the house should then not have a tower inside. Or
155 a door to a shop. In other words, if a map has an exit to another map,
156 that exit should make sense (ie, another level, tunnels, dungeons
157 all make sense. However, another building the size of the original
158 does not make sense.
159
160
161 11) Try to keep the difficulty throughout the map(s) about the same.
162 The first monster in the map should not be the most difficult monster,
163 nor should the last monster be orders of magnitude more difficult
164 than anything before it.
165
166 It is very frustating to play a map, killing most every monster without
167 much difficulty, only to find that last monster unkillable.
168
169 It is reasonable to have the monster increase in difficulty. Also, if the
170 map has no quest or end goal, then having a very difficult monster around is
171 not unreasonable, as long as it does prevent the player from progressing to
172 the next map.
173
174 12) Do not put directors with bullet, lightning, fireball, etc. that
175 are a loop or continuous. Example: Do not have two directors, each
176 facing each other, with a bullet wall firing into them at the side.
177
178 Having numerous directors is fine. But make sure that eventually,
179 there will be an exit/detonation point for the fired spell. Having
180 loops that go for over typically bring the game to a halt, as the
181 objects just multiply and the game consumes more and more cpu time.
182
183
184 13) Read the 'quests' file to learn how to manage quests.
185
186
187 ------------------------------------------------------------------------------
188 The following are various suggestions for making good or interesting
189 maps. A map that does not need to follow all these hints to be accepted,
190 but following these hints will make for more interesting or playable maps.
191
192
193 1) Try to create only small maps. If you have a large map in mind, try to
194 see if you can possible split it up in several separate sections, and place
195 those sections in different maps. Many small maps use much less memory than
196 one large map, since crossfire doesn't yet support swapping of portions of
197 maps. Also, with small maps, the time to load it from and store it to disc
198 becomes so short that it's impossible to notice. In this context, small
199 means about 32x32, though it's actually the number of objects in the map
200 which count.
201
202 What is potentially more critical than the size of the map is the number
203 of objects (memory usage), and live objects (cpu usage, as each would need
204 to be processed.)
205
206 Also, remember that if you make very large maps, all generators will be
207 cranking out monsters whenever anyone is on it. This could mean that a lot
208 of monsters have been generated before a player even gets to the area where
209 they are being created.
210
211 Related to this: If a map contains multiple levels, make multiple maps.
212 Many times, if the level is small, the mapmaker may think I will just put
213 all the levels on one larger map. This makes the map a little less readable
214 to others. Also, things like magic mapping and dimension door can lead to
215 unexpected results.
216
217 2) Make a plot! A map withot a plot becomes just another mindless
218 "Kill'em all". For instance, create a story which explains why there
219 are npc's here and monsters there, fragment the story up and put
220 bits and hints of it in various writables (books) and npc-conversations.
221
222 If you are going to make a mindless kill them all map, at least put some
223 reward in the map that can only be accessed after all the monsters have been
224 killed. The only thing worse than a kill them all map is a kill them all map
225 which you get nothing out of.
226
227 Avoid maps where all the monsters are lined up, and only one can attack
228 you at a time. This just makes an easy (and relatively safe) way for
229 a character to gain experience and treasure, and is not especially
230 interesting or challenging.
231
232 2.1) A good idea for the rewards at the end of quests are specific
233 items (luggage, spellbook of some otherwise not available spell,
234 special weapon, spellcrystal, etc.) It is much more interesting to
235 put a specific item instead of something like a random artifact. Feel
236 free to mutate or otherwise change existing artifacts to create your own.
237
238 This has two advantages: one, the player will get to know where certain
239 items are. Having to search endlessly for a specific item gets tedious.
240 Two, it reduces the incentive to keep repeating the quest (repeating
241 quests is not inherently bad) If the reward is a random artifact, a player
242 may very well keep repeating the quest until the item he looks for comes up.
243 By doing specific items, this will not happen.
244
245 3) Make puzzles! Use all those different object types: buttons, handles,
246 doors, altars, pedestals, triggers, timed gates, etc... Hide special "keys"
247 needed to get further in special places, and use text-puzzles to describe
248 where they are hidden and how they must be used. The possibilities are
249 endless! Remember, you can also hide buttons under floors, making it more
250 difficult for the character to find the trigger points.
251
252
253 4) But don't make too much big labyrinths. Making of labyrinths is (too)
254 easy with crossedit, just select auto-joining and make zig-zag with mouse.
255 But the results of these are quite tiring. If you make ones, try make
256 some idea into it.
257
258 Related: Don't make maps where the only way to find something is examination
259 of each and every wall. For example, don't have a big map with lots of walls,
260 but the key to moving onward is to find the weak wall and pass through it.
261 Nor should big mazes full of invisible walls be made where the way to get
262 through it is just by going in some direction, finding out you can't move
263 anymore in that direction, go some other one, etc.
264
265 5) Give the npc's information! An npc's knowledge about hidden treasure surely
266 makes it interesting to have a conversation with it.
267
268
269 6) Feel free to add some traps, but be careful to not make them too
270 deadly without adequate warning.
271
272
273 7) Don't mix the monsters too badly. Let there be at least some logic
274 behind why they are grouped in a single room. Undeads together with
275 undeads, for instance, but not together with kobolds...
276 Big dragons usually don't live together with mice... Fire immune creatures
277 generally dislike ice immune creatures.
278
279 Also, limit use of monsters that multiply rapidly (mice, slimes). A map
280 that is easily overwhelmed with these creatures quickly becomes useless.
281
282 8) Give your maps a meaningfull name (like John's tower, level 1).
283 This way, these can be used instead of the map paths in the highscore
284 file. Also, in terms of the actual file name, try to use numeric
285 level identifiers (ie, maze.1, maze.2, ... instead of maze.first, maze.second,
286 etc.) The former maps the levels sorted a little bit nicer in the
287 directory.
288
289 9) Try to make the map so that it links in with the existing world. Most
290 people want to make their own continent, which is then accessed by ship
291 or other fast means. While convenient, this creates many island
292 continents. The problems with this are that any feeling of relation is lost
293 (where is that island continent), and it makes item searching in shops very
294 easy - if you can access half a dozen shops quickly and safely by taking
295 boats, you have a decent chance of finding the item you want.
296
297 Also, it seems that when most people start making maps, the first thing they
298 do is create a new town or village. There are already a lot of towns and
299 villages out there. If you are just going to create a few new buildings,
300 instead of going to the effort and time of creating your own island with a
301 town, just create the buildings, and plug them into one of the existing
302 towns or the terrain someplace. Many of the towns right now have many
303 unused buildings.
304
305 ------------------------------------------------------------------------------
306
307 Technical map hints:
308
309 1) If you are creating a new archetype, it only needs to go into the general
310 archetype distribution if it has an image associated with it, or it has
311 general use (a new monster). Something that uses already existing images
312 can be set up in the map file itself (through setting various variables).
313
314 2) When modifying an existing archetype into a new one (either new face
315 or new type), use the archetype that has the most variables in common.
316 Thus, if you want to create a monster called a 'bouldar', it is probably
317 best to take a monster of some sort and change its face instead of taking
318 the existing boulder archetype and changing its type, hit points, speed,
319 etc.
320
321 3) Changing color is no longer possible in maps - instead, a new face
322 and image must be created, and then put in the standard distribution.
323 The archetype collection script will automatically pull out face information
324 from archetype files.
325
326 4) Try to keep maps readable by other people who might edit them. Thus,
327 instead of modifying a woods space so it also acts as an exit, just put an
328 invisible exit under the woods space. This has the same functionality, but
329 it makes it much easier for other players to see what this space does. (Side
330 note - if you want it so that players actually need to apply the space
331 to enter, you will need to change the face of exit for this to work. If
332 you do this, you should also accompany it with a magic mouth.)
333
334 5) Make sure you set the difficulty field in the map attributes to
335 somethign meaningful. Crossfire will calculate a default dificulty,
336 but its formula is hardly ideal. The difficulty of a map determines how
337 magical the treasure will be (and some treasure types won't show up
338 unless the map has a certain difficulty level.)
339
340 6) Don't be too intimidated about writing new code if there is something
341 you would like to be able to do, but just isn't supported. If you are not
342 the code writing time, make a suggestion. Worst case is it gets ignored.
343 But many times, I have written code because I had some idea which just
344 was not possible at the time (ie, the apartment in the starting town
345 required an expansion/change of the unique item code.)
346