Difference between revisions of "SandboxMapping:Lavillastrangiato"

From Aurora Information Uplink
Jump to navigation Jump to search
(Created page with "Mapping describes creating maps for away sites, non-Horizon ships, and even editing the SCCV Horizon and its general structure. Despite the overwhelming nature of the programs you are expected to learn, once you make your first few maps and minor edits, mapping can become very easy to the point where anyone can contribute and learn to map. In this guide, we will go over the basics of using a mapping tool, shaping your map, giving it features, and making it functiona...")
 
Line 43: Line 43:
==== Layers ====
==== Layers ====


If you open up an already-made map in StrongDMM (which are in the <code>maps</code> folder in your repository folder), you might notice it's covered in some sort of overlay. These are '''area''' layers; we'll get to them later. You can toggle them on and off by pressing Ctrl + 1 in StrongDMM. They don't magically vanish; you're just toggling whether or not they can be seen at the moment,
If you open up an already-made map in StrongDMM (which are in the <code>maps</code> folder in your repository folder), you might notice it's covered in some sort of overlay. These are '''area''' layers; we'll get to them later. You can toggle them on and off by pressing Ctrl + 1 in StrongDMM. They don't magically vanish; you're just toggling whether or not they can be seen at the moment.


You can also toggle '''turfs''' (walls and floors) with Ctrl + 2, '''objects''' with Ctrl + 3, and '''mobs''' with Ctrl + 4.
You can also toggle '''turfs''' (walls and floors) with Ctrl + 2, '''objects''' with Ctrl + 3, and '''mobs''' with Ctrl + 4.
Line 59: Line 59:
As you can see, there are three folders inside the Dominian Corvette folder: a .dmm file, a .dm file, and a .dm file for ghost roles.
As you can see, there are three folders inside the Dominian Corvette folder: a .dmm file, a .dm file, and a .dm file for ghost roles.


* A DMM file is the map itself. This is where all the visuals of your map are defined.
* A '''DMM file''' is the map itself. This is where all the visuals of your map are defined.
* A DM file is the code of the map. This is how the map knows it is a ship. It is also where your areas are defined.
* A '''DM file''' is the ''code'' of the map. This is how the map knows it is a ship. It is also where your areas are defined.
* The ghost roles DM file determines what ghost roles will spawn, where they will spawn, and with what equipment they will spawn.
* The '''ghost roles DM file''' determines what ghost roles will spawn, where they will spawn, and with what equipment they will spawn.


So, to create the very basics of a functioning away site map, you will need the actual map, a file for the code, and a file for ghost roles. You will need to put all of these in a folder, titled after your off-ship map. Then, these will go in the folder for off-ships (<code>ships</code>).
So, to create the very basics of a functioning away site map, you will need the actual map, a file for the code, and a file for ghost roles. You will need to put all of these in a folder, titled after your off-ship map. Then, these will go in the folder for off-ships (<code>ships</code>).
Line 69: Line 69:
=== '''Mapping Standards''' ===
=== '''Mapping Standards''' ===


# Every area must have:
==== Mandatory for every area ====
# An APC
# An APC
# An air alarm
# An air alarm
# At least 1 scrubber
# At least 1 scrubber
# At least 1 vent
# At least 1 vent
# Light sources
# Light sources
# Emergency shutters on all airlocks
# Emergency shutters on all airlocks
# An emergency closet
# A fire extinguisher


==== Mandatory decorations ====
* Under doors should preferably be full steel tiles. Hatched markings as well, if it fits the area.
* Under emergency shutters (e.g. in hallways) should preferably be full steel tiles. Hatched markings as well, if it fits the area.


==== Glossary ====
=== Essential parts ===
Room: Self explanatory.
Area: These are defined in the map's .dm file; they're that colourful overlay that can be toggled off with Ctrl + 1. If something is in an area, it'll be affected by that area's power or alarm status; for example, if an area is vented, the air alarm within that area will automatically trigger emergency shutters and shut off the vent and scrubbers. If a light is placed within an area with an APC, it'll be powered until that APC stops being powered. This will make more sense as you learn more about mapping.
 
=== Other essentials ===


* Engineering and atmospherics
* Engineering and atmospherics
Line 91: Line 92:
* Food, rations, or a kitchen
* Food, rations, or a kitchen
* A shuttle
* A shuttle
==== Glossary ====
'''Room:''' Self explanatory.
'''Area:''' These are defined in the map's .dm file; they're that colourful overlay that can be toggled off with Ctrl + 1. If something is in an area, it'll be affected by that area's power or alarm status; for example, if an area is vented, the air alarm within that area will automatically trigger emergency shutters and shut off the vent and scrubbers. If a light is placed within an area with an APC, it'll be powered until that APC stops being powered. This will make more sense as you learn more about mapping.


== Mapping Essential Systems ==
== Mapping Essential Systems ==


=== Atmospherics ===
=== Atmospherics ===
See also: Guide to Atmospherics
So! You are not an engineering player but you want to make an atmospherics system. Well, you should go play engineering to learn these systems. Go on, go play a round as an apprentice. This guide will be here when you get back.
...Alright, now that you're back, let's get into how atmospherics works. To the right is a basic atmospherics setup, from the PRA Headmaster ship.
There are two air tanks, connected to a supply line. This is how you get breathable air on a ship, and fill a room when it has been vented. The air tanks have a pressure regulator that takes air ''to the vents''.
There is a mixed gas canister and a pressure tank, connected to a scrubber line. Scrubbers are what takes bad air out of a room; if you have a phoron flood, the scrubber will slowly but surely filter it out. The tanks have a gas pump that brings gases from the scrubbers ''to the tanks''.
To pare this down even further:
* Good gasses are in air tank. Good gasses go to vents where vents pump good gas into ship.
* Bad gasses are in mixed tank. Bad gasses get taken by scrubbers to mixed tank.
==== Quick tips ====
Why use different types of pipes? Simply put, you don't want to cross the same type of pipe over each other by accident, otherwise you'll mix their contents or make sure they don't work. Using many types of pipes has a good chance to save you time and headaches when you're mapping in a tight spot.
Canister connectors and pressure tanks can't connect to "special" types of pipes without a universal pipe adapter; putting an auxiliary, scrubber, fuel, or supply pipe in front of one of these features means they simply won't connect when you run the map.
To avoid this, you can do one of the following:
* Use a different type of canister connector. There exist ones for aux pipes, fuel pipes, scrubber pipes, and supply pipes.
* Use the basic type of pipe, then connect said pipe to a universal pipe adapter, then connect your desired type of pipe to the other side of the adapter.
* Just use a basic pipe to connect to your output. '''Only do this for airlocks.'''


==== Pipes, scrubbers, and vents ====
==== Pipes, scrubbers, and vents ====
As stated in mapping standards, each room needs to have at least one scrubber and one vent. This is what you should focus on mapping first; the pipes can come later. Large rooms like hangars should have two of each.
Once you're finished putting those down, though, you have two options;
# Map each pipe segment manually (and painfully).
# Connect all the vents and scrubbers with four-way manifold scrubber and supply pipes, then use this tool (link to Dreamy's autopiping tool) to automatically pipe the ship.
Once you have the piped map, it's a good idea to consider the power level of APCs on your map. Scrubbers and vents use a good amount of power when active; if you have a room with more than one of them, consider using a higher-power APC.


=== Wiring and power ===
=== Wiring and power ===


== Shuttles, Airlocks, and Docking Points ==
== Shuttles, Airlocks, and Docking Points ==
== Variables ==
As you might have figured out by now, you can change the direction on some objects in StrongDMM. You can also sometimes change what the icon looks like. These states are controlled by variables.
Every variable on every item is editable within StrongDMM. This doesn't necessarily mean you should, because it can break your map, make it look ugly, or just be a lot of states to sift through when it comes time for developers to organise their code.
The most important kinds of variables you should know about are ID variables. These are what allow you to remotely connect switches, doors, blast shutters, and ship weapons.


== Final Touches ==
== Final Touches ==
== Troubleshooting ==
* '''Why am I crashing?''' You usually have a duplicate item, like an emergency shutter, a grate, or a pipe, on a tile. Delete that and run your map again.
* '''Why am I failing unit tests?'''
** Mismatched air on turfs. If you have a tile that's exposed to space, make sure you use the airless variant of that tile.
* '''Why are these air alarms going off?'''
** You used a preset tile with a different temperature, such as cooled tiles in a room with a regular air alarm (Tajara offships are common with this).
** You used a preset air alarm with a different preset default temperature (server and freezer air alarms are bad for this).
* '''Why won't my airlock work? Why won't my docking port dock?'''
** Check to make sure all your buttons are actually on a tile with airlock markers on them.
** Ensure you have docking port buttons set up.
** Ensure that you've either set all the variables on your airlock marker correctly, or defined them within your ship's DM file.
* Why isn't my ship gun working?
** Check the <code>weapon_id</code> variable and make sure they're both set.

Revision as of 00:56, 16 April 2024

Mapping describes creating maps for away sites, non-Horizon ships, and even editing the SCCV Horizon and its general structure. Despite the overwhelming nature of the programs you are expected to learn, once you make your first few maps and minor edits, mapping can become very easy to the point where anyone can contribute and learn to map.

In this guide, we will go over the basics of using a mapping tool, shaping your map, giving it features, and making it functional. This guide assumes you understand basic computer linguistics, such as extracting ZIP files, what a folder is, and keyboard shortcuts.

Programs You Will Need

  1. A GitHub account.
  2. Visual Studio Code.
  3. StrongDMM, an independently-developed mapping tool that is way better than BYOND's built-in mapping tool.

How to Open (and Use) StrongDMM

This guide is going to assume you already understand the very basics of making changes to Aurora's code, as detailed here (LINK TO CODING GUIDE PROBABLY).

  1. Download StrongDMM.
  2. Open StrongDMM.
  3. Click "File" in the upper left corner.
  4. Click "Open Environment".
  5. Navigate to the folder where you store Aurora's code.
  6. Open "aurorastation.dme".
  7. Wait at least half a minute for the environment file to open. It is normal for this to take long.
  8. Once the file is loaded, click "New Map" in the upper left corner. The height (Y) and width (Z) should both be 255. Keep the levels (Z) at 1 for now. Save the map as TGM; it'll be converted to .dmm later.
  9. Save the map outside your Aurora repository folder for now.
  10. Now you have a wide-open space for you to play around in!

Basic tools

The shortcuts on StrongDMM are pretty much the same as you might expect on another editing program: Ctrl + S is save, Ctrl + C is copy, Ctrl + V is paste, and so on. Ctrl + Z will also work for quick undos.

Your top toolbar on StrongDMM has the following:

  • Add: Place an object you selected.
  • Fill: Click and drag to create an area that you'll fill with a selected object.
  • Grab: Click and drag to select an area which you can drag around.
  • Move: Move a single selected object.
  • Pick: Select an instance of an object, highlighted in green.
  • Delete: Delete an object you're hovering over, highlighted in red.
  • Replace: Replace an object you're hovering over with another object, highlighted in green.

To your right side, you also have Settings, which control the size of your map. You can also take a high-quality screenshot!

To find objects in StrongDMM, you can look through the drop-down menus of areas, turfs, objects, and mobs, or use the search bar. For example, if you wanted to find a wall, you by typing "wall" in the "Filter" bar. Once you select it, you can place it or fill an area with it as you like.

Layers

If you open up an already-made map in StrongDMM (which are in the maps folder in your repository folder), you might notice it's covered in some sort of overlay. These are area layers; we'll get to them later. You can toggle them on and off by pressing Ctrl + 1 in StrongDMM. They don't magically vanish; you're just toggling whether or not they can be seen at the moment.

You can also toggle turfs (walls and floors) with Ctrl + 2, objects with Ctrl + 3, and mobs with Ctrl + 4.

Getting used to StrongDMM

Getting the hang of using StrongDMM, and having a sense for editing maps in general, takes a bit of work. To build your confidence, it's recommended you do some simple edits to maps; these can be away sites, the Horizon, or even the Central Command layers. This is also a great way to get the hang of using GitHub and VSCode if you're not very experienced with them. Make a couple PRs, and don't be afraid to ask developers and contributors for help!

Making Maps

Once you feel confident enough to try making a full map of your own, it is time to create your own map. To best understand how mapping works on Aurora, let's go through how ships work.

We'll use the Dominian Corvette as an example. You can find it in [your repository]\maps\away\ships\dominia\dominian_corvette.

As you can see, there are three folders inside the Dominian Corvette folder: a .dmm file, a .dm file, and a .dm file for ghost roles.

  • A DMM file is the map itself. This is where all the visuals of your map are defined.
  • A DM file is the code of the map. This is how the map knows it is a ship. It is also where your areas are defined.
  • The ghost roles DM file determines what ghost roles will spawn, where they will spawn, and with what equipment they will spawn.

So, to create the very basics of a functioning away site map, you will need the actual map, a file for the code, and a file for ghost roles. You will need to put all of these in a folder, titled after your off-ship map. Then, these will go in the folder for off-ships (ships).

Don't worry about the code of the map or the ghost roles yet; for now, let's focus on actually making a map. Which leads to...

Mapping Standards

Mandatory for every area

  1. An APC
  2. An air alarm
  3. At least 1 scrubber
  4. At least 1 vent
  5. Light sources
  6. Emergency shutters on all airlocks
  7. An emergency closet
  8. A fire extinguisher

Mandatory decorations

  • Under doors should preferably be full steel tiles. Hatched markings as well, if it fits the area.
  • Under emergency shutters (e.g. in hallways) should preferably be full steel tiles. Hatched markings as well, if it fits the area.

Essential parts

  • Engineering and atmospherics
  • Carbon dioxide tanks
  • A medical bay, or first aid kits
  • A holopad
  • Extra uniforms
  • Food, rations, or a kitchen
  • A shuttle

Glossary

Room: Self explanatory.

Area: These are defined in the map's .dm file; they're that colourful overlay that can be toggled off with Ctrl + 1. If something is in an area, it'll be affected by that area's power or alarm status; for example, if an area is vented, the air alarm within that area will automatically trigger emergency shutters and shut off the vent and scrubbers. If a light is placed within an area with an APC, it'll be powered until that APC stops being powered. This will make more sense as you learn more about mapping.

Mapping Essential Systems

Atmospherics

See also: Guide to Atmospherics

So! You are not an engineering player but you want to make an atmospherics system. Well, you should go play engineering to learn these systems. Go on, go play a round as an apprentice. This guide will be here when you get back.

...Alright, now that you're back, let's get into how atmospherics works. To the right is a basic atmospherics setup, from the PRA Headmaster ship.

There are two air tanks, connected to a supply line. This is how you get breathable air on a ship, and fill a room when it has been vented. The air tanks have a pressure regulator that takes air to the vents.

There is a mixed gas canister and a pressure tank, connected to a scrubber line. Scrubbers are what takes bad air out of a room; if you have a phoron flood, the scrubber will slowly but surely filter it out. The tanks have a gas pump that brings gases from the scrubbers to the tanks.

To pare this down even further:

  • Good gasses are in air tank. Good gasses go to vents where vents pump good gas into ship.
  • Bad gasses are in mixed tank. Bad gasses get taken by scrubbers to mixed tank.

Quick tips

Why use different types of pipes? Simply put, you don't want to cross the same type of pipe over each other by accident, otherwise you'll mix their contents or make sure they don't work. Using many types of pipes has a good chance to save you time and headaches when you're mapping in a tight spot.

Canister connectors and pressure tanks can't connect to "special" types of pipes without a universal pipe adapter; putting an auxiliary, scrubber, fuel, or supply pipe in front of one of these features means they simply won't connect when you run the map.

To avoid this, you can do one of the following:

  • Use a different type of canister connector. There exist ones for aux pipes, fuel pipes, scrubber pipes, and supply pipes.
  • Use the basic type of pipe, then connect said pipe to a universal pipe adapter, then connect your desired type of pipe to the other side of the adapter.
  • Just use a basic pipe to connect to your output. Only do this for airlocks.

Pipes, scrubbers, and vents

As stated in mapping standards, each room needs to have at least one scrubber and one vent. This is what you should focus on mapping first; the pipes can come later. Large rooms like hangars should have two of each.

Once you're finished putting those down, though, you have two options;

  1. Map each pipe segment manually (and painfully).
  2. Connect all the vents and scrubbers with four-way manifold scrubber and supply pipes, then use this tool (link to Dreamy's autopiping tool) to automatically pipe the ship.

Once you have the piped map, it's a good idea to consider the power level of APCs on your map. Scrubbers and vents use a good amount of power when active; if you have a room with more than one of them, consider using a higher-power APC.

Wiring and power

Shuttles, Airlocks, and Docking Points

Variables

As you might have figured out by now, you can change the direction on some objects in StrongDMM. You can also sometimes change what the icon looks like. These states are controlled by variables.

Every variable on every item is editable within StrongDMM. This doesn't necessarily mean you should, because it can break your map, make it look ugly, or just be a lot of states to sift through when it comes time for developers to organise their code.

The most important kinds of variables you should know about are ID variables. These are what allow you to remotely connect switches, doors, blast shutters, and ship weapons.


Final Touches

Troubleshooting

  • Why am I crashing? You usually have a duplicate item, like an emergency shutter, a grate, or a pipe, on a tile. Delete that and run your map again.
  • Why am I failing unit tests?
    • Mismatched air on turfs. If you have a tile that's exposed to space, make sure you use the airless variant of that tile.
  • Why are these air alarms going off?
    • You used a preset tile with a different temperature, such as cooled tiles in a room with a regular air alarm (Tajara offships are common with this).
    • You used a preset air alarm with a different preset default temperature (server and freezer air alarms are bad for this).
  • Why won't my airlock work? Why won't my docking port dock?
    • Check to make sure all your buttons are actually on a tile with airlock markers on them.
    • Ensure you have docking port buttons set up.
    • Ensure that you've either set all the variables on your airlock marker correctly, or defined them within your ship's DM file.
  • Why isn't my ship gun working?
    • Check the weapon_id variable and make sure they're both set.