L3DEdit: Lemmings 3D Level Editor - Release topic (V0.51)

Started by namida, June 16, 2019, 02:32:31 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

L3DEdit is a Lemmings 3D level and graphics editor.

Current limitations
- Only the full PC version of Lemmings 3D is officially supported (though you can use the graphics from Winterland, together with full L3D). I have no intention to officially support Winterland, the demos, or the console versions - if it works it works, if it doesn't it doesn't, unless someone else wants to contribute code to make it compatible with other versions.
- Some obscure level settings are not editable. Most of these are nonetheless preserved. I'm working on a feature to edit the obscure / unknown values, so this should change in the near future.
- Extraction of images with the RLE compression does not work (graphics without that compression, which is most graphic files, can be extracted without issue). This is a low priority issue for me at the moment.
- Performance is somewhat weak. This has greatly improved since the first release, but could still be better, especially in the Lazarus builds. Using the Delphi build and/or reducing the resolution (under the View) menu can improve performance - the Delphi build should work on Linux + WINE.

I highly recommend reading the attached manual. You're welcome to ask questions even if the manual might answer them, but reading the manual might get you your answer a bit quicker. The manual states V0.48, but the next two updates are just bugfix updates. However, it has not yet been updated for V0.51.

Can I use Lemmings 3D Winterland's graphics with regular Lemmings 3D?
Yes, absolutely! Simply copy all files with a number as the extension - a quick way to find these is to sort the folder by "Type", then they'll all be at the start - EXCEPT for "BGRD.000" - from Winterland's "GFX" folder to Lemmings 3D's "GFX" folder. Some files will already exist; these files (except for BGRD.000, which is why I said don't copy that one) are byte-for-byte identical in both Winterland and regular L3D so it doesn't matter which copy you use.

