ID:54752
 
I was thinking last night about the rather lengthy process I go through to make a map for Murder Mansion, and I thought it might be interesting to share it here...

The first step is deciding what the map should be, obviously... For MM, there are a few criteria that a prospective map needs to meet:

1) It needs to be a place where a group of people could conceivably be stuck together for a lengthy period of time
2) It needs to provide basic life-support facilities (bathroom, food source, etc.)
3) It needs to support 12 bedrooms
4) It needs to reasonably offer numerous lethal objects
5) It needs to be unique/worthwhile/fun to play the game in

Once a candidate is decided upon (and I've got a list of about 10 of them on top of the ones that are already done), I then make a list (mentally and/or on paper) of all of the rooms, functions, weapons, and other elements the map will need... I use that to devise a rough sketch of the layout, paying attention to aspects of style, feel, traffic flow, and such...

I do most of the refining while actually mapping, so that initial sketch is the only one I'll make... It's mostly just a jumping off point...

Then comes the actual mapping...

After estimating a size and number of z layers, I create a new .dmp file (each map gets their own, as in mansion.dmp, camp.dmp, hospital.dmp, etc.)

Every z layer on each map gets an opaque, solid black line of turfs that can't be Enter()ed along the top and right edges (to ensure that players are bound by the edge of that map, even if another map stretches world.maxx or maxy...

They then also get a mapname object in the top-right corner, with tag edited to "[map name][number of this z layer within the map]" (I use the MapName custom Locate() snippet, and these are the hooks for that... I also use them to bind objects like spawners that are on their z-levels to that map's main controller object)

Then the real fun begins... Depending on the map, I fill the whole thing with the dominant outdoor turf (grass in most cases, but asphalt for urban settings) Then, I choose (or draw) and place the dominant floor icon, and fill in a rough floor plan based on my sketch and on-the-fly edits...

Next I draw the icons for the walls (if there isn't an existing wall set that will work), including interior, exterior, and alternates for one or both (for instance, the mansion map has one icon for interior walls, but two icons for exterior... one for the ground floor with a bit of the foundation showing on the bottom edge, and another for the higher floors with just siding) and begin walling the place in...

Other architectural elements go in now, too, like windows, doors, stairs, etc. (drawing new sets of each to match the map)

Next usually comes the lighting, including putting in the sd_DynamicAreaLighting darkness areas (I fill each room with an interior lighting area with the name of that room, so that objects/mobs in the room can reference what room they're in) and the objects for lights and switches...

Next comes furniture and fixtures (chairs, beds, counters and tables, plumbing fixtures, etc.) For all of these elements, I have a stock of various colors and styles (couches in red, blue, green, etc.), but for each map, I usually have to draw a few more that are specific to that map...

I throw interior decor (curtains, art, rugs, etc.) in after that (but sometimes I mix it in during the other steps) This one often takes a lot of time, because decor elements are usually map-specific (for instance, hospital equipment for the hospital map), and have to be drawn from scratch as I need them...

Next up comes the important part; item spawners... These not only involve icons for the spawners themselves, but also icons for the items they spawn, in used and unused states... (programming-wise, it's easy; just toss in another sub-type of each, and set its necessary variables, but art-wise, it can be time-consuming)

And finally, I add in AI-specific objects which are pathing waypoints/instruction-giving spots that the AI use to get to the right locations on the map, and then find out what to do from there... For instance, all areas with food spawners get an AI waypoint called "FoodArea" that they head to when they're hungry, and it then tells them what to do next to get and eat their food... These waypoints (which include the FoodArea mentioned, along with ones for the bathroom, weapon areas, individual bedrooms, phones, hiding places, stairs up, stairs down, etc.) are hidden at runtime, but have nice little special icons for the purposes of mapping...




Also using this same system of objects hidden at runtime are spots for spawn locations (for the Death Match mode), "Clue" spots (for the Clue mode; they turn visible if that mode is selected), and other game mode-specific functions...

After all of that, there's still the matter of setting up ambient sound and weather for the map (the mansion has the storm and its sights and sounds, while the camp map has crickets chirping, and thickening/receding fog, and so on)

And now, after some testing and potential remodeling/redecorating/refining, a new Murder Mansion Map is Made!
Very nice addition SSGX, great work.
Hey...is that new map a cruise boat?
MURDER TITANIC?!
Super Saiyan X wrote:
Hey...is that new map a cruise boat?

Maaaaaaaaaay-be... :)

MURDER TITANIC?!

I was thinking of various alliterative nicknames to give the new maps, and I was thinking "Homicide Hospital", "Carnage Camp", and "Cadaver Cruise"...lol

SSGX, you should allow ghosts to leave 'hidden messages' instead of just the cold touch thing.
lol But its a Neat idea :)
I'm not sure what's going to happen with Ghosts... At the moment, they've been stripped of their abilities altogether (all they can do is walk around the map)... It happened as a side effect of some other changes I made, but I decided to leave the abilities disabled due to all of the complaints I used to get about them...

However, I do like the effect they could have on atmosphere, with flipping lights on and off, opening and closing doors, flushing toilets, etc... So I might enable those sorts of things again...

I might even add something similar to Icy Touch (though not as annoying/spammable)