Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is LDtk?
LDtk (Level Designer Toolkit) is a free, open-source 2D level editor aimed at indie game developers. It is built by game developers — its creator describes it as a dream level editor shaped by 20+ years of making games — and it focuses on a modern, user-friendly interface for building 2D levels.
Its main draws, based on the site's own description:
- World and level organization: Levels live inside "worlds," with layouts like "Grid-vania," linear, or free, and you move between views quickly.
- Customizable entities: You define your own entities (player starts, enemies, items, triggers) with typed properties such as hit points or patrol paths.
- Export made simple: A "Super Simple Export" gives you a few PNGs per level plus a small JSON file for entity data.
- Auto-rendering: Visual rules handle repetitive tile-skinning work.
- Aseprite support: It loads
.asepritefiles directly with live reloading, so saving in Aseprite updates the level, including image resizing. - Engine and language support: Projects can be loaded into engines and languages such as Unity, Haxe, and Playdate; the JSON output is documented for custom importers, and there is optional Tiled (TMX) export.
- Backups: A backup system can restore unsaved changes after a crash.
It is deliberately scoped: the editor targets platformers and top-down games, and the site explicitly says isometric 3D is not supported.
Next step: If you are starting a 2D platformer or top-down project, download it and test the export path into your engine first — that step usually decides whether an editor fits your workflow. Compare against Tiled if you need broader format flexibility, or Aseprite if your main need is sprite and tile creation rather than level layout.
Is LDtk free to use?
Yes, LDtk is free to use. The editor is described as “Fast. Free. Open source,” so you can download and use it without paying for a license.
The practical trade-off is not cost but fit. LDtk is built for 2D platformers and top-down games, with a workflow centered on worlds, levels, entities, and a simple export. If your project is 3D or isometric, it is not the right tool.
A useful next step is to test it on a small slice of your game: create one world, a couple of levels, define a player start and one enemy entity, then export and load the JSON in your engine. That tells you quickly whether its world layout and entity workflow match how you build levels.
If you want to compare free editors, Tiled is another long-standing option at Tiled. The main difference is that LDtk is more opinionated about 2D platformer and top-down workflows, while Tiled is a more general tile map editor.
How do I export an LDtk project to Unity or another game engine?
LDtk is designed so you don't need a dedicated exporter for every engine. It saves your project as a JSON file (plus PNGs for the visuals), and you bring that data into Unity or another engine with an importer.
The core export path
- LDtk's "Super Simple Export" gives you a few PNGs per level and a small JSON file containing your entity data.
- The JSON format is documented, so you can parse it in whatever language or engine you use.
- Tiled (TMX) export is available as an optional route if you'd rather use an existing Tiled importer first.
Bringing it into Unity
Unity doesn't read LDtk projects natively, so you have two realistic options:
| Approach | How it works | Best when |
|---|---|---|
| Community importer package | A third-party Unity package reads the LDtk JSON and generates tiles, colliders and entity prefabs | You want levels visible in the editor quickly and don't mind depending on an external package |
| Your own parser | You read the JSON with Unity's JSON tools and instantiate tiles and entities yourself | You need tight control over how entities map to your prefabs, or you're targeting a custom pipeline |
For most small teams, the community importer is the faster start; writing your own parser is more work but avoids being tied to someone else's update schedule.
Other engines
The same JSON works elsewhere. Haxe, Playdate and similar targets are covered by the ecosystem around LDtk, and any engine that can read JSON and load PNGs can consume the export directly. If an official importer doesn't exist for your engine, the Tiled export is a useful stopgap while you write one.
Practical notes
- Aseprite files can be loaded directly with live-reloading, so you can paint tiles, save, and see LDtk update without an intermediate PNG conversion step.
- LDtk's backup system can restore unsaved changes after a crash, which matters when you're iterating on level data before an export.
- Entities are customizable with typed properties (hit points, patrol paths, inventories), so decide early how each entity type maps to a prefab or object in your engine — that mapping is the part you'll maintain.
Next step: open one small test level, run the export, and inspect the JSON structure before building your importer. Understanding the entity and layer data layout first will save you from rewriting the parser later. You can check supported platforms and languages on LDtk.
Can LDtk directly open Aseprite files without converting to PNG?
Yes. LDtk can load .aseprite files directly, with no intermediate PNG conversion step. It also supports live-reloading: you paint your tiles in Aseprite, save, and LDtk updates the result — including image resizing — automatically.
That matters most for a solo artist or small team doing iterative pixel art. Instead of exporting a PNG, importing it, and fixing tile alignment after every tweak, you keep the source file in the project and let LDtk re-read it. The practical trade-off is that you need to keep the .aseprite file alongside the project rather than treating a PNG as the single source of truth, and you should confirm your target engine's importer handles whatever LDtk exports for that tileset. If your pipeline already generates atlases from Aseprite, decide whether the direct-load convenience is worth keeping raw source art in the repo.
Next step: open one existing project, point a tileset at its .aseprite file, repaint a tile and save, and watch whether LDtk refreshes without a manual reimport. If it does, you can drop the PNG export step for that asset.
For engine-side handling of the exported data, see the LDtk documentation at LDtk.
How does LDtk's backup and crash recovery system work?
LDtk includes a backup system designed to protect against crashes and unexpected shutdowns, and it can restore unsaved changes after a crash. The editor is also built around a project file that stores levels and entity data, so the backup behavior is tied to that project rather than to exported output.
What the page actually states
- LDtk offers "a strong backup system."
- It "can even restore unsaved changes if the app crashes."
- The tone is candid: crashes are treated as something that can happen, not as something the tool promises never occurs.
H3. How to think about it in practice Backups matter most during long editing sessions: you place entities, paint tiles, tweak properties, and haven't saved recently. If the app closes unexpectedly, the value of the feature is whether it recovers that in-progress state rather than only the last manual save.
A useful habit is to treat crash recovery as a safety net, not a replacement for saving. If you are doing a large world layout or a complicated entity setup, save at natural checkpoints anyway. If you want to verify the recovery behavior on your own machine, the practical test is to make a small change in a scratch project, leave it unsaved, force-quit the app, then reopen it and see what returns.
For teams, the bigger risk is usually version control: a recovered unsaved state can be newer than the last commit, so check what was restored before continuing. If you use LDtk alongside an engine such as Unity, the exported JSON and PNGs are separate from the editor's backup state, so a crash recovery in LDtk does not automatically update whatever your game project already imported.
If you want to go further, the official site is LDtk.
What world layouts does LDtk support for organizing levels?
LDtk supports three world layouts for organizing levels: Grid-vania, linear, and free. You pick one per world, and levels can be rearranged by drag-and-drop.
H3 When each layout fits
| Layout | How levels relate | Typical use |
|---|---|---|
| Grid-vania | Levels sit on a grid, Metroidvania-style | Interconnected maps where rooms connect in multiple directions |
| Linear | Levels follow a set sequence | Stage-based games, level progressions, side-scrolling campaigns |
| Free | Levels are placed anywhere on an open canvas | Overworld maps, hub areas, or non-linear arrangements |
You can switch between views with a mousewheel roll, so checking how a world is arranged does not require opening a separate screen.
H3 A quick way to decide
Start with the player's movement through your game. If they backtrack through connected rooms, Grid-vania matches that structure. If they move from one stage to the next, linear keeps the world readable. If the map itself is a space to explore or arrange freely, use free.
For a concrete case: a small team building a top-down adventure might use one free world for the overworld and separate linear worlds for dungeon floors, since layouts are chosen per world rather than once for the whole project.
To try it, create a new world, pick a layout, then drag levels around and scroll to switch views until the arrangement matches how players will actually move. LDtk is available at LDtk.
User reviews (0)