8 ms·
LDtk: A modern and open-source 2D level editor
- samhain 5y agoThis is absolutely fantastic work. I’ve been tinkering with Unity’s hex grid trying to automate some top down level building under this alternate grid system. It has some interesting challenges surrounding height/cliffs and water. Quite a useful tool here, even in a traditional square grid space.
- markus_zhang 5y agoThanks, this looks really cool. I wonder what kind of algorithm and tilesets are needed to achieve what we see in the first two animated gifs on right side. The second gif seems to be sort of 2D LOD -- once the designer zooms out a different layer is shown instead of the tiles. I think this can be achieved by preparing one set of tileset for detail editing and one for zoomed out views and switch between them. However I'm not sure how to do things in the first gif. Looks like you have to prepare a few different (but visually close) tiles for one "group" (say grass/dirt/sky/etc.) and when the designer drag the mouse the editor randomly chooses one tile from each group. Still I think it's a lot more complicated than I thought. I think "Tiled" does a lot of those cool things too, just wondering where we can find tutorials on those algorithms (I don't even know their names)
- pkaye 5y ago> However I'm not sure how to do things in the first gif. Looks like you have to prepare a few different (but visually close) tiles for one "group" (say grass/dirt/sky/etc.) and when the designer drag the mouse the editor randomly chooses one tile from each group. Still I think it's a lot more complicated than I thought. The algorithm is called Wang Tiles. I think you identify a set of tiles which have edges compatible with each other by coloring them. Every time you place a tile, it will pick a random tile that meets all edge constraints. https://en.wikipedia.org/wiki/Wang_tile https://en.wikipedia.org/wiki/Wang_tile
- markus_zhang 5y agoThanks! Am checking it out, sounds cool~~
- kowlo 5y agoFrom the "lead dev and game designer on Dead Cells"! I started off watching the GIFs for LDtk, ended up playing this https://deepnight.itch.io/petit-tracteur-bleu https://deepnight.itch.io/petit-tracteur-bleu! EDIT: finished the tractor game, now onto https://deepnight.itch.io/fort-loop https://deepnight.itch.io/fort-loop which I think uses some early version of the level designer called LEd? There's a tabletop rpg map editor too https://deepnight.itch.io/tabletop-rpg-map-editor https://deepnight.itch.io/tabletop-rpg-map-editor
- scrame 5y agoThanks for posting these. I saw it was the guy from Dead Cells, but didn't think to look through his other projects. The tractor game is polished enough that I would have kept playing if there were more than one level. The RPG Map Editor reminds me of an ancient project where I was trying to draw and export Dragon Warrior style tile maps in javascript, but about a million times better. Between this and 0x72: https://0x72.itch.io/ https://0x72.itch.io/ there's really enough nice looking assets and tools to get something nice looking off the ground.
- 0x72 5y agoThanks for mentioning. LDtk is just amazing! One of those "why didn't someone made that before?" (maybe I'm missing something? it on some level resembles puzzlescript.net) Genius, relatively simple to implement and extremely useful. Easily can save you hundreds hours of work for even in a small project. Sébastien deserves all the praise - LDtk is not only a great idea, but also super-polished and open-source. What not to love?
- scrame 5y agoOh cool! Love your artwork. I came across it near the end days of Kongregate when there were a lot of clever little platformers getting posted by different users that had some suspiciously similar art. I particularly like your micrometroidvania kit: https://0x72.itch.io/2bitmicrometroidvaniatileset https://0x72.itch.io/2bitmicrometroidvaniatileset
- app4soft 5y ago> Linux Ubuntu (experimental) 76 MB > HTML5: LDtk is built around modern web standards. Why its size is so huge? Is it Electron-based? Size of Tiled[0] app binaries for each of MacOS/Win/Linux platform is 3 time smaller than LDtk's binaries. What is "modern" in differnce between LDtk and Tiled? [0] https://github.com/mapeditor/tiled/releases https://github.com/mapeditor/tiled/releases
- CJefferson 5y agoWhy does it matter? At all? Is anyone really pushed for 76MB?
- vanderZwan 5y agoBecause Tiled is a very mature 2D tilemap editor with quite a few features, so if a new product comes on the market that is three times bigger then an obvious question is "what does this have to offer that the older, smaller program doesn't?"
- umvi 5y agoHaving used both Tiled and LDtk, the latter is far more fun to use. Tiled is bogged down by legacy compatibility quirks that will never be fixed.
- whateveracct 5y agouh we aren't so pressed for size that a larger program has to also have more functionality caring about program size to this degree is just so comically misplaced lol
- aww_dang 5y agoMany find software bloat objectionable, if not disappointing.
- mysterydip 5y agobloated disk space usage can be an indicator of bloated cpu and memory requirements.
- davidscolgan 5y agoOh hey it's deepnight - I remember your awesome Ludum Dare games. Thank you for sharing this tool with the gamedev community!
- Buttons840 5y agoI want to talk about Haxe. Haxe is a small niche language. But I almost fell out of my chair when I saw the showcase of games written with Haxe. Quality indie games I have played myself, like Dead Cells, and this level editor is another very polished example. Even things like Pokemon Sword and Shield. What's going on here? I need to learn me some Haxe. Are all of these using Kha - so called "SDL but super-charged"? Or are there even more great graphics libraries for Haxe? (Also, I found LDtk on a four month old HN post less than three hours ago, and now it's front page. I'm not the one who submitted it. My connection to the hive mind must be a good one.)
- skymt 5y agoDead Cells and a number of other high-quality commercial games are using Heaps: https://heaps.io/ https://heaps.io/ The Haxe website has links to some other popular frameworks like OpenFL and HaxeFlixel: https://haxe.org/use-cases/games/ https://haxe.org/use-cases/games/
- Buttons840 5y agoThanks for bringing heaps and the others to my attention. I look at this list and suddenly 4 of the top 10 game engines I'd consider for a personal project are from the Haxe ecosystem.
- 542458 5y agoFrom my limited experience, Haxe seems like a really neat language but good grief the documentation and learning resources are awful. It’s possible that I was going about it wrong, but there was very little by way of “here’s where everything is and how you’re supposed to do things” resources. I feel if that issue was better handled the language would see much more use than it currently does.
- k_ 5y agoDo you have concrete examples of things that are missing? We are aware that documentation is generally lacking, but it's not easy to see exactly how/where from inside. Would gladly contribute on such a list.
- tomc1985 5y agoCool. Though I wish the installer would let me choose my own path (what's up with software installing into the horribly inaccessible path of %HOME%\AppData\Local\Programs anyway?)
- lattay 5y agoThat's user space install. It’s actually nice when you don't have admin rights
- ensiferum 5y agoBeen also working on a 2D game engine and editor. Still a few features missing but getting there! http://github.com/ensisoft/gamestudio http://github.com/ensisoft/gamestudio
- lattay 5y agoThat's pretty impressive for a single dev ! Maybe you should try to find amore distinctive name though.
- ensiferum 5y agoThanks Any suggestions then? =)
- markus_zhang 5y agoHi this is really cool! Looks like you roll your own UI system? That's impressive~~
- ensiferum 5y agoYes I wanted something that is simple and integrates perfectly with my graphics stack and editor. Styling is completely separate from the logical UI functionality.
- ewzimm 5y agoY
- jmiskovic 5y agoAnother similar tool: https://rxi.itch.io/tilekit https://rxi.itch.io/tilekit
- pnexk 5y agoMy friend has been working on an open source game engine/editor for some years now, inspired at first by the platformer fangame SMBX. (English is not his first language) https://github.com/WohlSoft/Moondust-Project https://github.com/WohlSoft/Moondust-Project
- whateveracct 5y agoWith this and tiled - I really don't understand how you hook them into your game without a bunch of code managing the boundary between level editor and real code.
- detaro 5y agoThe level editor exports a file. You need to write code that parses that level file into a format your game can use.
- markus_zhang 5y agoI think you just load the generated file into the game. One part I don't know is how to handle entities. Each game has its own entites and maybe even completely different treatment (architecture) of entites. I'm not sure how flexible they are. I'm building a simple 2d RPG that is a Ultima spin off and a map editor. In my game I could put different components into entities (not ecs but more oldschooled way) and call each component's update(). Since I'm building my own editor, it's a lot easy to integrate all those into it. For example I could even have a dedicated entity tab that designers can enter some values. I wonder how tiled treat this kind of questions. I browsed through the manual and didn't see anything related so I think it's a pure map editor.
- johnday 5y agoMany Haxe game engines do indeed provide a shim layer which converts things like objects, pathing, behaviours, and triggers from the level engine's output into game logic. For examples, see https://haxeflixel.com/documentation/loading-the-tilemap/ https://haxeflixel.com/documentation/loading-the-tilemap/ .