Guide to mapping: Difference between revisions
m Gonna change mentions of Citadel before some chucklefuck claims Skyrat is stealing this unfinished guide when... I made it. |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
== Getting Started == | == Getting Started == | ||
Once you download BYOND, you also download the prerequisite programmes for mapping, so don't worry! To actually contribute your maps to a project, you will however need [https://github.com/ | Once you download BYOND, you also download the prerequisite programmes for mapping, so don't worry! To actually contribute your maps to a project, you will however need [https://github.com/Skyrat-SS13/Skyrat13/pulls Github]. You can get away without using Github and have someone do all that final work for you, however, it is strongly advised you set up Github now before proceeding. | ||
# Setting up Github | # Setting up Github | ||
#* Visit [https://desktop.github.com/ Github to download the desktop client]; download it. | #* Visit [https://desktop.github.com/ Github to download the desktop client]; download it. | ||
#* Visit the [https://github.com/ | #* Visit the [https://github.com/Skyrat-SS13/Skyrat13/pulls Skyrat Github page], or alternatively, the Github page for whatever codebase you want to work on. | ||
#* Click the green "Clone or download" button (top right of the table of folders) and 'Open in Desktop'. | #* Click the green "Clone or download" button (top right of the table of folders) and 'Open in Desktop'. | ||
#** On the Github website, you can [https://guides.github.com/activities/hello-world/#branch create a new branch using this guide]. On Desktop | #** On the Github website, you can [https://guides.github.com/activities/hello-world/#branch create a new branch using this guide]. On Desktop | ||
Line 41: | Line 41: | ||
* Ctrl+Shift+MouseWheel ''Scroll around the map horizontally very fast.'' Note: Obviously, don't hold Ctrl to scroll vertically. | * Ctrl+Shift+MouseWheel ''Scroll around the map horizontally very fast.'' Note: Obviously, don't hold Ctrl to scroll vertically. | ||
=== Starting out your very first map === | |||
All maps in TG code must be the same size, or they will not work. The map size is X 255, Y 255, Z 1. If you want to feel extra safe, you can just copy and paste Box or Meta and delete everything on it. Same result. | All maps in TG code must be the same size, or they will not work. The map size is X 255, Y 255, Z 1. If you want to feel extra safe, you can just copy and paste Box or Meta and delete everything on it. Same result. | ||
Don't ever create a map larger than X 255 Y 255. You can have more Z levels than 1 without breaking everything else. | Don't ever create a map larger than X 255 Y 255. You can have more Z levels than 1 without breaking everything else. | ||
==== What we're lacking ==== | |||
When it comes to mapping, most people just edit existing maps over and over, doing reworks small and large, adding minor additions. Whilst it's better than nothing, we do need new content. Here's a quick run-through with what things are hot and spicy right now and some tips for them. | When it comes to mapping, most people just edit existing maps over and over, doing reworks small and large, adding minor additions. Whilst it's better than nothing, we do need new content. Here's a quick run-through with what things are hot and spicy right now and some tips for them. | ||
# Away Missions | # Away Missions | ||
Line 56: | Line 56: | ||
#* You '''will''' have to delete large portions of your map and rework them to make them good, you will probably end up deleting and/or remaking half of your map just to improve on it. If you feel like you need to rework something, rework it. It's best to bite the bullet early. | #* You '''will''' have to delete large portions of your map and rework them to make them good, you will probably end up deleting and/or remaking half of your map just to improve on it. If you feel like you need to rework something, rework it. It's best to bite the bullet early. | ||
#* Put air supply (distro) on layer 1 and waste (scrubbers) on layer 3. Now in-game, not only can you run both pipes in the same tile, you can run wiring through too and not have the wiring covering all but one pixel of each side of the pipe. It's also best to not use red or blue for station wiring. | #* Put air supply (distro) on layer 1 and waste (scrubbers) on layer 3. Now in-game, not only can you run both pipes in the same tile, you can run wiring through too and not have the wiring covering all but one pixel of each side of the pipe. It's also best to not use red or blue for station wiring. | ||
#* | #* Make something different and unique. Skyrat currently needs highpop maps, so stations suited for 50+ players. Cookie-cutter copies are boring. | ||
==== Understanding Common Variables ==== | |||
===== Direction / Dir ===== | |||
This is what direction a prop faces. BYOND supports three sets of possible directions for each sprite. One direction, four directions and eight directions. | |||
Here is how this translates. | |||
*'''North:''' 1 | |||
*'''South:''' 2 | |||
*'''East:''' 4 | |||
*'''West:''' 8 | |||
*'''North East:''' 5 (North[1] + East[4]) | |||
*'''South East:''' 6 | |||
*'''North West:''' 9 | |||
*'''South West:''' 10 | |||
===== Name ===== | |||
What an object is called. Right-clicking on it in-game will see. You should use this to change the names of things like Airlocks. | |||
===== Description ===== | |||
When you right-click on an object and examine it, you get the description. Paper has a variable called "info" which is what is on the paper; 'description' is also often called 'examine text'. | |||
===== Pixel X & Pixel Y ===== | |||
This lets you move objects on the map by a few pixels. This is very useful for when you want to place things on tables and keep them neat. | |||
[[File:Pixelxpixely.png]] | |||
This is how you can neatly arrange items like this. It may take a while, but it definitely makes your maps look nicer. | |||
'''Never use Nudge X or Nudge Y. This will likely break maps. Use Pixel X/Y instead.''' | |||
''Fun Tip: You can pixel-shift yourself in-game with Alt WASD/Arrow Keys!'' | |||
===== Icon & Icon-state ===== | |||
An icon refers to the file the icon is in. For example, floors.dmi. | |||
An icon-state is which specific icon or set of icons in a specific file. For example 'dark' in floors.dmi is a dark floor tile. | |||
===== Req Access ===== | |||
These determine what IDs you need to be able to open a door or use a vending machine. You can remove access requirements by changing this to null. | |||
Format it like this "1;4;7;3" "4" | |||
* req_access_txt - You need all IDs to use the object. | |||
* req_one_access_txt - You need at least one IDs to use the object. | |||
If I wanted to make a door where botanists, bartenders and chefs can access, I would use req_one_access_txt "25;28;35". |
Latest revision as of 08:12, 27 July 2020
Getting Started
Once you download BYOND, you also download the prerequisite programmes for mapping, so don't worry! To actually contribute your maps to a project, you will however need Github. You can get away without using Github and have someone do all that final work for you, however, it is strongly advised you set up Github now before proceeding.
- Setting up Github
- Visit Github to download the desktop client; download it.
- Visit the Skyrat Github page, or alternatively, the Github page for whatever codebase you want to work on.
- Click the green "Clone or download" button (top right of the table of folders) and 'Open in Desktop'.
- On the Github website, you can create a new branch using this guide. On Desktop
- On Github Desktop, click the branch tab, then new branch (or Ctrl+Shift+N). Create a branch based on master.
- Update your Master branch if necessary. Click 'Current Branch' on Desktop, choose a branch to merge into master and filter for upstream/master. Merge it, baby!
- Never make anything on the Master branch. Keep your Master branch updated and clean from changes, always update before creating a new branch.
- Click 'Current Branch' and change to your new branch. All of your changes should occur on this branch now.
- Getting into Dream Maker.
- Open Dream Maker (dreammaker.exe).
- Click File -> Open Environment
- Go to Documents -> Github -> Repository Name -> tgstation.dme
- Click File -> Open ->
- Go to Repository Name -> _maps -> map_files -> Pick a map -> MapName.dmm (Make sure you are not filtering file types at the bottom of the window)
- Click Layers -> Only Show Selectable Layers, then click either Ctrl+1 or Layers -> Area.
Congratulations! You should now have a map file open. Try opening a classic, like Box Station and having a look around.
Using Dream Maker
Dream Maker doesn't take long to get used to.
- The object tree, the objects you can place are here.
- The minimap. you can click this to quickly jump to a location.
- Tabs. Like Photoshop, your maps, code files and sprite files are all in tabs. You can copy and paste from one tab to another.
- Your active object. This is what you place when you click. Other instances of an object will appear in this window too. An instance is a variation of an object.
- Single placement tool. You place tiles one at a time with this tool.
- Area placement tool. You place tiles in a rectangle with this tool. Useful for building large areas fast.
- Marquee selection tool. You can select a rectangle and move it around, as well as copy and paste.
Here are some hotkeys.
- Ctrl+Click Place an object on top of another object. You will need to do this to put wires on top of pipes, for instance.
- Ctr+Shift+Click Make whatever you click on into your active object.
- Shift+Click Delete the top-most item. Note: If you have a turf selected, this will delete a turf. If you have an object selected, it will delete an object.
- Ctrl+MouseWheel Scroll around the map horizontally.
- Ctrl+Shift+MouseWheel Scroll around the map horizontally very fast. Note: Obviously, don't hold Ctrl to scroll vertically.
Starting out your very first map
All maps in TG code must be the same size, or they will not work. The map size is X 255, Y 255, Z 1. If you want to feel extra safe, you can just copy and paste Box or Meta and delete everything on it. Same result. Don't ever create a map larger than X 255 Y 255. You can have more Z levels than 1 without breaking everything else.
What we're lacking
When it comes to mapping, most people just edit existing maps over and over, doing reworks small and large, adding minor additions. Whilst it's better than nothing, we do need new content. Here's a quick run-through with what things are hot and spicy right now and some tips for them.
- Away Missions
- Old away missions fall into two boxes: either it's old, ugly and looks horrible, it's absolutely full of Syndicate loot and/or better or both. We need away missions that give modest more modest loot. Guns are fine, if you keep them limited. You can give people improvised weapons to fight the baddies at the start of the away mission, that's much better than dropping 5 WT550s with DNA-locked firing pins down. If you give the crew syndicate weapons, it is very unlikely that your away mission will be added.
- Break the mould and make something no. Cookie-cutter copies of old away missions are likely to be rejected. Although most people shake in fear at the mere thought of new content, it's best to create something unique than it is to create "Wizard Away Mission: Layout 3".
- Your away mission has a start point and endpoint or a teleporter that acts as both. Consider which you want. Do you want people who go in to be able to get back out without facing adversity or not?
- Not all away missions have to be lethal, not all away missions have to be large.
- New Space Stations
- Oh boy everyone is going to complain. Everyone is going to nitpick constantly. But don't worry - you're one of the what, six people who have even attempted this in the past six months? Remember that and don't be discouraged.
- You will have to delete large portions of your map and rework them to make them good, you will probably end up deleting and/or remaking half of your map just to improve on it. If you feel like you need to rework something, rework it. It's best to bite the bullet early.
- Put air supply (distro) on layer 1 and waste (scrubbers) on layer 3. Now in-game, not only can you run both pipes in the same tile, you can run wiring through too and not have the wiring covering all but one pixel of each side of the pipe. It's also best to not use red or blue for station wiring.
- Make something different and unique. Skyrat currently needs highpop maps, so stations suited for 50+ players. Cookie-cutter copies are boring.
Understanding Common Variables
Direction / Dir
This is what direction a prop faces. BYOND supports three sets of possible directions for each sprite. One direction, four directions and eight directions. Here is how this translates.
- North: 1
- South: 2
- East: 4
- West: 8
- North East: 5 (North[1] + East[4])
- South East: 6
- North West: 9
- South West: 10
Name
What an object is called. Right-clicking on it in-game will see. You should use this to change the names of things like Airlocks.
Description
When you right-click on an object and examine it, you get the description. Paper has a variable called "info" which is what is on the paper; 'description' is also often called 'examine text'.
Pixel X & Pixel Y
This lets you move objects on the map by a few pixels. This is very useful for when you want to place things on tables and keep them neat.
This is how you can neatly arrange items like this. It may take a while, but it definitely makes your maps look nicer.
Never use Nudge X or Nudge Y. This will likely break maps. Use Pixel X/Y instead.
Fun Tip: You can pixel-shift yourself in-game with Alt WASD/Arrow Keys!
Icon & Icon-state
An icon refers to the file the icon is in. For example, floors.dmi. An icon-state is which specific icon or set of icons in a specific file. For example 'dark' in floors.dmi is a dark floor tile.
Req Access
These determine what IDs you need to be able to open a door or use a vending machine. You can remove access requirements by changing this to null. Format it like this "1;4;7;3" "4"
- req_access_txt - You need all IDs to use the object.
- req_one_access_txt - You need at least one IDs to use the object.
If I wanted to make a door where botanists, bartenders and chefs can access, I would use req_one_access_txt "25;28;35".