Area Mapping

From LSWiki

Revision as of 03:15, 22 January 2011; Bladestorm (Talk | contribs)
(diff) ←Older revision | Current revision | Newer revision→ (diff)
Jump to: navigation, search

There are two scenarios you will come across when developing an areas. One is making a completely new area, and another is revamping or updating a current area in the mud. The main difference between a new area and a revamp of a current area is the type of prep work involved. After that, a majority of the actual construction is the same.

Contents

Concept

New area

I'll fill this part in when I go through the process of adding a new area.

Revamped area

For this process, I am going to document each step of revamping Fort Boastt. It is not an area on its own, but it is one of the sub-areas of Devonshire. I don't know the original concept of the entirety of Devonshire, but the current depiction of Fort Boastt sets it in the desert, while mildly clashes with Devonshire's placement in Avalon. Before I finish updating Devonshire, I am moving all of the sub-areas into their own projects.

In order to determine the concept of the area, I need to go through all of the files that currently make up this portion of the area. This is summed up in ~Devonshire/rms/Fort.c and ~Devonshire/rms/fort*.c. I am not including the sroad* files, but from them, it distinctly states that the fort is in ruins. Walking through the area and looking over the room files, I compile a list of features that stand out for the area.

  • The area is in ruins.
  • There is a sense of a disaster that has taken place.
  • Formerly a fortified outpost, but the only thing left standing is a tower to the northwest and a few wilted plants.
  • There was a barracks. The upper level is inhabited by an ogre, the lower level contains a room filled with skeletal trophies, an enchanted ogre skeleton, and a well with acid in the bottom
  • The bottom level of the tower that remains standing smells of fresh earth and bodies. The middle layer is guarded by a giant spider and web. The upper level has some scrawled writing on the walls and has Heltu the Skeleton Lord.
  • The writing on the wall reads
   Bartziluth's curse for our cowardice,
   we die but do not rest.
   Away from sunlight to the depths below,
   If you don't know what's good for you,
   you better not go.


This forms the framework from which I will construct the newer version of this area.

Location

When determining where to place your area, keep in mind that it needs to fit into the surrounding region. In the control file of each region, there is a note at the top indicating the influences on the design of that region. Culture and topology also have an effect on the placement. IN the case of Fort Boastt, the setting is a desert. At this time, the only desert is in Ebiria, which matches most of the descriptions found in the current version. Once the region is selected, the actual site must be chosen. To do this, I go to the region, walk around with a panoramicon, and get a feel for where nearby projects are located, and make the judgment form that information.

Initial project setup=

Once you have performed your project setup, some of the basic files will already be in place, but not all of them. You are going to need in rms/ a Base.c and a Map_Base.c I usually copy those over from a pre-existing project and modify the names as needed. In def/ , you are going to need Map_Area_Base.c and Map_Overlay_Base.c, and again I just copy and change as I need. In the dat/ folder, you will need to set up a map.conf file.

In the dmn/control.c, you'll need to add in

   add_extension(LS_Extension("pathfinder"));

// set_base_exploration_experience(600); // set_start_location(Fort_Boastt_Room("m_0_0_0")); /* set_routing_gateway_discovery(({

       Fort_Boastt_Room("ngate"),
   }));*/
   set_definition_registration(([
       Fort_Boastt_Definition("map_*") : 0,
   ]));
   set_definition_unregistration(([
       Fort_Boastt_Definition("map_*") : 0,
   ]));
   // This sets the rooms into the virtual map
   add_extension(LS_Extension("map"), (:
       $1->set_base_room(Fort_Boastt_Room("Map_Base"));
       $1->set_room_prefix(Fort_Boastt_Room("m_"));
       $1->set_map_conf(Fort_Boastt_Data("map.conf"));
       $1->set_map_directionality(Map_Directionality_Extreme);

// Sorted by x coord, then y coord, then z coord, in descending order. /* $1->set_room_names(([

           ({  19,  18,   5 })             : file name,
           ({  -7,   1,   0 })             : file name,
           ({  -5,   3,   0 })             : file name,
           ({   1,   2,   0 })             : file name,
           ({  -5,  -2,   0 })             : Fort_Boastt_Room("store_room"),
       ]));*/
   :));
   /*
   set_routing_gateways(([
       "Fort_Boastt"                               : ([
           Fort_Boastt_Room("m_-15_5_0") : ({
               Fort_Boastt_Room("m_-6_-18_0"),
               "north",
           }),
       ]),
   ]));*/
   add_published_location(query_map_terrain_rooms(Terrain_Ground), Rarity_Very_Common, Location_Danger_Low);

/* add_extension(LS_Extension("populace"), (:

       $1->set_preload_immediate(True);
       // Sorted alphabetically by room name, roughly.

// $1->add_person(Fort_Boastt_NPC("heltu"), Fort_Boastt_Room("somewhere")); // return;

   :));
  • /

The commented out stuff is not necessary to begin developing the area, but will be required for when the area goes live.

Map

In setting up the map.conf file, I always use the same initial pattern. The top of every map.conf looks the exact same.

// Lysator, January 2011 Initial design
<X> 20
<Y> 20
<Z> 3
<FillerType> earth/earth/earth/surface/air 1/air 2/air 3

I start with a comment about when the project was started, and add on notes as I change things. The <x> 20 sets the x-axis from -20 to 20. Same goes for <Y>. The <Z> is a little different. If you want to work on just a single plane for your area, set this to zero. In <FillerType>, you are telling the virtual mapping program what the default map_area is for that z-axis. Whatever you set <A> at, <FillerType> must have something for each z-axis, so values for ((<Z> * 2) + 1).

Personal tools