Region Mapping
From LSWiki
(diff) ←Older revision | Current revision | Newer revision→ (diff)
First, I'll start with some basic definitions and concepts that I use when setting up a region. A 'region' is one of the 16x16 grids that makes up the surface of Gaia. Each region, as dictated by Chaos and the cosmology of the MUD, has an x axis of 40, y axis of 40, and z axis of 5. Regions are also known as 'main maps', 'continents', or 'overland maps'. Each region can have its own identity, or it may be merged with an adjacent region to form a super region. As time goes on and more regions are released, this will make more sense.
When I am creating a new region, I use a standardized system of develop, which help speed things along and makes sure that the same fundamentals are used in each region.
Contents |
Concept of the Region
The first thing that you need to have when starting a new region is the concept of the region. With Avalon, there were a few aspects that I knew I wanted to have. LostSouls already had the Avalonian culture, which consisted of Camelot and Devonshire, but the culture really didn't have a home region. Since Camelot is a major legend from England, I started with that as a basic concept. I did a little research, and found that England has a port city called Devon. Okay, so as a general concept, I wanted a Dark Ages England. More specific research placed the main components of pre-vulgate cycle Arthurian Legend in 5th century England, but post-vulgate cycle in 15th century. That's a lot of history to dig through, but it does give a solid foundation to work with.
References
The next step is to gather your reference materials. These are useful for more accurately mapping out the geography, detailing creatures, and describing the map definitions. For Avalon, I had plenty of resource material to choose from. Robin Hood (Kevin Costner version and Errol Flynn version), Arthur, First Knight, Excalibur, the Mists of Avalon, Primevel Season 1, Canterbury Tales, a Knight's Tale, as well as google and wiki for particular aspect of England, such as local legends, cryptozoology, and weird tales.
Theme
Having the greatest concept for a region is meaningless is it doesn't match in with the rest of the world. In reviewing the resource material, it is important to keep in mind where LS is at theme-wise, and match it as closely as possible. The theme that I chose to use for Avalon dealt with Great Britain from the 5th century to the 15th century. Just prior to this time period, Rome had withdrawn its forces and plunged England into its Dark Ages. This matches with the LS timeline of when the Altrian Empire collapsed and withdrew all of its troops. After a long period of darkness, invasion, and struggling, one king rose above the rest and unites all of England. This matches Arthurian legend, and matches the in-game history of Arthur. During this time period, there were also the Crusades, which have some ties to the Almerian Inquisition, and can be a huge source of new material in the future. Towards the end of the time period selected was when the Renaissance came about. Basic theme that has come out of this- Great Britain during the highlight of the knighted cavalry.
Originality
Originality is relatively easy when it comes to regions, due to the fact that no one really owns a copyright to a huge landmass. So long as there are no direct references to specific traits of a well-known location, and no factually identifiable names are used, everything should be fine. Avalon is pretty much open source and has been used by bards for centuries. There are even scholars who have devoted their studies to determining if Avalon actually existed and where it would have been. The main concern with originality is in reference to anything else already in LS. When I originally came up with the idea for Avalon, I was going to place a barbaric island to the north, and a Roman civilization to the south or southeast. I was going to call the Roman-derived region Imperia. Then I found out that LS already had a Roman-derived Empire, that had already collapsed, and there was no real point of making a second one, especially since so many of the concepts were so similar. So, I had to revamp my concept of Imperia into the Altrian Empire, which was actually easy to do and a lot less work on my behalf. The key to originality within the realms of LS is to know what has already been worked on and what has been documented in the history of the cosmology.
Location
Location plays a key factor in determining the terrain of the region, as well as its economy, basic population, and several other variable. Gaia has been set up into temperature zones, and the regions should logically reflect these zones. There shouldn't be an arctic region located directly between a desert region and a jungle region. With 256 possible location for your region, there is little reason to cram an inappropriate climate where it doesn't belong. With the location of Avalon, it was a small island off of the eastern coast of Almeria. This much was already set up for me under the current system. Being that it was directly east from Almeria, and Almeria is predominantly a Temperate clime, Avalon is a temperate clime. Given its placement, just to the northwest would be the current Northlands (if the maps connected, which they will at some point). Drawing from this, I decided to add a slightly cooler aspect to Avalon, which also matches with a lot of the depictions of England. Since it is an island, rainfall should be plentiful, which is why I added description of the lush and fertile vegetation. In the overall scheme of Gaia, this also placed Avalon east of Almeria, south of Gardagh, and far to the west of Esartur. Combining these aspects, it is easy to set up a much more unique feel for the project. Under the Altrian Empire, Avalon flourished. This would be why there is still a remaining port city of Devonshire and enough population to support castles and knights. With the collapse of the empire, Avalon was pretty much left open to attack, since they had grown dependent upon the occupying Altrians for protection, trade, economy, and a steady influx of new bodies. It was in the chaos of the collapse of the empire that the Knights were able to make a name for themselves. The barbarians from Gardagh, sensing easy plunder, began raids into Avalon. From this, I added more forts along the northern portion of the map. Also, since it lies between Almeria and Esartur, most invasion forces would land at Avalon to either resupply right before an attack on Almeria, or would just invade the much more vulnerable island itself. Now I have something I can work with and make a lot of future material from.
Inhabitants
The inhabitants of the region add a lot of character to the project. The difference between the vikings and the barbarians of Gardagh were one of the first things noted once the area was released. When Avalon was released, several players took note of several of the unique creatures (land squids), and of the roving knight sentries. Combining the fief structure from medieval England, and the unique location in the world of LS, the inhabitants started to take on a certain image in my head. Rather than the dashing knights in shining armour, they started to be much more weary, perhaps with slightly worn armour, and much more militant. Rather than the cerulean sky of the land of eternal summertime, the sky was always a muddy grey, the ground was as much mud as solid ground, and the expectation of invasion from either the north or the east, with absolutely no assistance from the west, lead to a state of constant readiness and intense independence. With so much to deal with, the knights sometimes had to deal with situations quickly and forcefully, which is why I added in several gibbets around the region (at the crossroads, along the northern coast as a message to the barbarians, and on the passage in from Almeria). Also added into the regions was the older religion of the druids and witches, which is what the people had clung to during the darker ages, but there is also the host of Yehovah that has made their presence known. Under normal circumstances, the rigid rules of Yehovah would have tried to banish the older religions and their pagan customs (even to the point of vanquishing those vile advenus and their magicks and psionics). With so much to deal with and so few allies, the church of Yehovah has bigger concerns, such as survival, so a general rule of "don't give us a glaring reason to persecute you, and we'll leave you alone".
Mapping
The majority of the mapping is done in the dat/map.conf And to answer the same question over again, "no, there is no quick utility to make the map for you". Once the map.conf has been built, there are utilities that will make a viewable map of it, but I rarely use those for overland maps. If the mapping has just the 0 z-axis, the mapping tool is great, but it is severely limited if you have multiple elevations. If it is used on Avalon, the elevated regions read as 'earth' instead of 'moors' or 'highlands'.
Basic Formations
The first thing I do when setting up a new map.conf is to establish the z-axes. The configurations at the top of the file are there to set numerically the boundaries. If the mappings you provide are under this amount, you will get a warning, but if they are over, the extras just get truncated.
<X> 40
<Y> 40
<Z> 5
<FillerType> earth/earth/earth/earth/earth/air/air/air/air/air/air
This portion here sets up that the x-axis and y-axis will run from -40 to 40, thus the 81 x 81 map size (remember to include the 0 coordinate). The z-axis will run from -5 to 5, with 0 considered 'sea level' for most intents and purposes. The filler type is the default terrain type for that level, starting at the lowest z-axis and moving upwards. If you have just one terrain type in there, every level will autofill with that terrain type. By doing this, if there are no other features of the z-axis 3 and above, you don't have to code those. The system will automatically fill every room on that level with what you tell it to. Same thing goes for the negative axes into the earth. If there is no underground development, use the autofill and shorten down the map.conf file.
With Avalon, I knew that it was going to be an island, so I divided the z planes into water and air. z-1 through z5 were air, and z-0 and below were all water, and I just filled in the entire box with the icon for the applicable terrain type. I knew in advanced that I would be doing some special terrains in all of those levels, otherwise I would have let autofill do its job. At this point, I have my own standardized icons for different terrains, so I know that ' will be for the air, ~will be for the shallow water, e for earth, etc. Once the water is separated from the air, I start pulling the land from the sea. When establishing where the land will be, I had several different maps of England to use as a reference. I figured out where all of the major landmarks were, such as where I wanted the cove to be for Devonshire, and where I wanted the Isle of Wight, then used the Insert option to replace ~'s with e's, working my way around and establishing a general coastline. At this point, you can push and pull the coast in and around to get something that is more visually appealing than being completely strict as to any reference map. For Gardagh, it was much more open. I knew where I wanted to have the thaw line, with arctic north of the line and regular features south, so I set that up, then pulled ideas from maps of Iceland, Sweden, Ireland, Nova Scotia, Scotland and Denmark. I wanted to combine the elemnts, then just had to play around with the edges some to get a coherent shape.
Elevations
Elevations is one of the features which really bothered a lot of players when Avalon first came out. They were used to the idea that if you can't go any further east, it must be the eastern edge of the map. When I set up elevations, I just use numbers to represent which z-axis that level will be on. Traversing from 3 to 4 requires a means of gaining elevation other than flight. Traversing from 1 to 4 will require some sort of terrain (cliff sides, sheer mountain side, glacier side, etc) to validate the sheer drop off. For general ease of construction, I usually plot out where I want my highest points, then mark that with the applicable numeric value. For avalon, the highest peakes were on z-axis 4. Once I had all of the 4's set up, I surrounded them all with 3's, and sometimes multiple 3's. This is easily accomplished on the x-axis by using the search and replace option in your ftp editor (ex, replace ee4ee with 33433). Once this is done, go back and manually round out the terrain to accomodate the y-axis. Repeat this process with level 2 and level 1. Feel free to play around with the shapes all you want to make them more organic or to fit better with ideas you may have for later on (like flattening out a small plateau for Twilight Tower to be built upon). One thing to watch out for is jumping elevations two levels on a diagonal line. You have to make sure that changes in elevations are consistent in all directions. When Korindim first came out, I auto-converted the e/w lines, then added the n/s lines, but didn't configure the nw/se or ne/sw lines. Take a wild guess what direction nearly every single player tried to cross Korindim using.
Terrains
The next step is filling in the terrains. Knowing your terrains ahead of time makes this much easier, and terrains add a lot of character to the region. Up until this point, all of the work has been on the Z-0 axis. As terrains are applied to the Z-0 axis, you'll be able to watch the region start to flesh out. You'll have to ignore the numeric values while you are working on the 0-axis, since they will just be solid earth once you pull the levels apart. Once the 0-axis is done, copy the entire plane and paste it to the 1-axis. For Avalon, I had several forest terrains set up, so I replaced all of the forest floors with forest branches, and anything from the 0-axis that didn't have anything above it was replaced by a ', for air. the 1 icons are now set to be converted into actual terrain. Once all of the 1's are converted, your z-1 axis should be almost complete, so copy and paste this plane to the z-2 plane on your map.conf file. Keep repeating the process of replacing terrains with the next level higher until all that is left is the very top level. The surface topography should be done at this point. Now you can go back and convert all of the 1, 2, 3, and 4's into e's. When working with the -z-axes, you work in reverse, expanding the landform outward, and replacing shallow water with sea floor, and the ocean surface with deeper water. As the z-levels expand downward, you can increase the rate of growth of the land forms, so that the sea floor with flatten out farther away from the shore.
Overlays
Overlays are similar to areas, but they do not require an icon on the map. You can set up overlays as lines, circles, points, rectangles, etc. For rivers, I use lines, then it becomes a game of connect the dots to lay down the river across the terrain. Some overlays that I have found useful are the landmark overlay, roads, altered terrains, rivers, and markers.
Landmark overlays are for things like sign posts, mile markers, or any number of smaller items that can be placed at locations across the map.
Distance object overlays are used to allow the players to see things at a distance. I used these in Gardagh on the terrains to give an aerial view and so that you could see that freaking huge mountain range before you are right up on it. These can also be set to cities, which I am setting up in Almeria. Essentially, a player can be standing at the wsp and in the distance to the east is LH, and to the south is Jack's farm.
Roads and rivers can either be set up as map_areas or map_overlays, but I set them as overlays since it is so much easier to set up longer distance. Altered terrain markers can be set up to add roughness to terrain, set up stairs leading upward, add additional exits, climbable terrains, ad difficulty to certain terrains, alter gravity, etc.
Markers are simply overlays designating where a future project will be. Examples are the keeps in Avalon and the villages in Gardagh. The Gardagh villages are already in the process of being coded, so when they go live, the villages won't just suddenly pop up.
Special Map Rooms
Special map rooms are the intersections between the regional mapping and a specific area mapping. Depending on what the area is, this could use a distance marker, or it could simply be a one line description and an exit/entrance.
Definitions
Map_Area
The map_area definitions are how you define what the terrains will be and tell the system what the icons on your map.conf mean. If you do not do this, the project will error if you try to load anything. In most of my projects, when the map.conf finds the symbol 'e', it will know to fill in that 'square' with earth, as I define it in map_area_earth.c each terrain requires its own definition. Some very useful features found in the map_area files are add_map_feature_abstract_item, set_map_feature_adjacency, add_map_feature_mapped, and set_map_feature_visualize. I'll explain more of them in the sample code provided at Coding Class: Map_Area 1.
Map_Overlay
Map_overlays differ from map_areas in that you do not designate a set_map_feature_specify(). Instead, they are positioned over top of the designated map_area, and are controlled on the map.conf file with something like this.
<Overlay stone wall> <Line> 0/33/2, 0/28/2 <Line> 0/15/2, 5/22/2 </Overlay>
Overlays can be just about anything in 2 dimensional geometry, with the coordinates afterwards defining the shape. A line will connect the two points. A rectangle will be the two opposite corners of the square, or a circle will be the center point, and then a value for the radius. I have replaced numerous hard-coded map rooms with overlays and have had much better result because of it. Overlays can e given a set_map_feature_visualize(), which will show up on the map if you use a panoramicon. This is how I was able to get roads and rivers to show up.
Populating
Non-NPC
Non-NPC's are designated by your /mon directory. These can add a lot to a region. When deciding what creatures to add to Avalon, I first did a web search for the native flora and fauna of Great Britain. This gave me a basic list of animals, and there were several that weren't found elsewhere in the mud. Next, I did a websearch for legendary animals from Great Britain. I combined this with a couple of commercially available beastiaries for different systems. This expanded my list a lot. I also went back through my resource movies and books looking specifically at the animals presented in the background.
After I had my long list set up, I checked my list vs /def/race to see which ones were also basically coded up for me. These, I went through and set up a basic file for them with a Generic Description. Anything that wasn't already set up, I had to weigh out how difficult it would be for me to code it. Sadly, the griffin, depicted on so many British coats-of-arm, was outside of my abilities at the moment. That, and several others got removed from my list.
This is where the long, tedious part of coding the region comes in, but fret not, for this also means you are about 80% done with the project. Once all of the non-NPC's have a basic description, it is time to go back to each and every one of them and further flesh them out. Some will require just adding in an adequate description and some chats to liven things up, while others will require some extensive coding added on. Whichever the case, you have to set_wander_realm for each of the creatures, or else you'll have some dork spouting out on OOC about how awesome it is that a horse can swim in the ocean, followed by references to it being a 'sea horse'. Sadly, most of the description you put into your projects will be overlooked, since most players wander around with depiction set to short, and as soon as they come across any creature, they attack first, then loot the corpse, then complain about how little xp they got from it, and how poorly it was equipped.
When I write up the descriptions for my creatures, I try to use some form of reference to help focus me. A lot of time, especially with sentient beings wandering around, I have to add equipment for them to use. This adds even more time to the overall project, but can be well worth it. There is always a market for unique equipment, even if it isn't the outright most spectacular equipment in the game. When the players complain that there are no decent <blah> in the game, most times it is a valid complaint. Equipment ends to either be crappy and generic, or artifact and really shiny. Very few items exist in between, and I suspect that a lot of players would not mind a wide selection of middle-range equipment. While some are intently focused on having only the best gear possible, some build around a theme or enjoy versatility.
NPC
Connecting
Refining
The refining process can be among the most time consuming of any of the processes. It involves loading your region and thoroughly testing each and every aspect to ensure that it not only functions, but doesn't cause a tremendous amount of lag, and that all of the descriptions are adequate. I generally either transport myself to the new region, or transport a test character. Then, for each set of rooms I go through, I try to look at everything to make sure that all of the descriptions pull through. I also look at every animal to make sure it looks right. I'll check every room from one corner of the map to the other, and check the exits to make sure that they work. While I am going through this process, I continually check log Movement and log lpmud.log. Movement will show you a list that contains a number of items loaded, number of items checked, number moved and number of errors. As more of your mon and npc files load, these numbers will change. What should be happening is the number of items loaded will increase, and the number of items checked should match that. If the number checked is lower than the number of items, that means lag is slowing things down. If the number moved is 0, lag is really bad, and the players will soon start complaining about how you are destroying their fun, and some may even get emo enough to refuse to play. Checking the log lpmud.log will show you the stack trace of errors that pop up as things are loading. There are a lot of things that can error without immediately flagging that can be revealed by checking log lpmud.log. Virtual rooms may not load, a creature may be timig out because it is out of endurance and trying to extended flee, or a room may be loading with no air and whatever inside is spazzing out.
If everything loads fine for you and doesn't lag the mud, you can ask permission to transport some players in for a final review. Players have a tendency to try to point out things as mistakes without having fully read through anything. For example, it is obviously a mistake to be standing at the foot of a mountain and to be informed that the rest of the mountain chain extends to the northeast, or that it is tedious to have to climb upwards just to be able to move in a horizontal direction, despite the room description referring to the steep incline of the granite mountain that you are climbing the side of, or how it is completely illogical for someone to be able to 'shoot arrow down at <player> with bow' while standing on a hill because you obviously cannot walk up a hill and still be on the hill. You must be very selective about who you send to scout out your new region. Most players will want to send in their high-level character to ensure survivability and item recognition, even though they will insist that they just want to play as their 'favourite character'. Older players are not a good option for exploring a new region--they are very set in their ways and it is difficult to get their minds to wrap around an old region redone in a 3d environment. They also have several tactics for routing around any attempt to actually have to explore anything in a normal manner. They'll also kill things just to keep track of how much xp/kill they can get for the area, and at their level, they can pretty much kill anything with very little effort. I've watched players explore for about 4 minutes, and then go back into their usual killing ruts of slaughtering everything in sight. Relatively new players are the best option--those who have been around long enough to have a grasp of how to maneuver and navigate, but still new enough to be actively exploring the rest of the mud on their own. Also, I stay away from transporting Rangers. They have a tendency to turn your new area into a gladiator ring vs their familiar, or they will try to make a familiar out of one of your unreleased creations, just so they can be the first to do so.
Make sure to inform the players from the very beginning of what you want them to look for, otherwise, they will just fall into their usual routine, just in a new location.
Making a region live usually involves a lot of lib work and behind the scenes changes to make sure everything functions correctly, so I leave this up to a lead developer. Once the area is deployed, you'll need to keep a watchful eye on it for about 4-6 hours just to make sure nothing goes horribly wrong. In this time, you might receive a few scattered bits of praise, and a lot of complaints about how things do not make sense. Inevitably, a higher level player will go through and kill everything, so a lower level will mention to you that there aren't enough animals or creatures for that sized area. There will be some feeling out of an area, and you'll probably have to answer a lot of questions. Also be ready for several new rangers to be created, and they will try to bond to some of the newer creations, somehow thinking that your newer animals will a.) automatically be bondable, and b.) have either infinitely higher abilities or cooler powers than animals bonded from previous regions. Complaints generally ensue if every animal in the region isn't bondable. Player reactions will go through waves. Some will completely reject the concept of change and not want to explore the new area because it is outside their comfort zone. Some will explore with great gusto, and be upset if everything isn't completely explorable. Some will breeze through your region, complain about how it takes up too much space, call it a waste, and then go ransack ST again. f your regions has a distinctive feel to it that resonates with a player, they will camp out there and pester you to expand within it--nordic barbarians apparently strikes a chord with some players, and they have requested a guild based around barbarians, and for the many villages to be constructed to completion.