Skip to content

deepnight/ldtk

Repository files navigation

Level Designer Toolkit (LDtk) is a modern, efficient and open-source 2D level editor with a strong focus on user-friendliness.

Links: Official website | Haxe API (on GitHub)

GitHub Repo stars GitHub All Releases GitHub Workflow Status GitHub Workflow Status

Getting LDtk latest version

Visit LDtk.io to get latest version.

Building from source

Requirements

  • Haxe compiler: you need an up-to-date and working Haxe install to build LDtk.
  • NPM: this package manager is used for various install and packaging scripts. It is packaged with NodeJS.

Installing required stuff

  • Open a command line in the ldtk root dir,
  • Install required Haxe libs:
haxe setup.hxml
  • Install Electron locally and other dependencies through NPM (IMPORTANT: you need to be in the app dir):
cd app
npm i

Compiling master branch

First, from the root of the repo, build the electron Main:

haxe main.debug.hxml

This should create a app/assets/main.js file.

Then, build the electron Renderer:

haxe renderer.debug.hxml

This should create app/assets/js/renderer.js.

Compiling another branch

If you want to try a future version of LDtk, you can checkout branches named dev-x.y.z where x.y.z is version number.

IMPORTANT:

  • these dev branches might be unstables, or even broken. Therefore, it's not recommended to use, unless you plan to add or fix something on LDtk.
  • because dev branches might change quickly, you will need to update haxelibs often.
  • you will need to switch the LDtk haxe API to the same branch as LDtk repo. (adapt the branch name below accordingly):
haxelib git ldtk-haxe-api https://github.com/deepnight/ldtk-haxe-api.git dev-0.6.0

Running

From a command line in the app folder, run:

npm run start

Running inside Hide (as an editor plugin)

LDtk can run embedded in a Hide tab.

First build the plugin (from the ldtk root dir):

haxe hide-plugin.hxml

This creates app/nwjs/hide-plugin.js (sources in src/hide/plugin/). Then add to the Hide project's res/props.json (ldtk.project is optional and resolves relative to res/):

"plugins": [ "/path/to/ldtk/app/nwjs/hide-plugin.js" ],
"menu.extra": "<menu label='LDtk' component='ldtk.LdtkView'></menu>",
"ldtk.project": "path/to/world.ldtk"

LDtk then opens from the menu, in its own tab. Bonus: its CastleDB enum sync reads Hide's live database, unsaved changes included.

Running in NW.js (instead of Electron)

The renderer can also run standalone in NW.js, without the Electron main process:

nw app/nwjs

Contributing

You can read the general Pull Request guidelines here: https://github.com/deepnight/ldtk/wiki#pull-request-guidelines

Related tools & licences

About

Modern, lightweight and efficient 2D level editor

Topics

Resources

License

Stars

4.1k stars

Watchers

42 watching

Forks

Sponsor this project

 

Contributors