Add Tiled compatible export to EGM

Reporter: fundies  |  Status: open  |  Last Modified: February 25, 2022, 12:14:26 am
This is a more open-ended project. The project is relatively well-isolated from the rest of ENIGMA, so ramp-up on both projects (ENIGMA and Tiled) will be small. However, the ENIGMA team is unfamiliar with Tiled, so this will involve more research on the part of the GSoC student.

EGM is intended to support multiple room formats. Currently, the formats we support are specific to ENIGMA; they are a high-entropy ASCII representation of room contents based on the svg_path specification.

Tiled is an open-source level editor that has become popular in the Indie dev community. The team would like to add support for exporting to .tmx (Tiled) editor files, and importing back from them.

Tiled already supports exporting to gmx (, so exporting to tmx should also be possible, but again, the team has not done detailed research on this.

This will give users further options outside of RGM for editing levels.

Open questions
Some discussion is due with the Tiled team to determine the best approach for spanning this gap.

  • Should ENIGMA export .tmx, or should Tiled support importing EGM's room specification? This doesn't make much difference from ENIGMA's standpoint, and comes down to two points:
    1. Whether Tiled team is interested in another importer.
    2. Whether ENIGMA's room importer can be generalized in a way to make maintaining a Tiled importer maintainable.
  • Should ENIGMA import .tmx files, or should Tiled export ENIGMA's room format? We believe Tiled should export its own format, and ENIGMA should just be compatible with it.
  • Compatibility: ENIGMA's intermediate format is Proto; any data that can be serialized into our protocol buffer representation can be exported or imported.
    • What does Tiled use as an intermediate representation?
    • Is there stark feature disparity between Tiled and ENIGMA's raw data?

The answer to that final question should help inform the questions above. It may be that Tiled's data layer is sufficiently mature to easily support importer and exporter re-use between the projects, which would be the best possible outcome.


  1. Determine the structure of Tiled's data layer and note any incompatibilities between it and EGM. (2-3 weeks)
  2. If possible, write a translation layer to move between ENIGMA's intermediate format (Room protocol buffers) and Tiled's intermediate format (1-2 weeks).
  3. Discuss support for ENIGMA-compatible export with Tiled team. This may enable them to simplify their GMX importer using ENIGMA infrastructure (1-2 weeks; an ENIGMA Mentor will help).
  4. Use the translation layer to enable one or both projects to import/export to the others' formats (<1 week).

Mentors: Josh, Greg
Difficulty: Hard
Expected size: 350h
Skills required: C++ fundamentals
Skills preferred: Experience with scene layout and scripting in video game engines, experience with serialization formats


sir i want to work on this issue

> sir i want to work on this issue

Best to discuss gsoc projects on discord

sir I have recently join the enigma gsoc channel on discord dont know much about the previous discussion
sir i want to ask that assigning the issue is on the discord channel or we can have it here
Please sign in to post comments, or you can view this issue on GitHub.