User:Nefarious6th/Mapping
Guide to Mapping
This is a guide for getting started in mapping, a one-stop shop for terminology, tools, and process explanations.
Getting Started
Regardless of if you're coding, mapping, spriting, or doing soundediting, you'll need to set up a local copy of the Goonstation Code Repository on your PC. To do so, follow the steps detailed in ZeWaka's Goonstation Development Guide exactly, and you'll get your local copy set up, as well as have the ability to push your changes to your remote branch on GitHub to eventually open a Pull Request and have your work reviewed.
The process for submitting a Pull Request on GitHub is also the same, whether you're working on coding, mapping, spriting, or sounds, and when you open a Pull Request in the main repository, the labeller bots will automatically tag it with `[mapping]` based on the files you've changed.
Where to Start
Making a map, a fully-functional, ready-for-review, good map, take hundreds of hours. Most substantial maps including [Destiny] and [Donut 3] took their creators half a year to make. To be brief: a map is a long-term project that requires patience and many iterations of design and testing to get right.
Because the amount of time to invest in a map is so significant, it might be hard to know where to start. An excellent place for beginning mappers to learn about fleshing out concepts into full areas and hone their technical skills is making prefabs, those fun little places in the [Asteroid Belt] or [Trench] that are often themed around a single idea and contain some unique story or loot. The majority of prefabs are 30 tiles wide by 30 tiles tall. They're saved in a special spot in the repository just for prefabs, under the "assets > maps > prefabs" folder. Poke around in there to see currently implemented prefabs, and see the More on Prefabs section when you're ready to begin.
Terminology and Basics
There's a couple of important terms and differentiations to be made when mapping, particularly when comparing some assets versus others. This section provides a crash-course on everything you need to know to successfully make a functioning map.
Here are the different parts that make up a map:
- A turf is the core of the map; these are both Walls and Floors
- An object is all the stuff that goes inside the map and the rooms you make, notably Doors and Furniture, but also any machinery, wires, and landmark spawns too.
- An area is a zoning specification for a map; this is how you define Departments, but also some special functions like which areas are protected during radiation blowouts, or which areas are protected by machines like turrets.
Some other essentials to know about specific object types and what their paths mean: Walls, Floors, and Windows
- There are two types of walls, floors, and windows: reinforced and just standard. Reinforced walls have extra durability that standard walls from a mapper's viewpoint, and require more effort and interaction to break down from a player's perspective.
- There are also then additional subtypes of walls and floors, Simulated and Unsimulated (discussed under each, respectively)
- Walls
- Reinforced walls are used on maps in rotation for high-security areas, like the walls of the Armory, Departmental Head's Offices and Quarters, and the Engine Core. The use of reinforced walls in these places means it's harder for players to break into these places by simply deconstructing the walls, but in the case of the Engine Core, it also means that if the Engine explodes from normal operation, the walls are not as likely to break down.
- Reinforced walls are also used on any external walls on maps in current rotation. In other words, if the wall borders on empty space, it's best to make it a reinforced wall. Events like Meteors or breaching attempts from Nukies hit these walls first, and they should offer some protection to the station as a first line of defense.
- Simulated walls are used anywhere you want players to be able to interact with that wall, whether it's deconstructing or bombing it. Station areas should be simulated to allow for players to dismantle and put back pieces of the station; it's a sandbox game after all!
- Auto walls are the standard walls used on all modern maps in rotation. The "auto" implies the nature of how they connect with adjacent walls of similar types. You want walls to look continuous, so you will want to use auto walls.
- Floors
- Reinforced flooring is a special type of flooring that has a black hexagonal pattern on it; this should be used under any Engine Cores, for the same reasons you would want to use reinforced walls. Podbays also use this flooring, as they're prone to exploding Space Pods and welder tanks.
- The path for this type of flooring is under
/turf/simulated/floor/engine
- The path for this type of flooring is under
- Simulated flooring is like simulated walls; those are tiles that players can interact with and change, whether it's plating the tiles in pizza, prying them up with crowbars, or bombing them. Station tiles should be simulated.
- There are also variations of each type of tile that are simulated and airless. These tiles should only be used in places you want to intentionally be uninhabitable, like broken apart and breached wrecks that start the round as such, like on Horizon. If you don't intend for people to have to wear a mask and use oxygen tanks to access an area, do not use these tiles.
- Windows
- There are windows, and then there are wingrille spawners. Wingrille spawners both place windows and grilles on a tile, and make sure that the grille layers under a window. But, if you intend to have a window without a grille under it, you will need to use windows of types under
/obj/window/auto
.
- There are windows, and then there are wingrille spawners. Wingrille spawners both place windows and grilles on a tile, and make sure that the grille layers under a window. But, if you intend to have a window without a grille under it, you will need to use windows of types under
-
- Crystal wingrilles are an even more durable type of window made from plasma glass, that come as reinforced windows over grilles.
- You can electrify windows, which is essential for high-security areas like the Brig or Captain's Quarters, to make breaking a window to get in non-trivial.
-
- To electrify windows, you need to first have a grille on the tile the window will be on (remember: wingrilles will spawn the grille automatically for you!)
- Then, you need a wire knot placed on the tile the grille is on. The grille is what actually conducts the electricity to the tile with the window on it. The knot then needs to be connected to a wire network that is powered (by the Engine or Solars).
- There are little quarter-tile windows called "thindows", and while they on their own aren't buggy or inconsistent in their behavior anymore, they're in a top-down perspective and don't match with most of the game's modern sprites, walls, doors, and human players, so they're not recommended for use.
- <- Thindow spawner; don't use! <- Window spawner; do use!
- Wingrille spawners for plasma glass thindows are a darker purple than the true window ones (these appear more like a bubblegum pink).
- <- Thindow spawner; don't use! <- Window spawner; do use!
- Wingrille spawners for normal glass thindows have hollow centers on them; modern full wingrille spawners have filled-in centers.
More on Prefabs
If you have a novel idea and are ready to try your hand at making a prefab Before you open up your map editor, it might be useful to doodle a rough map layout so you can build in a more organized fashion.
How big do I make this thing
For Goonstation, station maps should be 300x300 with only 1 z level (station here meaning basically anything that'll be the main area where people will play).
For any setpieces (whether for debris field, oshan trench, or an entirely separate adventure zone), the dimensions don't matter too much since they'll be copypasted into an existing level.
SAVE. Also save
Whenever you make any change that took any amount of time, save and make sure there's a backup. Dream Maker can sometimes corrupt maps, or simply not save your work, and you'll either lose part of your map or break the whole thing.
If you don't have some sort of fancier version control (i.e. git) that automatically keeps revisions when you save the map, you can make a backup by doing "save as" and adding a version number to the filename, i.e. mapname_ver(number).
Okay but how do I actually make map
General order of map creation should be something like:
- Basic skeleton of turfs (walls, floors)
- Objects in rooms (airlocks, machinery, etc)
- Area placement (important for APCs, teleportation, etc)
- Wiring (including APCs) and disposals
- Detail work; lighting+switches, access spawners, firelock stuff, door names, bot waypoints, teleporter beacons etc.
It's okay to look at existing maps for reference when configuring objects, but it's heavily recommended you create new instances of objects and change any necessary variables when making your map - this is less likely to introduce unintended consequences, and makes you more familiar with var-editing.
I Have a Map and It Seems to Work, Now What?
For a general checklist, reference the Goonstation Map Submission Guidelines - they're an excellent source of ways to validate your map's functionality. As a rule of thumb, if your map hasn't been tested, there's something wrong with it - don't be afraid to ask for help fixing or testing things. Note that your map must meet all the requirements listed in the first section if you want it to be considered for review!
What Is This about a Disposal Pipe Tester?
To test your disposal systems, Haine and Spyguy made a handy little proc you can call as an admin to test if they actually work as intended! To use it:
- Use the Advanced ProcCall verb (found in the Debug tab assuming you've already made yourself an admin.)
- Run
/proc/test_disposal_system
. Next, enter the X and Y coordinates of where stuff that goes in a disposal pipe is supposed to go, right at the end of whatever disposal pipe adventure you've created. Usually this will be the final conveyor belt right at the crusher door. - Wait a bit and you will be notified in your debug logs whether the test succeeded or failed.
Other Quality Assurance and Bug Testing Things
Mapping Programs and Formats
This is your toolkit to use in making maps. Any of these programs work in creating maps that can be Pull Requested into Goonstation's Repository.
- DreamMaker: This is the standard map editor that you get when you download BYOND. It has hotkeys for different functions and the ability to move individual objects on a tile without having to delete and then re-place them, but loading the environment tree takes some time and it is prone to crashing.
- StrongDMM: A map editor with a minimalist interface that also has hotkeys for different functions and a navigable editing tree. It doesn't, however, allow you to move individual objects and re-place them without deleting them entirely. Will sometimes crash.
- FastDMM2: A browser-based editor that has a minimally encroaching interface, but lacks some of the environment tree readability and hotkeys of the other two programs.
Community | |
---|---|
Contributing | Guide to Contributing to Wikistation · Goonstation Development Guide · Goonstation Contributor Guidelines · Spriting · Goonstation Spriting Guidelines · Coding · Goonstation Code Guide · Hosting a server · Mapping · Goonstation Map Submission Guidelines · Goonstation Audio Guidelines · Contributing to Requisitions |
Members | Admins |
Culture & Art | Terminology · Storyline (Old Storyline) · Basic Lore · Fan Videos · Fan Art |
History & Happenings | Changelog · Pre-2016 Changelog · History of SS13 |
Tales & Humor | Sex and the Singularity · Maintenance Doggs · The Rapper · The Trial of Heisenbee · Albert and the Deep Blue Sea · The uWu Interrogation · HeadSurgeon · Tales of The Devil · IT'S ALIVE! It died. IT'S ALIVE! It died. IT'S ALIVE! · The floor is now explosions · My god, it's full of butt · The Crashwich · The Doom Peel · Jugglemancy |