Description

A runtime parser for Tiled, an open source map editor. It allows you to dynamically load your Tiled project into your GameMaker game without having to export and import rooms and re-build the game.

Usage guide

This allows for example:

  • Player generated content: players can download and use Tiled to design maps, and have them loaded into the game
  • Host and upload rooms/levels online: tmx files hosted online can be downloaded into the game using http functions, allowing you to easily update the levels in the game
  • Build rooms without opening Gamemaker: collaborating with an artist or level designer who doesn't use Gamemaker? Now they can build the room/level in Tiled, and load that straight into GM.

GMTiled2 is named after lazyeye's GMTiled

Supported Tiled Features

  • Rotated and flipped tiles
  • Multiple tile sets per layer
  • Object layers (GMTiled2 can spawn instances based on objects in an object layer)
  • Custom variables for objects in object layer

Limitations

  • Orthogonal tiles only, with Right-Down render order
  • No Infinite mode, constrain yourself
  • All resources must be "Embed in map"
  • base64 encoded tile layers with either no compression or zlib compression (base64/zlib recommended). Do not use CSV or XML settings.
  • When a tile layer's tile size is not the same as the file's tilesize, placement of the tile will be rounded to the nearest whole tile. This may result in incorrect positioning of the tile

Usage:

Please see Usage guide Create a Tiled project, and make sure any tilesets that you create are named the same as tileset resources in your GameMaker project. e.g. if you have a tileset called "tl_indoor_tiles"; make sure the same sprite is imported into tiled, and the tileset also named "tl_indoor_tiles". See the example.tmx file included in the asset for an example.

Add the Tiled project tmx file into your GameMaker project so that it appears as an Included File resource.

The function tiled_oneshot(tmx_file) is a one-stop shop one-shot for loading the map. Provide the path to a .tmx file as an argument, and this function will create all the necessary layers from the Tiled project.

The bottom-most layer in the .tmx file will be 100 above the current object, and each layer will be 100 higher. e.g. if the calling object is at depth 0, the bottom-most layer will be at depth -100, the next layer will be at depth -200, etc.

Any layers that share a name with layers already in the room editor will have their depths moved.

Any objects with a name that matches an object name in gamemaker will be created as an instance on that layer. Any custom variables set in Tiled will be set in the instance after the create event. built-ins can be set this way.

For more control over the loading processing, the function tiled_read(tmx_file) loads and parses the .tmx file and returns a ds_map containing all the layer data; this can later be passed to tiled_create(tiled_data) which will generate the layers. Then either use tiled_cleanup(tiled_data) to clean up the ds_map to avoid memory leaks; or use tiled_destroy(tiled_data) to unload the layers and (hopefully) return the room to its original state (maybe).

Credits:

GMTiled2 uses DerpXML by Patrick

Example Dungeon Sheet tiles by Buch

End User Licence Agreement (EULA).

Age Rating: 4+

Version

GMS2 - Version 1.0.3. Published August 17, 2019

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait

Back to Top