8 ms·
LEd: Open-Source 2D Level Editor
- hombre_fatal 6y ago> LEd is based on my personal experience creating Dead Cells and making game jams. Cool, they made Dead Cells which gives this instant cred as opposed to yet another gamedev tool from someone who never managed to ship a game because they decided to just make gamedev tools.
- an_opabinia 6y agoThis is true, in a narrow sense. Countless times though, talented people need stimulation to finish something. Tools provide that. Indie games take years to make too, many of the best ones 4-7 years, entering "early access" as essentially finished products. Authoring tools give someone with a diverse set of skills time and space to figure out something, usually in the context of originality. It is also a rehearsal for the successful game that may very well be done in a fury in six months at the end of seven years.
- stephc_int13 6y agoBuilding tools is an integral part of building games. You can sometimes use generic tools but it is often preferable to have a custom level editor, even better when it runs directly inside the game.
- hombre_fatal 6y agoI think we get stuck building tools as a form of procrastination because gamedev is so hard and open ended. If you find yourself building tools instead of getting on with what you set out to do, you’ll probably come up with justification like your comment, but scrutiny will reveal it’s just procrastination.
- stephc_int13 6y agoThe trick is to avoid trying to "future-proof" your tools. You have to treat them as quite disposable, not polished gems. Add features as you need them and build components that you can salvage for your next tool.
- seg_lol 6y agoMaybe jig would be a better description. They are more focused on the workpiece and the outcome, a part may have multiple steps that it undergoes and a jig assists in its production.
- deepnight 6y agoI agree: sometimes, making tools during a game dev process gives you a LOT of insight on what is going wrong in a project. Happened many many times to me :)
- pkaye 6y agoJust realized I have Dead Cells in my Steam library. Paid for it and didn't even try it out. I buy way too many games...
- dgellow 6y agoIf you have some free time, you may want to give it a try, it is really good :)
- hombre_fatal 6y agoDeserves a controller if you have one.
- royjacobs 6y agoThis is really nice. Especially the automatic rules are lovely.
- majkinetor 6y agoMakes me wanna develop a game today.
- bdickason 6y agoThis is cool. Curious to see how auto tiling works but I really like the simple parameter editing for entities. I have a level editor I rolled after frustration with tiled and end up using for all of my projects. Every time it’s not quite right and I discover some basic bugs. Feels like I spend more time fixing bugs than making levels.
- stephc_int13 6y agoTake a look at the json files, you'll quickly understand how the auto tiling rules are configured.
- endlessvoid94 6y agoThis looks awesome. Wondering if anyone has any suggestions for a similar tool but for isometric sprites?
- alpaca128 6y agoThere's Tiled, but it's not as advanced as LEd seems at first glance.
- atum47 6y agoI'm have plans to add isometric tiles to my tileEditor[1]. But if you want to see how it's done you can take a look at isoCity source code[2] 1 - https://github.com/victorqribeiro/tileEditor https://github.com/victorqribeiro/tileEditor 2 - https://github.com/victorqribeiro/isocity https://github.com/victorqribeiro/isocity
- simlevesque 6y agoI played so many of this guy's games. They were my childhood.
- lynndotpy 6y ago> Universal and agnostic: compatible with all languages (not only Haxe) and game frameworks in the world Does anybody who is experienced with game dev understand how exactly this is true? There must be a lot of engineering work between parsing the JSON and having a playable level in ones engine, no?
- andrewmcwatters 6y agoI build Planimeter’s Grid Engine, and we use Tiled for our primary implementation, which also has a terrific generic map abstraction that aligns well to multiple types of level design and game engine architecture. While there is a bit of work one has to do, there isn’t as much as you’d think. If one has enough engine level code implemented already, multiple map formats are feasible.
- deepnight 6y agoThe output file is pure JSON, and I tried to make it legible and easy to parse for quick use cases. So it should be quite simple for any game dev out there with basic parser knowledge to make its own importer. But at some point, I plan to try to have a proper "official" importers for major engines, to make devs life even easier.
- danbolt 6y agoCurious to hear if you think there'd be value in a lossy conversion to Tiled XML/JSON as well. It might help with adoption if developers can take advantage of existing loaders, even if it's not perfect. That said, I don't know what the amount of work would be, especially if the two formats make different decisions on how to do things.
- umvi 6y agoDoesn't seem like it would be too hard. I bet I could convert LEd json to Tiled json in a python script + an afternoon if I wanted.
- n3k5 6y ago
- atum47 6y agoreally dig the artwork section. gives such a good feeling looking at those gorgeous pieces. nice job with the tool as well!
- deepnight 6y agoThanks <3
- zerr 6y agoDo they generate js/web app from Haxe and run it inside the bundled Electron? Why?
- deepnight 6y agoYes, the code base is Haxe and it "transpiles" to JS + node + electron. The idea is I'm more comfortable with Haxe but I really wanted to have a ~somewhat~ future-proof technology for the app (ie. JS/HTML5/CSS)
- zerr 6y agoIf it is easy (at least that's the premise of Haxe), would be great if you generate a different target as well - for those end users who despise Electron.
- Karliss 6y agoGenerating the core logic for different target is one thing but the UI code if it is written for specific target is a different thing. Haxe has many game libraries that would allow doing that with little or no changes, but in this case LEd is using direct html generation for UI. Making such porting more difficult.
- gavinray 6y agoIf people complain about the binary size and/or memory usage, one tip would be to see if it'll run with either NW.js or Tauri, should be close to a drop-in replacement. Tauri is even smaller than NW.js (I think ~600kb hello-world binary size) but uses Rust in it's toolchain way under the hood to build, so take that as either a positive or a negative. https://github.com/tauri-apps/tauri https://github.com/tauri-apps/tauri NW.js is essentially lighter-weight Electron. https://github.com/nwjs/nw.js https://github.com/nwjs/nw.js Would be neat if it was a straighforward implementation and produced tiny self-containing cross-platform binaries. Disclaimer: I also have no idea how gamedev works though, so this might not be applicable
- 6y ago
- johnfn 6y agoFor those who aren’t aware, this is deepnight, author known not only for Dead Cells but also for winning or placing high in many, many ludum dare contests over the years. His stature definitely lends a lot of credence to this project.
- hesdeadjim 6y agoAn alternative to Tiled, oh thank the maker.
- umvi 6y agoI like Tiled but dang it has some quirky behaviors that can't be fixed for backwards compatibility reasons.
- hesdeadjim 6y agoYea, it organically grew in features over time and just never had the opportunity to rethink the fundamentals of how it worked.
- datalus 6y agoAnother alternative (but not free) option is https://rxi.itch.io/tilekit https://rxi.itch.io/tilekit
- gavinray 6y agoI'm gonna go on a slight tangent, about the Haxe language. I had seen this before -- it's really cool! I never dug enough into the site to realize the creator was also on Dead Cells. The most interesting part to me, is the use of Haxe (in Dead Cells!). Haxe is to code what Esperanto was meant to be for spoken language. > "Haxe can build cross-platform applications targeting JavaScript, C++, C#, Java, JVM, Python, Lua, PHP, Flash, and allows access to each platform's native capabilities. Haxe has its own VMs (HashLink and NekoVM) but can also run in interpreted mode." Syntactically, there's "nothing new to see here" -- it may as well be Not-Quite-Typescript (with some other goodies; Pattern-Matching, GADT's, compile-time behavior, etc). But it never "took off". Yet here I learn that very impressive software/stunning games have been written in it, by incredibly knowledgeable folks. What happened with Haxe, where did it fail? I've never tried it myself, but I have a passion for pixelated 2D/isometric games and the tutorials on the authors' site are very sound, so I might give it a shot.
- deepnight 6y agoMy 2 cents on this one :) The Haxe core team is made of great coders, but not so great marketing guys. On day one, a proper game engine with decent documentation should have been a thing, but yet, as of today, it's quite rough to get into Haxe. I've tried to do my share by posting some tutorials, guides & open source projects (like LEd or GameBase), but it's a long road :)
- gavinray 6y agoOh uhh, hello there. You make really, really cool stuff. That makes complete sense though, feels like you have to be told about it (or go on a Wikipedia programming-language crawl) to know it exists. Thanks for the response, and keep being awesome =D
- bogwog 6y ago> What happened with Haxe, where did it fail? Who says it failed? Haxe is alive and well, even if it isn't a mainstream programming language. Even the latest Pokemon game used Haxe!
- asou 6y agoCan you make an official Unity plugin. This looks interesting, but I'm too lazy to venture beyond Unity in my game Dev journey
- umvi 6y agoYou don't need a Unity plugin. Just use LEd, export to JSON, and have a unity script read in the level as JSON and populate the scene. The beauty of this is that it is completely engine agnostic.
- _mkef 6y agoShouldn't be too hard when I think about it , if I write my own unity integration I'll open source it .
- mci 6y agoThe space of [A-Z]Ed names for editors is pretty crowded. LEd is also an old but good LaTeX editor for Windows[0]. [0] https://en.wikipedia.org/wiki/LEd https://en.wikipedia.org/wiki/LEd
- umvi 6y agoIs there a way to see tile id from inside the editor? When I pull the JSON into my game I get a bunch of "tileId" objects, but there's not an easy way for me to see what tile "45" is without manually counting into my tileset. I was hoping I could just click a tile and it would display the tileId somewhere...
- hiccuphippo 6y agoI love the effect on undo/redo. So many times in all kinds of editors do I cycle through undo/redo in a game of spot the difference just to find where did I made a change. Now I'm off to see how to implement this in my code editor.