diff --git a/howto-build-map.md b/howto-build-map.md new file mode 100644 index 0000000..9acd0ce --- /dev/null +++ b/howto-build-map.md @@ -0,0 +1,31 @@ +**How to build a map** + +**What you'll need** +* The [Tiled](http://www.mapeditor.org/download.html) map editor +* A text editor like [Sublime Text](https://www.sublimetext.com/), [Atom](https://atom.io/) or [VS Code](https://code.visualstudio.com/). Notepad could work too but let's not make it harder for ourselves? + +**Prep** +* Create a new folder in `server/config/maps`. The folder should't contain spaces and should ideally be your map name. For instance: `plainsOfRuin`. +* Download the map blueprint from [here](). +* Extract the zipped archive into your new map folder. You should now have `server/config/maps/{yourMap}/map.json`. + +**The Map File** + +Open the `map.json` file in Tiled. + +In the map file, there are two different layer types: Object layers and Tile layers. Object layers are for placing objects like: mobs, doors and room boundaries. Tile layers' purpose should be fairly obvious. + +Let's have a quick rundown of what the different layers are for. First the object layers: +* notices: Room names (these will pop up when you enter them) +* clientObjects: Objects that aren't tracked by the server but still have code behind them. For example: Candles (Have a light source component). +* objects: Objects that are tracked by the server but aren't mobs. For example: Portals (That move players between zones). +* mobs: NPCs or enemies +* hiddenRooms: Allows you to mark areas to be hidden until you enter them. +* rooms: Misnamed at the moment. These are actually 'mapping' tiles. More on this later. + +Now, the tile layers: + +* hiddenWalls: These wall tiles will be rendered over the relevant hiddenRoom. If these weren't here, the hidden area would just be black, possibly giving players a very good indication that a hidden area is located there. +* hiddenTiles: Exactly like hiddenWalls, except for tiles. +* walls: A wall tile is any tile that causes the player to collide. It doesn't have to be a wall or even a tree. It could be a regular ground tile too. Just remember that placing a tile in this layer would cause the player to not be able to walk there. +* \ No newline at end of file