Skip to content
This repository has been archived by the owner on Feb 18, 2021. It is now read-only.

Mapmaking

Kyle J. Kemp edited this page Jan 23, 2015 · 17 revisions

Introduction

To make maps, you need to use Tiled.

Layers

On the map, there are a lot of things to explain. There are layers, and on each layer, there can be any number of regions, interactables, or terrain.

  • The bottom-most layer is Terrain. On this, there is nothing collidable.
  • The next layer is the Blocking layer. Here, Air, Brick, and Mountains are dense and cannot be walked through.
  • The third layer is the Interactables layer. On this, you will find things like Bosses, Doors, Teleports, Collectibles, Treasure, and Trainers.
  • The fourth -- and optional -- layer is the Regions layer. Here, you will find squares that denote certain map regions. They're mostly cosmetic, but they have to have a name.

Required Information

There is a little bit of information required or optional by each of the things on the Interactables layer.

  • Trainers simply need their name to correspond with the class that they are. The Mage trainer for example, is named Mage, and has the type Trainer.
  • Collectibles are similar to Trainers. They only need a name and to be the type Collectible.
  • Bosses are similar to Trainers and Collectibles in that they only need a name and the type Boss, but they need to specify additional information in boss.json and bossitems.json. They can also specify teleportOnDeath -- this has to be a location (similar to toLoc for Teleports), and if the players lose, they get teleported away. More on that later.
  • Treasure is remarkably similar to Bosses, in that they only need a name and the type Treasure. There needs to be some extra data specified in treasure.json. More on this later.
  • Doors are open-canvas. They can do pretty much everything that Treasure can.
  • Teleports need to specify either toLoc (this is a specified teleport location) or destx, desty, and map (the name of the map). There also has to be a movementType (either ascend, descend, teleport, or fall). Optionally, a destName can be specified - this would be the display name of the new location. They should be named, but that's optional. For examples of these, feel free to ask around or check the maps out.

Now, onto the good stuff. Any interactable can specify whether or not their tile can be entered using various means, which simply means that you can specify requirements for entering a tile. You can restrict interactions by class, boss kills, collectibles found, or achievements earned. You simply specify one of these attributes:

  • requireBoss
  • requireClass
  • requireCollectible
  • requireAchievement
  • requireMap
  • requireRegion

And you set it to something like Jester, Vampire Lord, Prisoner Shackle, Golden I.

  • Anything in the object layer can have flavorText set on it, and that will show up when looking at it from the web interface.

  • If you want to force an event to happen (such as a level down, fate pool visit, or something), you can set forceEvent to the internal name used by the game (providence, levelDown, battle, etc).

  • If you want to make your content event-specific (winter, etc), then you can set the holiday attribute to the holiday you want.

Some examples of things you can do here, are restrict teleports to having a certain boss killed (maybe there's some map progession), restrict doors from opening (except for Thieves, because they're awesome), restrict chests from being opened without their Key (which would be a collectible), or require some achievement to enter a new zone.

You can specify any combination of those four requirements on anything.

If you want to make your teleport have a custom message when teleporting a player, you can specify anything (ie, instead of Sedgwick ascends to Norkos. you could have Sedgwick ends up lost on Idle Island. The syntax for specifying this is as follows:

%playerName ends up lost on %destName.

Verifications

All of the content will go through a verification check when a pull request is submitted, and it must conform to these requirements:

  • All boss parties must have valid members.
  • All boss treasure (collectibles, items) must have a dropPercent such that 0 < dropPercent <= 100.
  • All bosses and boss parties must be on the map. Bosses included in a party do not need to also be on the map, just the party.
  • All treasure chests must be on the map.
  • All treasure in chests must be valid.
  • All teleports must lead to non-dense tiles that are within the boundaries of the map.
  • All staircases must lead to a matching staircase (ie, if you are going down, the teleport should drop you on a tile that goes up). This does not apply to teleports or falls.
Clone this wiki locally