ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cf.schmorp.de/maps/Info/mapguide
Revision: 1.1.1.2 (vendor branch)
Committed: Wed Feb 22 18:05:18 2006 UTC (18 years, 9 months ago) by elmex
Branch: UPSTREAM, MAIN
CVS Tags: post_fixaltar, last_stable, post_fixaltar2, rel-2_82, rel-2_81, rel-2_80, pre_coinconvert, UPSTREAM_2006_03_15, rel-3_0, rel-2_6, rel-2_7, rel-2_4, rel-2_5, rel-2_2, rel-2_0, rel-2_1, rel-2_72, rel-2_73, rel-2_71, rel-2_76, rel-2_77, rel-2_74, rel-2_75, rel-2_54, rel-2_55, rel-2_56, rel-2_79, rel-2_53, pre_material_cfarch_normalize_run, rel-2_32, pre_fixconverter, post_coinconvert, pre_fixaltar2, pre_map_rename, UPSTREAM_2006_02_22, rel-2_90, rel-2_92, rel-2_93, rel-2_78, post_fixconverter, pre_fixaltar, rel-2_61, rel-2_43, rel-2_42, rel-2_41, HEAD
Changes since 1.1.1.1: +43 -0 lines
Log Message:
cvs -z7 -d:ext:elmex@cvs.schmorp.de:/schmorpforge import cf.schmorp.de UPSTREAM UPSTREAM_2006_02_22

File Contents

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