L3DEdit V0.44 adds the relevant options to the presets menu. They will only appear if you have the corresponding graphic files (you will need to restart L3DEdit after copying them, if they weren't already there when L3DEdit started).

Unfortunately, the falling snowflakes effect from Winterland cannot be used in regular Lemmings 3D, nor is it controlled by the individual level file in any way (Winterland has a hardcoded "do this on every level except the 2nd one" effect - try swapping levels around and you'll see).

Can I get Lemmings 3D Winterland's graphic files without hunting down a copy of the game?
Yes, they're attached to a post later in this topic: https://www.lemmingsforums.net/index.php?topic=4274.msg75949#msg75949

As Lemmings 3D Winterland is a free game, I assume there's no issue with providing a copy of those graphic files in that fashion.




L3DEdit can edit almost everything in a level, but there's a few obscure details I didn't bother to add support for. If you have a specific need for a level feature it doesn't support yet, please request it and I'll see what I can do. You are also, of course, welcome to report bugs. You can make feature requests, but these are very low priority (unless they're easy to implement) at the moment.

As a reminder, L3DEdit is open-source, the source code is available on BitBucket, under the MIT Licence.
L3DEdit is written in Lazarus. The only dependency is Graphics32; either the version from GitHub or the version from Lazarus's Online Package Manager will work.
There is also an alternative branch which compiles under Delphi XE6. This requires obtaining and compiling Graphics32 from GitHub specifically; but also has no dependencies other than Graphics32.

Please be warned: Any side branches may be history-rewritten, at any time, without warning. The release branches, as well as the "master" (formerly "delphi"), "lazarus" (formerly "master") and "linux" branches are safe from this, but any side branches eg. used for WIP new features, could disappear or be rebased at any time.

This is still an early version. Expect bugs, save often, back up your work, report bugs you do find, and expect updates to occur frequently. And again - back up your work. There has been a bug in the past that deletes level files - fortunately it would only trigger on the official levels unless one went out of their way to achieve it triggering on a custom one, but the risk is there that a future bug might not be so nice.

You can file bug reports or feature requests either on Bitbucket (no login required), or as a reply to this topic.

If you want to be able to share replay files for your custom levels, and/or would like a quicker way to launch L3D under DOSBox, check out L3DUtils.

Regarding the three different versions:
L3DEditD.exe is a Windows build, built using Delphi XE6. It's the recommended version wherever possible - including Linux (via WINE).
L3DEditL (with no extension) is a Linux build, built using Lazarus. This is not as stable, and is missing a few features; it should only be used when you specifically need a native Linux build.

There is currently no Mac OS build.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Flopsy

Awesome, this has progressed really fast. I'm still waiting to get a hold of a PC copy of Lemmings 3D right now so I can't look at this right now. Hopefully it won't be long until it arrives.

I can't wait to get stuck into this and report any bugs.

I have downloaded the editor but I'm guessing without the Lemmings 3D PC version, you cannot use it at all?

namida

Correct, you need the PC version of 3D Lemmings. If you've ordered a legit copy, I'd argue there's nothing wrong with downloading an abandonware copy to use until it arrives - I justified downloading my copy on much lesser grounds (specifically, I did own a legitimate copy but lost the disc a long time ago). I haven't looked much at the Playstation version at all. I vaguely recall the format of the LEVEL.xxx looking pretty similar at a quick glance a long time ago (but do keep in mind I didn't have a very strong understanding of it then), but no idea if that's also true for the corresponding BLK.xxx files, and it almost certianly won't be for the various graphic files - and L3DEdit needs all three.

Otherwise, you can try it with the demos. At this stage, I have no intent to guarantee support for the demos (if it's not too much extra work I'll look into that once it's got full support for the full game), but I did try loading a Lemmings 3D Winterland* level into it at one point and it loaded correctly, at least in terms of what the editor supported at that point. Do be aware that there's an even bigger chance L3DReplay won't work with the demos.

* a Lemmings 3D equivalent to Xmas Lemmings 1991 / 1992. Free, 6 levels, all of which are completely original (not taken from the main game) and have winter-y visuals. Some of them are actually pretty good levels, too.

QuoteAwesome, this has progressed really fast.

Sure has. Less than two weeks from announcement to first release and two levels produced, even if that release is somewhat limited. In practice, I had also been working on L3DEdit for about half a week before anyone other than Pooty (who had been helping me figure out details of how L3D works) knew about it, too. So about two weeks all up.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

I've been working on the slow rendering. I think to really get it working at a real-time speed, I'm going to need to completely rewrite the rendering using a GPU-accelerated library, at which point this becomes practically a full rewrite from scratch. The good news - any such rewrite would be much quicker than the original project, as something like 80% of the time spent on this project so far has been figuring out details of how L3D's level files work or how to render the level fairly accurately to what L3D does - effort that won't have to be repeated. And a further 10% or so was figuring out how to produce a good 3Dish render, again, something that now that I know I don't have to figure out again.

However, before I take on such a project, I'd rather have this one working to the point where you can edit everything important - even if it isn't optimal for that. So I'm going to, for now, continue on trying to improve the performance of the current code. So far, I've managed to cut about 20% off the time it takes to render the blocks, which is by far the most time-consuming part of the render (land is a very distant 2nd, and then sky and sea - which get rendered as a combined unit - is close behind in 3rd, for levels that don't have a full-height sky graphic (for ones that do, sky rendering is lightning-fast)).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.23. Changes:
- Huge improvements to rendering speed. It's still not great, but now it's just "not great" instead of "awful". I suspect that resolution-wise most people can go to whatever's higher - Medium, or one step up from what they were already using.
- When you import block data from another level, the input field for the current level's texture set is updated to account for this. (The actual level data was always updated, but the text field wasn't, before.)
- If you select a block from the palette, while your current selection is an empty block (ie: none of the slices are present), your current selection is automatically changed back to a full block.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.24. Changes:
- You can now set a few more options relating to how the sea graphic behaves.
- You can now set the flag that replaces drowning with zapping.
- Fixed a few issues with the preset selections for style-related settings.

I've also updated my levels. Space Station and Acrobatics just have cosmetic updates - preview pivot position adjustments and in the latter case some tweaks to the sea. But I've also added a third level, "Activity Center". Like Space Station, this one assumes you've applied the music patch. This one is much less forgiving than the first two were, so bring your best Lemming-ing (though just to be clear - it isn't that tight just to be annoying; it's necessary to prevent backroutes).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.25. Changes:
- You can now edit objects. This is still not tested super-intensively, so please report any bugs. HOWEVER - "lemmings walk through them" is NOT a bug, objects are not inherently solid, you must place an invisible (and preferably, indestructible) block in the same place.
- The options for a solid level floor and a slippery level floor are now supported.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.26. The only change from V0.25, is that instead of the weird-looking filter effects, it uses an outline to indicate the currently selected layer and block.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.27. Changes:
- Special properties of blocks are now displayed at the bottom of the block selection form (mouseover a block to see details about it).
- Metablocks can now be edited. Right click on a metablock to edit it. Shading can't be edited yet - this was an oversight I only realised after uploading, but won't be difficult at all to implement.
- Bug fix: The 3D-effect shading of block faces stopped working at some point; it's been reimplemented now.
- Bug fix: Negative values for sea movement weren't being accepted; they do now.
- Bug fix: The blue Lemgo sea (and theoretically, any custom seas that share its attributes) did not render correctly; it does now.

Pretty much, the only things remaining now that aren't supported are a few obscure flags (and some unknowns), and land areas, as far as I can think of right now. In particular - you can now create a level truly from scratch, you don't have to import a block setup from another level (though it's still probably easier to do that).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.28. Changes:
- Metablock shading can be edited.
- Added a "Clear" button when editing metablock data.
- Shortcut keys have been completely revised, see spoiler tag in first post.
- The "Do you want to save?" check pops up when quitting L3DEdit; previously it only came up when opening a level or creating a new level
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

One thing to be aware of that I've discovered - L3D seems to have a limit on how many block faces it can render. Now, I don't know exactly what does or doesn't count towards this - I've seen a level where this kicks in at around 500 blocks, but there are some official levels with more than that.

One thing I have noticed is - any face touching a block #3, doesn't get rendered - and thus, using block 3 on areas the user will never be able to see, can help avoid this limit. The highest block count is 1227, on Lemlab, a level that very extensively uses block #3. However, the highest block count on a level that doesn't use block 3 at all, which is "A Head Above The Rest", is 825 - well above the 500 that I've seen this effect kick in at.

Anyway, it's probably best to avoid particularly huge levels due to this, at least until we understand exactly how this glitch works.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.29. Changes:
- Can fill an entire region (rectangular prisms only) with a block or object instead of having to do it block by block.
- Shading of land graphics is now preserved (but not editable or displayed).
- If a level is loaded that has land coordinates in the incorrect order, they will be corrected upon saving the level.
- Block #3's special effect is now mentioned when selecting it in the block selection window.

To fill a region, you must mark one corner, then select the opposite corner. You can mark a corner either by clicking "Mark" then clicking the block to mark, or by mousing over the block you wish to mark and pressing Alt+F. You can then select the corner to fill to either by clicking "Fill Region" then clicking the target block, or by mousing over the target block and pressing Alt+V.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.30. This is purely a bugfix update.
- Bug fix: The wrong options get checked for metablock face options (but not whole-block options) in most cases.
- Bug fix: A file called "invis.bmp" (containing the face graphic used in place of invisible faces when "No Invisibles" is enabled) was saved every time L3DEdit is run; this was a debug file.
- Bug fix: Pairing icons for paired interactive objects don't get adjusted to the object's vertical position.
- Bug fix: Some objects that have their positions adjusted depending on the block they're placed on the same space as, weren't rendered correctly. This is only fixed for SOME cases, not all of them (generally, it's fixed for the more important and likely-to-see-real-world-usage cases, but not most of the less-likely-to-happen-in-non-troll-levels ones).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.31. Changes:
- The boundary points (which kill any lemmings that go past them) are now editable. Note that there's no Min Y option because (as far as I'm aware) the bottom boundary is not editable.
- When creating a new level, the various graphic assets are set to "None" instead of zero.
- Added the ability to shift the level.
- When increasing / decreasing the currently selected slice of the level, it now wraps around.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Uploaded V0.33. (V0.32 was skipped because I discovered a serious bug in it after preparing the release but before uploading it; since the 0.32 release exists as a branch in the repo nonetheless, I decided to make this V0.33.)

Changes from V0.31:
- Fixed a bug in loading / saving border kill points.
- Shading of block faces is now more accurate (though not 100% accurate) to in-game.
- Shading of land is now rendered correctly.

(There's also been a lot of behind-the-scenes work to prepare for editing land, but the actual editing isn't implemented yet.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)