Lemmings Forums

Other Lemmings Projects => Other Projects => Topic started by: LJLPM on May 27, 2013, 09:41:37 PM

Title: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on May 27, 2013, 09:41:37 PM
*** jLevelBuilder has been released on October, 5th, 2013 ***
*** direct download link: here (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html) ***

*** for help, please refer to this post (http://www.lemmingsforums.net/index.php?topic=1609.msg41707#msg41707) ***


Hi,

I've started to code a Lemmings clone in Java: dev is far from being finished (I code the game in my spare time), but things are going well.
But, in order to have a nice game, I quickly realized that I needed a tool to easily create levels: so I'm now focused on coding the level-editor (Java) : things are going well, too.
The level-editor will be a free app, so people who like the game will be able to create and share levels.

Here's a screenshot of the level-editor (WIP):
(selected items have a yellow border)
(http://img841.imageshack.us/img841/8025/leveleditor7.gif)

- screenshot of upcoming jLevelBuilder 1.79 (WIP@april 2016) :
(http://s17.postimg.org/6h6ob70xb/j_Level_Builder_w_medium.png)

(*** old forum's topic (http://www.lemmingsforums.com/index.php?topic=794.msg17498#msg17498) ***)
Title: Re: coding a Lemmings clone + its level-editor
Post by: Mindless on May 28, 2013, 12:46:09 AM
Neat.  Will it load Lemmini level files?  Lemmini is Java too, but it doesn't have a Java level editor.
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on May 28, 2013, 03:11:05 AM
it looks awesome!

aw man, are you open to discussion about it? Because there are a ton of things I'd ask for or recommend be considered. Now, people have a much better idea of what we (avid Lemmings players) like and don't like as far as game mechanics.

didn't read the other post you just made. Yes I get excited...

in any case, I hope this turns out well!  :thumbsup:
Title: Re: coding a Lemmings clone + its level-editor
Post by: Minim on May 28, 2013, 06:19:17 AM
I'd take Mindless and mobius' words as well. I like the interface (I think that's what it's called), with every option appearing on the same program unlike the Lemmix level editor which requires you to press functional keys to make them appear. Also, we've never seen options where you can choose level numbers and passwords; that's certainly a unique feature. Good luck creating your program!
Title: Re: coding a Lemmings clone + its level-editor
Post by: Simon on May 28, 2013, 09:34:37 AM
geoo and me discussed this a little in voicechat, here's the essence:
-- Simon
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on May 28, 2013, 08:09:32 PM
Thank you for your feedback!
My goal is not to re-code Lemmings but a game like Lemmings with extra features I have in mind.

- "Will it load Lemmini level files?":
probably not (but I still have to see what Lemmini level files look like...)

- "Everything should be freely mappable to user-definable hotkeys":
I didn't think about that, but that would be handy, yes

- "You will probably implement your own custom file format":
yes

- "An exporting function to the widely used .LVL format would be nice.":
sorry, but I do not target Lemmings/Lemmini as compatible games with the level editor (things may change, but atm I'm only focused on making the level-editor compatible with my Lemmings-like game)

Today, I added the "Symmetry/Mirror" option which allows to make a 1-click mirror of entities :) (see screenshot below).


PS1: for convenience, I flag here this interesting topic: http://www.lemmingsforums.com/index.php?topic=695.0
PS2: you can play online my previous puzzle-game here: http://www.lesjeuxlesplusmieux.com/powablox.html . Hope you'll like it. :) (the best score is very, very, very hard to beat!)
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on May 28, 2013, 09:47:26 PM
The mirror options sounds really nice!

These are some game mechanics that I personally prefer, as well as things to look out for when programming the game; (Probably some people will disagree with me on some of these)

-when selecting lemmings have worker/walker/left right priority options
-when selecting certain lemmings; example: when trying to make a lemming a climber, have priority on non-climbers. I say this because in Lemmini and sometimes other programs as well it seems difficult to select the lemming I want, that is; it keeps highlighting the lemming that’s already a climber.
-Bashers and miners don’t turn around when they hit steel.
-if a lemming is standing partly on air, (like a digger on the edge) he can’t be made a blocker and thus fall.

I’d recommend you go over these big glitch lists just to familiarize yourself with the sort of thing that’s happened in Lemming games past and to look out for. A lot of these things come about as natural consequences of the game mechanics. But you probably already knew this.

http://www.lemmingsforums.com/index.php?topic=525.0

http://www.lemmingsforums.com/index.php?topic=693.0

-------------
some other suggestions:
-highlighted Lemmings turn a different color when the cursor goes over them. This makes it much easier to see exactly which lemming is being selected.

-the option to select a lemming first then click a skill to assign it instantly (the reverse of the normal behavior), like in Clones. Though I'd definitely want this as an option and not mandatory. Having both of these modes would, I think, be an awesome advantage to the game. Clones being only the one way makes it really jarring to play for the first time.

-another thing I just thought of: consider having numbers like the timer turn color when it's getting close to zero or making noises even. This would be especially helpful on multi-player games (even if your not doing anything multi-player) I like lots of funny noises in my games  :D

-have all the stats of a level displayed somewhere while the level is playing

-“break apart” this is a radical and highly involved idea I thought of a while ago that entails being able to highlight a group of tightly cramped lemmings and zooming in and having them separate out temporarily, making it easy to select a specific lemming. This is probably my least useful idea.
---------
as far as new game elements like downward one-way-walls, everything I had is pretty much in that topic. Some I like more than others. Some are taken directly from L2 and Lemmings Revolution.
My favorites are:
level entrances are separate entities.
exits with a max limit of how many Lemmings can go in.
disappearing terrain
pre-placed Lemmings; uncontrollable lemmings
doors and switches
moving traps like weasels
gravity pads

I personally don’t care for more than the 8 regular skills.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on May 29, 2013, 08:32:35 PM
Thank you for your long post! There are nice thoughts, plus I wasn't aware of all the glitches and game mechanics.

- "when selecting lemmings have worker/walker/left right priority options":
what is the highest selection priority actually?

- "Bashers and miners don’t turn around when they hit steel.":
they just stop working, and they become simple walkers, don't they?

- I thought, too, about such a "break apart" option, but it probably won't be in the game...

Today, I added the "Move Only On X" and "Move Only On Y" options to the level-editor. They are pretty useful to constraint entities' moves :)
Title: Re: coding a Lemmings clone + its level-editor
Post by: Minim on May 29, 2013, 09:09:36 PM
- "when selecting lemmings have worker/walker/left right priority options":
what is the highest selection priority actually?
In a crowded area the Lemmini cursor generally points to the 1st lemming out the trapdoor, making him the highest priority.

- "Bashers and miners don’t turn around when they hit steel.":
they just stop working, and they become simple walkers, don't they?
Indeed they do, but this time they face the same direction they've walked unlike the DOS mechanics.

- I thought, too, about such a "break apart" option, but it probably won't be in the game...
I have an idea, which basically derives from the PSP version. How about if you highlight a certain lemming with your cursor and then hold the key down. The cursor will follow the lemming without you having to navigate the mouse. Quite clever isn't it? In PSP controls I'm talking about the Square button, but if that can be possible it can be a boon in certain situations.
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on May 29, 2013, 11:27:30 PM
I have an idea, which basically derives from the PSP version. How about if you highlight a certain lemming with your cursor and then hold the key down. The cursor will follow the lemming without you having to navigate the mouse. Quite clever isn't it? In PSP controls I'm talking about the Square button, but if that can be possible it can be a boon in certain situations.
That's basically how Clones works (except in clones it's the only option which is dumb) But yes, this is very useful. For example if you want to just follow one lemming around for a while and need him to do things quickly.

------------
I see you also have invert left and right; excellent option that is sorely lacking in Lemmix.

I thought of some another common issues;
-when a climber reaches the top of his climb, if he’s far enough back; he can build and make a ledge so climbers behind him will fall. I personally actually kind of like this aspect; it seems natural and doesn’t readily lead to any major level design problems (…at least not as much as other things). It's a cool trick, but on the other hand it is sort of odd I guess and may not be real easy to figure out for players. this also depends on the builder.

-lemmings falling into the middle of the blocker will walk on. Blockers in DOS are a little too lenient with this and Lemmini is too much the other way imo (it’s harder to let lemming get through (plus is uneven right to left))

Another thing, and no idea if this is possible//// but you might want to look at Cheapo Lemmings. The guy who made that managed to make it possible to literally draw on your level like in MS paint and add custom graphics.

If you add the function that Lemmings change color or somehow get highlighted when your cursor is over them this alone will greatly improve the game I think. In Lemmings Revolution it’s such a big help and alleviates some of the other negative aspects [like not being able to select walkers, it’s surprisingly not a big deal because you can easily see exactly which lemming your selecting.]

I’ve heard other say that “if we’re installing all these super precise functions that will lead level designers to make really annoying levels”. Which I must admit is possible but not necessarily the way it is and not a problem for me; I don’t intend on designing levels that try to make a brutal use of these abilities (I may have in the past but not anymore). And so what if somebody does? That’s their choice and the players choice to or not to play a level.

also if you want, I’m willing to test the program for you when it's ready.  :) (too busy right now)
Title: Re: coding a Lemmings clone + its level-editor
Post by: Simon on May 30, 2013, 08:46:57 PM
Cursor following lemming is analogous to highlighting, yes. Lemmings is best played with mouse + keyboard, maybe also with mouse only or touchscreen. Any other input device isn't natural for the game and needs such tweaks to be feasible.

Priority under the cursor isn't simple. However, there are games that calculate sane priorities based on selected skill and lemmings under the cursor. All cases there seem to be managable with normal priority assignment or forced inverting of priority. Even with inverted priority, nonsense assignments aren't considered, like climber to climbables. I don't need highlighting here, but it's a nice extra.

You want the editor to be as precise and flexible as possible. Never dumb down the tools because users might do strange things, you will merely annoy the serious users. :-)

-- Simon
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on May 30, 2013, 10:22:57 PM
Thank you very much for your comments: it's much appreciated!
By the way, expectations for the game appear to be pretty high: good. It fuels my motivation, and I'll try to do my best. I'll keep you informed when I have news about the game. Please remember it's a project I code during my spare time and I'm a hobbyist, so dev will take some time. For the moment, I'm focused on making a cool level editor, and it is a crucial thing if I want to have a good game.

Back to the priority under the cursor, I'm not sure to fully understand how you want it to be. Could someone give me a clear view of the rules/hierarchy to have during the game, please? (climbers vs walkers vs diggers vs ...). Thank you.

Another thing, and no idea if this is possible//// but you might want to look at Cheapo Lemmings. The guy who made that managed to make it possible to literally draw on your level like in MS paint and add custom graphics.
I had a "Load Background Image" option available in the early days of the level-editor, but I removed it because I want:
- level files to be small for easily sharing levels (including extra images makes bigger level files)
- levels share common graphic items (depending on the tileset of course) for the game's visual identity.
By the way, I wasn't aware of Cheapo Lemmings, I'll take a look at it!

Last thing: today, I added a "Lazy/Shuffle" option which takes a range of entities as input and generates X of these entities, and randomly place them around the center of the level (quantity "X" is specified by the user) . It's a fun option to spark the inspiration when starting a new level (and the "Clear & Lazy" option fully clears the level before randomly generating entities => just restart this process again and again until you find something interesting to work with).
For example, the level below was ignited using the "Lazy" option triggered twice (it's not the best level ever for sure, but you got the idea, and I could create this scene very quickly using the "Lazy" and "Clone" options).



Title: Re: coding a Lemmings clone + its level-editor
Post by: Simon on May 30, 2013, 11:25:23 PM
This is the Lix priority code. You should understand everything from the comments, reading the code itself isn't so necessary here. Otherwise I'll explain it more.

The general idea is: Priority is a value between 2 and 9,998. Workers have raised priority (more than the 3,000 of a walker), and nonsense assignments return 0 or 1. The highest priority (or, if desired, the lowest sane priority > 1) is used later.

Assigning basher to builder has the same priority as assigning basher to digger. Should they really overlap, then the earlier-to-spawn gets priority (see note after the code).

Love the function to create some random terrain. :-)

-- Simon

Code: [Select]
unsigned Lixxie::get_priority(
    LixEn::Ac  new_ac,        // what skill is to be assigned
    int        tribes_active, // ignore this for a singleplayer game
    const bool personal       // consider user settings (queue builders, etc.),
                              // this is true when playing, false during replay
) {
    // returns: 0, if assignment not allowed
    //          1, if assignment not allowed, but cursor shall open nonetheless
    //          2 bis 99.998 if assignment OK. Higher number = higher priority
    //         
    //          priority invert isn't done in this function; if the user
    //          inverts priority via right mouse button, then still ignore
    //          return values of 0 and 1, and treat higher returned priorities
    //          as (10,000 - priority).

    unsigned p = 0; // return value

    // Nothing allowed at all, don't even open the cursor
    if (ac == LixEn::NOTHING || ac_func[ac].leaving) return 0;

    // Permanent skills
    if ((new_ac == LixEn::EXPLODER  && updates_since_bomb > 0)
     || (new_ac == LixEn::EXPLODER2 && updates_since_bomb > 0)
     || (new_ac == LixEn::RUNNER    && runner)
     || (new_ac == LixEn::CLIMBER   && climber)
     || (new_ac == LixEn::FLOATER   && floater) ) return 1;

    // Don't plant blockers close to exits in multiplayer
    if (new_ac == LixEn::BLOCKER && tribes_active > 1
        && (enc_foot & Lookup::bit_goal_prox))
        return 1;

    switch (ac) {
        // Cancelling blockers has very high priority (only via Exploder or
        // Walker assignments)
        case LixEn::BLOCKER:
            if (new_ac == LixEn::WALKER
             || new_ac == LixEn::EXPLODER
             || new_ac == LixEn::EXPLODER2) p = 5000;
            else return 1;
            break;

        // Stunners may be turned in their later frames, but otherwise act just
        // like regular mostly unassignable-to acitivities (case falls through)
        // Ascender will do the same on its last frame
        case LixEn::STUNNER:
            if (get_frame() >= 16) {
                p = 3000;
                break;
            }
            // falls through if frame is less
        case LixEn::ASCENDER:
            if (get_ac() == LixEn::ASCENDER && get_frame() >= 5) {
                p = 3000;
                break;
            }
            // falls through if frame is less

        // Other activities that require full attention from the lix,
        // most skills cannot be assigned except permanents (climber etc.)
        case LixEn::FALLER:
        case LixEn::TUMBLER:
        case LixEn::CLIMBER:
        case LixEn::FLOATER:
        case LixEn::JUMPER:
            if (new_ac == LixEn::RUNNER
             || new_ac == LixEn::CLIMBER
             || new_ac == LixEn::FLOATER
             || new_ac == LixEn::EXPLODER
             || new_ac == LixEn::EXPLODER2) p = 2000;
            else return 1;
            break;

        // Standard activities, not considered working lixes
        case LixEn::WALKER:
        case LixEn::LANDER:
        case LixEn::RUNNER:
            p = 3000;
            break;

        // Builder can re-assign itself if the user has this allowed in
        // his settings. This queues another set of bricks.
        case LixEn::BUILDER:
        case LixEn::PLATFORMER:
            if      (new_ac == ac
                && (!personal || useR->multiple_builders)) p = 1000;
            else if (new_ac != ac)                         p = 4000;
            else                                           return 1;
            break;

        // Usually, anything different from the current activity can be assign.
        default:
            if (new_ac != ac) p = 4000;
            else return 1;

    }
    // To break ties:
    // Climbers, runners and floaters have higher priority when doing the
    // same as a normal lix
    // Exploders also have raised priority.
    // (If batter is to be assigned, exploders may have lowered priority
    // instead, this is also a user setting.)
   
    p += (new_ac == LixEn::BATTER && useR->batter_priority
          ? -updates_since_bomb : updates_since_bomb);
    p += 400 * runner + 200 * climber + 100 * floater;
    return p;
}

If two have the exact same priority even after breaking ties via old permanent abilities, then the first to spawn has priority. This is different than in DOS Lemmings, where the latter spawned has priority, which was almost always the undesired one.

Picking the earlier-spawned isn't done in the above code, it's done in the calling code.

In the drawing code, higher-priority lems are drawn later = on top of less-priority lems. This is quite important to get right, not doing this is a subtle but annoying mistake. ;-)

Vocabulary I use: skill = resource in the skill bar, activity = currently performed thing, ability = permanent (climber, ...) that isn't necessarily the current activity.

-- Simon
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on May 31, 2013, 07:14:55 PM
Nice post! Thank you, Simon, for all these explanations!
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 01, 2013, 03:44:57 AM
I thought of some simple but helpful things;

-being able to select skills and assign them while paused (assigned un-pauses)
-fast forward option, possibly 2 speeds. And while I know people disagree with me, I'd prefer a hold down button for FF instead of toggle. [or an option for that.
-10 second time skip. [just another type of FF really but useful non-the-less]
-replays

and for the editor, here are some options;

-the designer can make custom preview messages or notes on each level and hints that can be accessed while playing in the level (see Cheapo).
-the option to organize your levels into a small pack or a larger pack its own with ratings.
-perhaps the ability to use a mouse wheel to scroll through things, like choosing a terrain piece. I find the current menu in Lemmix a little annoying. The Lix terrain selection menu is also nice; it's a large window that opens us to display all pieces in a grid. I'd prefer one that's a little smaller though.
-using tabs on the editor menus might be nice.
-if there's any way to adjust the way terrain is highlighted in the editor that would be nice. What I mean is notice how a the steel pieces in your picture; the yellow square extends too far to the right. This is especially an issue in Lemmix when using the 'Align' function.

-I understand the reasoning behind the background image. Plus, I sort of find any kind of background other than black can distract from the level and be harder on the eyes.

-----------
other RR options;
having a limit on the maximum RR.
being able to put the limits wherever the designer wants. (including no limits)

sorry I keep talking in separate posts, but there's a lot of things to consider and I don't have them all written down or anything. Love the shuffle option btw.  :thumbsup:
Title: Re: coding a Lemmings clone + its level-editor
Post by: Proxima on June 01, 2013, 09:06:14 AM
when a climber reaches the top of his climb, if he’s far enough back; he can build and make a ledge so climbers behind him will fall. I personally actually kind of like this aspect; it seems natural and doesn’t readily lead to any major level design problems (…at least not as much as other things). It's a cool trick, but on the other hand it is sort of odd I guess and may not be real easy to figure out for players. this also depends on the builder.

I have to admit I don't like this behaviour, though that may partly be because I grew up on the Mac version of Lemmings. But it feels uncomfortably precise. All behaviours that are part of "normal" gameplay, including relatively precise ones such as the pass-through blocker (in Lemmings) and assigning basher to a builder approaching a wall, have a bit of leeway. This not only makes the game easier to play, it makes those behaviours easier for a new player to discover. (I have an equal dislike of the pass-through blocker in Lix, which also requires assignment at a pixel-precise location.)

I disagree with möbius on another point too. Bashers and miners should turn if they hit steel. In your game, which is restricted to the eight classic skills, if you don't have miner-turning then the only way to turn an individual lemming is to assign builder and make him bump terrain. Builders are overused anyway; I don't like them being the only turn-around skill as well. (A separate question is whether lemmings standing directly on steel can be assigned miner to turn them, as they can in Lix. I don't feel as strongly about this feature, but I like it. One of my favourite Lix levels, "Waltz in C Sharp Miner", uses it. It's true that I could have used Lix's walker skill, but then the skill numbers wouldn't form an elegant pattern.)

A hold-down button for FF is a good idea. I don't see the point in having a 10-second time skip as well... that's really just a poor man's substitute for FF.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 01, 2013, 01:30:30 PM
Thank you for your comments and ideas. There are some options which would be pretty easy to add, and some others that may need more work. I want to finish the editor soon, and go back coding the main game :)

And to clarify the following point:
-if there's any way to adjust the way terrain is highlighted in the editor that would be nice. What I mean is notice how a the steel pieces in your picture; the yellow square extends too far to the right. This is especially an issue in Lemmix when using the 'Align' function.
Actually, yellow squares match exactly the size of the sprites: if they (seem to) extend too much, it's because the steel pieces are surrounded by a transparent color which is an actual part of the image (this is a choice from Lemmings' original graphic designers). So you won't be able to resize the yellow border in the editor, but it's not really annoying because using the "Clone" tool on X and/or Y makes perfect alignements really easy (the user freely sets the distance between 2 items => please see the very 1st screenshot of this topic: steel pieces couldn't be more well aligned, and it was done in no time).
Title: Re: coding a Lemmings clone + its level-editor
Post by: ccexplore on June 01, 2013, 04:20:37 PM
A hold-down button for FF is a good idea. I don't see the point in having a 10-second time skip as well... that's really just a poor man's substitute for FF.

Definitely make the hold-down vs toggle an option for FF so each user can get his/her preference for that.

The 10-second skip is interesting.  Lemmix has it (spacebar on keyboard) and I've used it from time to time.  Depending on how fast you make FF go, it can well be faster for someone to do multiple 10-second skips to reach a point in time, vs using FF to get there.  On the other hand, 10 seconds is a bit long, making  it too easy for you to skip past the point in time you want.
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 01, 2013, 11:19:49 PM
I vote for being able to assign any skill on steel (whether they turn or not). this is another good way too stall for time (again, whether they turn or not). I personally find it annoying not being able to assign a skill just because it's on steel (or one way walls).

I only mention 10 second skip because its in Lemmix. However, I must admit, now after thinking about it, this is one of those things that I think are too useful. (I know this is going to sound weird) but somethings make a program so 'easy' to use that I take it for granted and it sort of makes me impatient. I noticed for a while now that generally I don't get as frustrated when I play Lemmini, because of pausing for the start screen. It forces me to take my time and thus I seem to do better. Maybe it doesn't make much sense, but that's the way it is for me...

Anyway, I thought of a better option than time skip which exists in Lemmix but I hardly ever use it because I forget it's there: save states, and having multiple states would be nice.

oh and please don't forget to include one way walls  ;P
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 05, 2013, 06:58:50 PM
Thanks for your ideas/feedbacks. About the "1-way" walls, I thought, too, about these ones, so they should find their way to the game :) 

I've started to code a new feature: the "Enable Collisions" option. When activated, you can't drag the selected item(s) over level's other items: level's items act as walls and prevent from moving items over them. It's useful if you want to glue/attach items (no gap between item's boundaries). It's still buggy (this feature is only few-hour old), but as you can see in the screenshot below (I joined a lot of originally-separated items), the first results are encouraging (PS: random stuff only, generated using the "Lazy" feature, and very, very loosely arranged).

Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 07, 2013, 01:06:26 AM
This Collisions feature would be very handy indeed. There is also the possibility of having a grid of various sizes for dragging things to snap to. Oh and one more important thing:

and undo button!  :)

--------------
In response to earlier comments about game features and mechanics. After thinking about it, I think my level designing/program wishes and philosophy ultimately comes down to this:

When I first started playing custom packs, I loved learning about unusual tricks and glitches. But, honestly if it weren’t for a website like this one and a place to read about them, I highly doubt I would’ve discovered many or most of these on my own, just playing levels by myself.

While I’m not saying I dislike or am against some of these tricks and features, like miners turning on steel or blockers turning bashers, I am much more in favor of features that are easier to grasp, encourage easier execution and have more expansive implications for the program; like doors and switches.

I’ll call these former tricks and features “small” features verses “larger” features just for ease. The small features may be fun (I do find them fun) but they can encourage precision, minimalistic design, high difficulty and general annoyance. Designing levels around one or a few of these tricks, which can be fun, I’m not saying they aren’t, but they have this quality that if you already know this trick it becomes very simple and the ‘figuring out’ stage not as much fun imo. Compared to levels like "the climbing Frame" by JHIsan, which lets you play the level and try different things and generally sort of 'flow' through the level in a fun way. It's hard to describe but ultimately, I must admit I enjoy those levels better.
Not to mention that these small features existing open the door to backroute hell.

I like these sort of levels with the rest of them but I would be willing to let them go in favor of larger features. Namely, features like gravity, which offer an immense visual and overall impact on game play and have a low difficulty implications (at least early on and of what little has been explored of it). This isn’t a little trick that requires ‘building in exactly the right spot so the third lemming can fall one pixel and do such-and-such’. This allows the lemmings to do what we already know how to do well, in a new and refreshing way. And I suspect, not only gravity but most or all of the things I mention on my thread have possibilities and implications not forseen (and most-likely this whole argument will backfire when somebody discovers that a new feature that I suggest can be just as annoying as the other stuff) I used gravity as an example and I’m not strongly in favor of that in particular.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 07, 2013, 06:24:11 PM
I have to fix the "Enable Collisions" feature first, but a "Snap (to Grid)" option is something I would like to add, yes.
edit: since it was a quick and easy task, I've just added the "Snap to Grid(X/Y)" feature :)


About the "Undo" button: good news, it's already there (CTRL-Z actually). But, atm, you can only revert the very last action (I'll see this issue later, but, obviously, it would be handy to be able to revert some more actions).

By the way, I share your game-design thoughts :)
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 08, 2013, 03:14:58 PM
Just having fun with the new "Snap to Grid X/Y" option :)
(by the way, I will probably remove the "Enable Collisions" option which is still buggy atm, and which is no longer useful now that there's the "Snap" option)



- as you can see in comparison with the previous screenshot, grid/snapping offset is freely adjustable on X and Y: for example, in this screenshot, snap on X is disabled (no vertical lines), whereas snap offset on Y = 12 pixels (horizontal gray lines every 12 pixels)
- level quickly made using the Clone, Mirror, and Snap options
Title: Re: coding a Lemmings clone + its level-editor
Post by: Simon on June 09, 2013, 03:27:37 AM
The snap feature makes it even more important to remove empty areas from objects' bounding boxes.

You can still save/mirror/etc. the coordinates with the objects' inherent sizes. Displaying the rectangle and snapping should only care for the outermost non-transparent pixels.

-- Simon
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 09, 2013, 09:45:07 AM
don't worry about the bounding boxes because:
- it's not a "Snap to Object" option but a "Snap to Grid" option
- you can freely set the snap offsets for the grid, on X and Y. For example, in the following screenshot, I snapped items of different sizes (I typed offset values that actually matched the graphics, ignoring empty spaces in the bounding boxes). Everything is well aligned depending on the items' sizes.
- I will create new tilesets for my game, and the tiles will have correct bounding boxes :) :) :) (Lemmings' tilesets are only used for demo purpose)
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 09, 2013, 10:01:57 PM
If your going to make new tile sets, I recommend taking a look at Lemmings Revolution. One thing that stands out to me about that game is the graphics are very easy on the eyes. People from Lemmings Heaven made custom graphics for Lemmini over the years.
Also people made some cool graphics for Cheapo and Lix, even if they feel sort of "un-professional" (I don't mean that in a bad way).

http://www.lemmingsforums.com/index.php?topic=763.msg16327#msg16327

 :)
Title: Re: coding a Lemmings clone + its level-editor
Post by: Mikex62 on June 10, 2013, 11:03:10 PM
You could take advantage of this editor's compatibility. Why not add a built-in level tester to the editor just like in Lunar Magic?
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 10, 2013, 11:49:15 PM
@möbius: Thanks for the infos! I'll look at these graphic sets! (atm, I'm focused on coding -and there's a lot to do-. I'll keep the graphic stuff for the end of the project, when the game mechanics will be working well)
@Mikex62: I aim at making convenient level loadings between the level-editor and the game itself. I don't know yet how I will tackle this issue, but I'm aware of it.

By the way, I've started to code the "Save Level" and "Load Level" options (XML format for levels' data): things are going well .
The level-editor is not finished yet, but, hopefully, with the "Save" & "Load" options available, I could proceed with some game tests, and drop some Lemmings in levels soon :)

edit: "Save" & "Load" options are now working. Piece by piece, the level editor really starts to look good!
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 16, 2013, 01:01:07 PM
What's new?

- "Save Level" & "Load Level" options work
- bugs fixes
- entities' "insert#" are displayed for each selected entity (it's the yellow number inside a selected area)
- the list of the level's items is now sortable on each column (for example, in the screenshot, I displayed all the "Eraser" items first, therefore you can spot these items in the level, refering to the now-displayed "insert#" info)
- selecting one or multiple row(s) in this list selects the relevant item(s) in the level
- a vertical red line marks the middle of the level
the designer can make custom preview messages or notes on each level and hints that can be accessed while playing in the level (see Cheapo).
- done for the message part (see the bottom part of the screenshot). I will handle hints later.

PS: in the screenshot, I snapped items on X, hence the display of the vertical gray lines (these grid lines only appear when snapping, of course! / no snap, no line)

Title: Re: coding a Lemmings clone + its level-editor
Post by: Minim on June 16, 2013, 08:09:14 PM
Looking good so far. :) Two questions. The first one is why do some of the snap lines appear on the mini-map? It's only a small problem, but maybe that's one you could fix. Also do you only have the dirt terrain set or are the other sets available too? (I probably shouldn't have asked this question yet as it's still not available for us to download.)
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 16, 2013, 08:30:50 PM
You’ve added a lot of really helpful features  :thumbsup:

I just thought about two more important features you might include: (I can’t remember if I already mentioned this or if it's already included or not)

-Instead of having a “no-overwrite” option, be able to order any terrain or object back or front as many places as you want. Makes it much easier and quicker to create levels.

-Make it easier to “partially overwite” What I mean by this is the way, in Lemmix, you can make an eraser piece cover something but reveal something else but it’s sort of tedious to do; (took me and everybody else a while to figure out)
1. create your top layer
2. create the piece that will be the eraser
3. create the pieces that will be the bottom layer and make them no overwrite.
It must be done in this order or it doesn’t work. I have no ideas how to make this easier however. Perhaps making a “non-eraser” option that makes erasers have no effect on this terrain.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 16, 2013, 11:41:57 PM
Thanks for the feedback!

why do some of the snap lines appear on the mini-map? It's only a small problem, but maybe that's one you could fix.
Yes, I had a quick look at this issue, and didn't want to spend too much time on it because it's not a big problem. Actually, it happens because the mini-map is a mini view of what is on screen (grid lines included... :)). Since it's not too annoying, I'll check this issue later...

Also do you only have the dirt terrain set or are the other sets available too?
Yes, I test the level editor with 2 tilesets only: brick and dirt. It's easy to add more, but since the app is not ready yet to create full levels, I just use these 2 tilesets atm :)

You’ve added a lot of really helpful features  :thumbsup:
Actually, I've just added one more cool feature: additionally to the already-coded standard selection method (click on an item to select it), there is now a rectangular marquee selection tool (drag your mouse to select the items which are fully located inside the purple rectangle you're drawing / see screenshot below). Very nice feature to make quick selections!

Instead of having a “no-overwrite” option, be able to order any terrain or object back or front as many places as you want. Makes it much easier and quicker to create levels.
This is exactly what the "Swap (insert_position)" option is for. Entities with a low "Insert#" have been inserted early in the level, while entities with a high "Insert#" have been inserted lately in the level (and, hence, they could mask early entities). Using the "Swap (Insert#)" of two entities helps to arrange entities' visual priorities. 

Make it easier to “partially overwite”
I'm not sure to add this one: sorry...  :-[

The new selection tool:
Title: Re: coding a Lemmings clone + its level-editor
Post by: Simon on June 17, 2013, 12:29:05 AM
Make it easier to “partially overwite”
I'm not sure to add this one: sorry...  :-[

I don't think this can be made much easier. The desired effect is to have terrain piece A, cut out a little with eraser piece B, then on top of this, draw C with the no-overwrite flag, so C only draws into the gap cut by B, but not over any leftovers of A.

Without no-overwrite, this cannot be done, the objects would have to be drawn in the order A < B < C < A. With no-overwrite or any proposed shortcut, you'd still have to assign three certain roles to A, B, and C. I don't see how to add a good shortcut over just manually assigning B the eraser flag, C the noow flag, and arrange as A < B < C. Interface is already starting to get cluttered. ;-)

-- Simon
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 18, 2013, 11:16:04 AM
Since it was a few-minute-only task, I've just coded the "No Overwrite" and "Only On Terrain" options (it was really quick to do, I should have done it earlier...)
So, if I got the idea, you'll find the "Partial Overwrite" feature in the screenshot below (following the 3-step process previously explained, the rock is A, the circle is B, and the steel is C). I don't think I can make it easier or quicker to use.

PS: in the last 2 cases, I switched the steel's state between "Only on Terrain" and "No Overwrite"
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 19, 2013, 09:45:21 PM
Will it load Lemmini level files?

I took a look at the Lemmini level files, and it was no big deal to load them in the level-editor, so I've just added a "Open Lemmini level" option :)
This feature is not finished yet, but the first results are encouraging: I still have to handle the entrance and exit doors, the steel location, ...

Here are some screenshots (WIP):






Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 20, 2013, 01:38:03 AM
the partial overwrite looks great  :) It's not a big deal if that isn't made easier to implement, I didn't realize it's already easier than Lemmix with the easy changeable layering you already have.
this already looks like it's going to be a great program anyway  :D
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 22, 2013, 09:26:46 PM
this already looks like it's going to be a great program anyway  :D
Thanks!

Until today, the level-editor dealt with "Terrain" items only.
Today, I've added the management of "Object" items (special items such as entrance and exit doors, wall arrows, decorative flags, etc...).
For example, in the screenshot below, I loaded a Lemmini level file, and as you can see, everything is in place :)

Unfortunately, I noticed that Lemmini seems to always draw "Object" items after "Terrain" items (hence the required use of the "NoOverwrite" option to mask exit doors behind terrains, for example). In my game and in the level-editor, I draw items according to their respective "Insert #" (first item being drawn has Insert# = 0, then we draw #1, #2, #3, ... whatever it is a "Terrain" or an "Object"). So in order to correctly load Lemmini files, I had to make a quick & dirty fix, but I'll have to think again about this issue and handle this in a better way...

Anyway, on the screenshot, you can also see that I've added 2 new sortable columns in the list, "NoOverwrite" and "OnlyOnTerrain" (it's handy for quickly finding specific items), plus a new "Rotate 90°" option for rotating items (for my Lemmings-like game).

Most of the features are here now :) Among the main things still to be added, there is the management of steel areas.

Title: Re: coding a Lemmings clone + its level-editor
Post by: geoo on June 23, 2013, 01:32:21 AM
Looking really swell so far!

Can you add support for .lvl files too? The format is documented here: http://www.camanis.net/lemmings/files/docs/lemmings_lvl_file_format.txt
Or alternatively, give me the relevant code so I can see the class architecture and write the code myself for you (should be pretty straightforward).

As for the no-overwrite function and this weird terrain layering trick, something that'd be notably easier to handle would be if you take an entity (say a single or multiple terrain pieces) together with a bunch of erase pieces that erase part of it, and allow to turn this stuff into a new entity, so the new entity will be a bunch of terrain with something bitten out of. Basically it then acts like a new terrain piece. Then have the eraser terrain piece only act on the terrain pieces of the entity while not affecting other entities (terrain). It'd also allow to group terrain pieces together into one which sometimes might be desirable.
Of course, you'd have to adapt the level file format accordingly, and .lvl and .ini don't support this (but exporting would still work fine as long as you don't use these functions).
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 23, 2013, 03:06:56 AM
LJLPM, I like your layering mechanic. I don't like the old way of objects automatically being underneath or over top of terrain.

As for the no-overwrite function and this weird terrain layering trick, something that'd be notably easier to handle would be if you take an entity (say a single or multiple terrain pieces) together with a bunch of erase pieces that erase part of it, and allow to turn this stuff into a new entity, so the new entity will be a bunch of terrain with something bitten out of. Basically it then acts like a new terrain piece. Then have the eraser terrain piece only act on the terrain pieces of the entity while not affecting other entities (terrain). It'd also allow to group terrain pieces together into one which sometimes might be desirable.
Of course, you'd have to adapt the level file format accordingly, and .lvl and .ini don't support this (but exporting would still work fine as long as you don't use these functions).

^^this^^    :o 8)
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 23, 2013, 03:53:26 PM
Can you add support for .lvl files too?
I took a look at the .lvl file format, and now that the level-editor is looking good, I'll add support for these files.

you take an entity (say a single or multiple terrain pieces) together with a bunch of erase pieces that erase part of it, and allow to turn this stuff into a new entity, so the new entity will be a bunch of terrain with something bitten out of. Basically it then acts like a new terrain piece.
You meant this, right?  8)
-> new "Group" option added: see the list of level's entities: one group is made of the 15 first items (including "eraser/noOw/OoT" attributes), and, then, acts as a single normal item (the very first tree on the left is made of 15 items, whereas the 5 next trees are single items / inserted item #17 is selected)
-> and as you can see, the new "Rotation 90°" option is also shown in the screenshot
Title: Re: coding a Lemmings clone + its level-editor
Post by: Proxima on June 23, 2013, 05:33:02 PM
Very interesting! So, how do downward (and for that matter upward) one-way walls behave in this game? Can entrances, exits, traps and water objects be rotated? If entrances can be rotated, how do they behave?
Title: Re: coding a Lemmings clone + its level-editor
Post by: Minim on June 23, 2013, 07:08:02 PM
That's an interesting question! We know that lemmings can dig through left and right one-way arrows, and that they can't mine towards arrows facing the opposite direction. I think for the upward arrows only bashers can go through it, and miners can't. I believe that the downward arrows will make no difference at all since there is no upward digging skill (apart from bombers) in the set, unless we can give it a mechanism which only allows downward motion digging skills such as miners and diggers.
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 24, 2013, 04:58:24 PM
Since we're used to being able to mine and dig into horizontal arrows, I say we should be able to dig and mine into downward arrows, but not bash. Otherwise it's pointless  ;P The downward arrows in Lemmings Revolution operate like this; apparently they're either broken or serve no useful purpose.
If gravity pads are introduced then an entrance, upside down or facing right or left could have lemmings starting off going in that direction. And an exit that is facing X direction can only accept lemmings going in X direction.
---------
Here is something which would be nice, if it doesn’t mess up other stuff which I fear it will;
It would be really nice to be able to bash into a miner’s tunnel (e.i. bash into the hill facing away from the direction the miner went). I find it annoying that you can’t do this in DOS or Lemmini (well you can in Lemmix technically but it’s really hard)
I think you could in Lix but then it also became harder for bashers to stop (because they continue bashing even if the terrain is very low.

another simple one I thought of a while ago that may be a preference matter; make the basher/miner/digger, maybe even bomber’s masks visible during gameplay. I was thinking of having a colored rectangle appear when you move the cursor over the lemming for that skill. This could also be an option you turn on and off.

Earlier you said you'll be making your own terrain, which is great but could you possibly keep the old terrain as well. I lot of us love the old terrain still and it would be necessary to load Lemmix and Lemmini files
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 24, 2013, 06:07:16 PM
In the screenshot, the rotated arrows are just a visual example for showing the "Group" & "90° rotation" features. Atm, a "Group" entity acts as a standard "Terrain" item: therefore it's 100% diggable, and arrows shouldn't be grouped actually.
So, for my game, I think I'll make "Object" items non-rotable and non-groupable. But I'm interested in adding new skills and/or new special "Object" items! I'll see this later when I'm back on coding the game...

make the basher/miner/digger, maybe even bomber’s masks visible during gameplay. I was thinking of having a colored rectangle appear when you move the cursor over the lemming for that skill. This could also be an option you turn on and off.
In the early version of the game, I've already coded this for debug purposes when dealing with collisions. So, ok, I'll keep this feature.

Earlier you said you'll be making your own terrain, which is great but could you possibly keep the old terrain as well. I lot of us love the old terrain still and it would be necessary to load Lemmix and Lemmini files
My goal is not to re-code Lemmings: there are already the original Lemmings games (old+newer) + adaptations such as Lemmini. I have nothing new to bring in re-coding the Lemmings we already know. Plus, as you know, in the Lemmings games, there are a lot of glitches ; and trying to re-code them wouldn't be a fun/interesting part. So, when the editor is finished, I want to make a new Lemmings-like game, with new graphics ... but maybe it's too ambitious... we'll see... (actually, what started as a little "challenge" turned into a very time-consuming project).
About the things still to be added to the editor, there is the "Save Lemmini file" option, and I want to add support for .lvl files too (load & save). When everything is in place, I will release the app, so you will be able to create levels for Lemmings/Lemmini with the original terrains. :)
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 24, 2013, 07:55:37 PM
I'd be happy to help test the program and see if things work/ find bugs and what not.  :)

(for the most part I don't have strong opinions about the minor details like hotkeys, so make those as you'd like or how they best seem fit. I just was making suggestions).

only one more thing: If you're making sound/music whether using old or new, could you use a file format that is easy to work with like mp3, wav, MIDI etc. That would make it easy for users to create their own music and or sounds
[yes I know MIDI sounds different on different machines, and some of you think mp3 is bad again these are just minor things; it's better imo to have to deal with that then MOD files Lemmini uses, or some other obscure file format that's difficult to work with] Plus is a game so it doesn't need to sound pristine  ;P
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 24, 2013, 10:15:28 PM
Thanks for your help. I really have to fix some obvious bugs and code the "Save Lemmini file" option before releasing a beta of the program.

About the in-game music (if any), it will use .mp3 files.
Title: Re: coding a Lemmings clone + its level-editor
Post by: geoo on June 25, 2013, 04:47:40 AM
Quote
You meant this, right?  8)
-> new "Group" option added: see the list of level's entities: one group is made of the 15 first items (including "eraser/noOw/OoT" attributes), and, then, acts as a single normal item (the very first tree on the left is made of 15 items, whereas the 5 next trees are single items / inserted item #17 is selected)
Pretty much, even though I had a recursive definition in mind. Can't see it from the picture, do erasers inside a group ONLY erase terrain within their own group (that's what I had in mind)? So realizing this trick now is just erasing a bit from the piece of dirt, grouping them, and then putting the steel block behind it? It still works if afterwards I group the steel block with the other two things? (That's why I was thinking recursively, but maybe there are other ways to do that.)

only one more thing: If you're making sound/music whether using old or new, could you use a file format that is easy to work with like mp3, wav, MIDI etc. That would make it easy for users to create their own music and or sounds
[yes I know MIDI sounds different on different machines, and some of you think mp3 is bad again these are just minor things; it's better imo to have to deal with that then MOD files Lemmini uses, or some other obscure file format that's difficult to work with] Plus is a game so it doesn't need to sound pristine  ;P
How on earth is MIDI easier to work with than MOD? Just because you can find all your favourite pop songs as MIDI on the internet, but not as MOD? You can convert any MIDI easily into a tracker format like .IT or .XM (which I'd expect to be supported if MOD is supported). Vice versa? Not so much.
(And sure not format-wise. I know someone who wrote a music converter for a Genesis music format, and he used MOD instead of MIDI because the format of MIDI is such a mess, apparently.)

And just nitpicking, why didn't you list OGG vorbis? It's just as easy to work with as MP3 (unsurprisingly, both are just compressed wave formats), and my impression is that the free MP3 encoders (LAME, particularly) don't quite produce the same sound quality as an OGG encoder for the same file size (commercial encoders might be a different story, but yeah, commercial). And I'm saying this not being one of those sound connoisseurs who'd just love to have a single music file occupy their entire hard drive because QUALITY!

As for vertical one-way walls, I feel the behaviour would be a bit inconsistent if you can't bash through them: you can dig vertically through a horizontal OWW, but not horizontally through a vertical one? But I agree it'd make them more useful unless you put in gravity for lemmings in all directions.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 25, 2013, 09:12:44 PM
do erasers inside a group ONLY erase terrain within their own group (that's what I had in mind)? So realizing this trick now is just erasing a bit from the piece of dirt, grouping them, and then putting the steel block behind it? It still works if afterwards I group the steel block with the other two things?
Yes, erasers affect their own group only and nothing else (see screenshot below). But, keep in mind that groups are neither supported in .lvl files nor in Lemmini's level files, so this feature will be only available in my game (as well as the "90° Rotation" and "Left/Right Inversion" options)

Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 25, 2013, 10:18:53 PM
only one more thing: If you're making sound/music whether using old or new, could you use a file format that is easy to work with like mp3, wav, MIDI etc. That would make it easy for users to create their own music and or sounds
[yes I know MIDI sounds different on different machines, and some of you think mp3 is bad again these are just minor things; it's better imo to have to deal with that then MOD files Lemmini uses, or some other obscure file format that's difficult to work with] Plus is a game so it doesn't need to sound pristine  ;P
How on earth is MIDI easier to work with than MOD? Just because you can find all your favourite pop songs as MIDI on the internet, but not as MOD? You can convert any MIDI easily into a tracker format like .IT or .XM (which I'd expect to be supported if MOD is supported). Vice versa? Not so much.
(And sure not format-wise. I know someone who wrote a music converter for a Genesis music format, and he used MOD instead of MIDI because the format of MIDI is such a mess, apparently.)

And just nitpicking, why didn't you list OGG vorbis? It's just as easy to work with as MP3 (unsurprisingly, both are just compressed wave formats), and my impression is that the free MP3 encoders (LAME, particularly) don't quite produce the same sound quality as an OGG encoder for the same file size (commercial encoders might be a different story, but yeah, commercial). And I'm saying this not being one of those sound connoisseurs who'd just love to have a single music file occupy their entire hard drive because QUALITY!

As for vertical one-way walls, I feel the behaviour would be a bit inconsistent if you can't bash through them: you can dig vertically through a horizontal OWW, but not horizontally through a vertical one? But I agree it'd make them more useful unless you put in gravity for lemmings in all directions.

OGG vorbis, as far as I know is only available or at least readily known about to Linux users.
I have (a commercial) Adobe Audition and I can open up/edit mp3, wav, MIDI and a number of others but NOT; mod, OGG and everything else you mentioned.

Personally, I can hardly notice the difference between formats which people tell me annoys them so much. It also depends on the program playing the sound. Older versions of Adobe Flash for example play mp3’s horribly if it’s not set-up correctly

being a person who plays instruments, MIDI is sometimes a real heaven sent, because you can plug things in and they work right away, and I can record stuff on my computer easily. No set up, no fiddling around trying to get the damn thing to work because it isn’t compatible. I also find MOD’s sound quality pretty bad, unless that’s just the songs themselves. On the other hands MIDI sounds different depending on your computer. But yeah, MIDI isn’t the best for a program like this maybe.

btw, I can’t find all my favorite pop songs as MIDI, don’t know what you’re talking about there...

---------
If you can bash through a downward one way wall, then what is the point to it? It has no effect it hasn't restricted you from doing anything;  ??? ???
unless, you mean that you don't want to be able to mine through it; or do something in another direction with another gravity direction. It just makes sense to me to be able to dig and mine (both vertical) but not bash (horizontal)
Title: Re: coding a Lemmings clone + its level-editor
Post by: geoo on June 26, 2013, 01:42:53 AM
Alright, that looks nice. Yeah, obviously that cannot be used for the standard formats, or at least will result in some weird changes to the level if exported.

As for the vertical OWWs, I'm not saying it's better to have bashers bash through these, I'm just saying it's more consistent. Yes, it'd make downward OWWs completely useless.

mobius: Ok, so because some arbitrary commercial piece of software that you happen to use supports one format but not the other OGG is more complicated. Hey look, FastTracker2 supports MOD but not MIDI, so MIDI must be more complicated! What now? Either way, I suppose the only reason Adobe Audition doesn't support OGG is hubris or fear of open software growing, as the ogg en- and decoders are under BSD license and thus can also be used freely by commercial software. EDIT: Simon reminded me, Clones actually uses ogg vorbis. :)
And Adobe Flash is a music player now? If you're referring to music embedded in those files, that might be because the actual music is being downsampled by Adobe Flash to keep the file size of the swf smaller.
Honestly, I don't have a big preference for ogg over mp3 as I don't hear every tiny difference in music quality, but I just kinda prefer open standards. And only known to Linux users or even only working on Linux? Newsflash, I'm sitting at a Windows machine at this moment.
One last thing, MOD sounding worse then MIDI, are you flippin' serious? Maaaaaaaybe some MODs from crappy artists compared to MIDIs that were made for a certain soundfont which you just happen to use, but the Windows soundfont, which seems to be de facto standard, makes most MIDIs sound atrocious. Modarchive.org would like to have a word with you: Listen to some music by Skaven for instance, I doubt anything using the Windows sound font comes even close to that.
I see what you're getting at, yes, mp3 and midi are more popular, but that doesn't automatically make them a better choice just because you don't have to leave your comfort zone of that piece of commercial software you're currently using. I assume you're typing on a QWERTY keyboard right now, the most popular choice, which was designed to slow down your typing, in essence.
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 26, 2013, 05:15:34 AM
These were my personal preferences, I have tried using OGG and a few other sound editing programs. I found I like Adobe better. I never said anything was more/less complicated. And I am flippin' serious I think the MIDI music from WinLems sounds better (I would say "cleaner") then the MOD music of Lemmini which honestly sounds a little distorted for some reason. Again it depends on the computer so maybe my sound card is really good for MIDI or something
I have a lot of music on my computer it it would be nice to put ANY or most formats into a game I'd like to play. But first and foremost, I'm less likely to get involved if I first have to download some program to convert stuff.
But I really don't care anymore, frankly I'm tired of having these conversations. Sorry I keep upsetting you with my sloppy writing.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on June 26, 2013, 07:45:08 PM
Alright, that looks nice.
You can even group a whole level as a single item actually...

By the way, I've just added the "Save Lemmini Level" option (so now we can load & save Lemmini files) :)





Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on June 30, 2013, 10:00:53 PM
when we can we download it and try it out? I'm excited to see it in action.  :D
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 01, 2013, 10:27:50 PM
:) There are still bugs that need to be fixed + I would like to add some new features. I think I still have work for more than a month (dev isn't very fast because I work on the level-editor in my spare time).
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 02, 2013, 09:26:09 PM
Good news here!

I've added a feature I had in mind for some days: the "Brush" mode ; it allows you to continuously draw a selected tile as long as you hold your mouse's button while moving your mouse :)

Combined with snap settings, it makes perfect tile alignments a quick & easy process (for example, see the steel-made pattern in the screenshot below: it was made using a single click held along a path 8)). I wanted to add this feature because I wanted a fast & handy way to use a single element multiple times.

And if you don't use snap settings, then you can shape a landscape with no constraints on the X and Y axises (see the eraser-made tunnel). A very cool feature to design never-seen-before-in-Lemmings landscapes :)

I really want to make an app that provides fast and efficient ways to design levels, hence the new "Brush" mode is a nice addition to the level-editor.



Title: Re: coding a Lemmings clone + its level-editor
Post by: Minim on July 03, 2013, 05:43:09 AM
:o That's very clever! So that's one of the tricks up your sleeve (in other words features).

As you're planning to improve on this project, I notice that the only option I couldn't see is the Screen Start. Where can you find it on this editor?
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on July 04, 2013, 11:35:57 PM
there was one more thing I wanted to add, something I thought of that exists in Lix as a feature but I forgot what it was. But don't feel like I'm pressuring you anymore, anyway. As it is, this already looks like the most powerful Lemmings editor yet.  :)
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 05, 2013, 12:05:16 AM
I notice that the only option I couldn't see is the Screen Start. Where can you find it on this editor?
What is the "Screen Start" option for, please?
In the editor, there is a "File > New Level" option (it clears the current level in the editor), as well as a "Start Pos X" option (in the game, sets the player's position on X when starting a level). The "Start Pos Y" option is here in case I need this for my own game, but for Lemmings levels, it will always be set to 0, of course.

there was one more thing I wanted to add...
Feel free to submit your ideas for the editor, I'll see what I can do.
Title: Re: coding a Lemmings clone + its level-editor
Post by: Minim on July 05, 2013, 07:42:42 AM
I notice that the only option I couldn't see is the Screen Start. Where can you find it on this editor?
What is the "Screen Start" option for, please?
In the editor, there is a "File > New Level" option (it clears the current level in the editor), as well as a "Start Pos X" option (in the game, sets the player's position on X when starting a level).

Oh. I didn't realise that you've renamed it to "Start Pos X". OK then.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 05, 2013, 09:55:48 PM
Can you add support for .lvl files too?
It's not finished yet (I have to fix/tweak some things), but it's on its way Finished. :) (the "Load" option at least... it's, then, possible to save the level as a Lemmini's .ini file). I'll see later for the "Save .lvl" option.



Title: Re: coding a Lemmings clone + its level-editor
Post by: Tsyu on July 07, 2013, 06:26:02 AM
I've been working on Lemmini for some time (before you posted this thread), fixing a bunch of bugs and adding some nice features. Among those are additions to the level format. My version of Lemmini isn't actually far from being ready for release. If you want to know what those additions are, let me know and I will post them here.
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 07, 2013, 08:05:01 PM
Yes, feel free to submit your additions to Lemmini: maybe I could handle these new features in the level editor.

By the way, today, I've added the "Paste" feature ("CTRL-v" keyboard shortcut):
- 1) select one or many entities in the level
- 2) (optional) adjust snap settings on the X axis
- 3) press "CTRL-v" to paste one copy of each selected entity
For example, in the screenshot below, I created a 24-item-based object (the very left one), and pasted it twice: very cool :) This new feature is dedicated to quickly make horizontal clones (GUI's "Clone" option is a little bit more powerful since you can also specify a vertical offset, but using "CTRL-v" for instantly making horizontal clones is convenient)
 

Title: Re: coding a Lemmings clone + its level-editor
Post by: Tsyu on July 07, 2013, 11:12:27 PM
All right, then. First, though, I'd like to list a few Lemmini level parameters that you might have missed since most or all of the extracted levels lack them:

And now, the new parameters. Those beginning with an asterisk can also be set in levelpack.ini (but only in my version).

My version of Lemmini will support proper backgrounds. For now, backgrounds are limited to a single layer and must use terrain pieces; support for animated objects in backgrounds may come later. Here are the parameters, which are to be placed in the level file:

My version of Lemmini will also make a few other minor changes:
Furthermore, levels (and all other INI files) will be parsed in UTF-8 encoding. This will allow strings to contain any Unicode character without changing the way that ASCII characters are encoded. (Yes, you'll be able to change what characters are contained in the font files!)
Title: Re: coding a Lemmings clone + its level-editor
Post by: Tsyu on July 08, 2013, 01:51:09 AM
<<if you’d like to make your own thread for this I’ll move this post there>>
Yeah, if we're going do discuss my modified version of Lemmini, a new thread is best. I'll have it posted soon.
Title: Re: coding a Lemmings clone + its level-editor
Post by: mobius on July 12, 2013, 09:42:45 PM
here's a new idea I just thought of. (wait... or was this present in Lix? I don't even remember  ??? )

Require a key to be held down when using right mouse button to scroll. Or not have to click at all; when a key is held down, it locks the cursor in place and moving the mouse then scrolls without any other clicks. I’d like to try this out.

----------
how compatible is your program right now? For example, If I were to make a level with it, save it as INI, could I then open the level up in Lemmix and it would work? (at least somewhat. It doesn't have to work perfectly).
Also since I noticed that rock level loaded, does that mean other terrain styles have been added? Or is this just a product of being able to open lvl files?
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 13, 2013, 11:20:09 PM
@Tsyu:
Congrats for your work! There are definitively a lot of things you've improved. I may add some of levels' new parameters. Atm, I'm focused on finishing the first version of the editor.

@möbius:
I'll see what I can do about the auto-scroll feature.

how compatible is your program right now? For example, If I were to make a level with it, save it as INI, could I then open the level up in Lemmix and it would work? (at least somewhat. It doesn't have to work perfectly).
Also since I noticed that rock level loaded, does that mean other terrain styles have been added? Or is this just a product of being able to open lvl files?
The current version of the editor allows to load .lvl, .ini & .xml (level editor's native format) files.
You can also save .ini & .xml files. (I'll handle later the save of .lvl files).
Levels in .ini format work well in Lemmini (didn't try loading a .ini file in Lemmix, but it should be ok: I'll keep you informed on that).
And about the terrain styles, since the editor starts looking good, yes, I've added new tilesets to perform my tests :)

What's new?
- I've started to handle "Steel" items: atm, you can place these items in levels (see the pink area in the screenshot below), but I didn't handle these items in the load & save operations yet. It won't be too much work ; I'll do it soon.

- I've added a new feature: "Mark Selected Item(s) as Favorite".
This feature allows you to add a single entity or a selection of entities in a "Favorite Items" list. As expected, you would use favorites to easily & quickly find and pick the single items or combinations of items you use the most (a fav consists in any combination of Terrains, Objects and Steels (incl. attributes such as Eraser, No Overwrite, ...)).
The difference with the "Group" option is that a Group item is basically a new single Terrain (hence a Group item is 100% diggable whatever it is made of), and .lvl and .ini files don't support Groups: so Group items are not aimed at being used in Lemmings levels (I'll use Groups for my own game), and because of these restrictions, I wanted to add a similar feature which could work with Lemmings levels.
Unlike Groups, a "Favorite" doesn't create a new entity: instead, it consists in a shortcut to recall a structure of entities already in use in the level. Basically, you select the entities to mark as "favorite", you click on the "Favorite" button (or keyboard's "f"), then this new fav is added to your list of favs, and you can re-use this fav any time by simply clicking on it in the "Favorite" list. You can add as many favorites as you want in the "Favorite" list. For example, in the screenshot below, I created the left platform, make a favorite of it (a 42-piece favorite entity), and then use the list of favorites to add a new instance of this platform. Favorites are 100% compatible with Lemmings.
It's pretty much like the "Paste" option (CTRL-v, see my previous post) but with the possibility to store and select items from your own collection of useful stuff.

- And for quick access to the stuff you're looking for, you can now filter the items which are displayed in the list of items.
Filters are the following: Terrain, Object, Steel, All, All but Steel, Group, and... Favorite, of course 8)

Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 28, 2013, 12:35:30 PM
Hi,
I didn't have too much time to spend on the level-editor lately, but here are some news about it:

- several bugs fixed + code optimizations (some things worked, but I wasn't happy with the code, so I've re-written some functions). There is still work left on that.

- levels' size is no longer limited to Lemmings's 3200x320 (you set your level's size in a "config.ini" file / default values are Lemmings's), and it has never been easier to add new (custom) tilesets to the level-editor: so, in other words, the level-editor can now be used to design levels for a wider range of games.

- the GUI auto-switches to a vertical layout if you're making a vertical level

- new keyboard shortcuts added (toggle minimap on/off, for example)

- snap grid's lines are no longer displayed in the minimap

Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on July 30, 2013, 08:02:55 PM
I've just added a new feature that will help to accurately design the levels you imagine: the "Path Mode" feature.

In this new mode,
- 1) you select a single entity or a Favorite made of several entities to be cloned/generated along a path (in the screenshot below, I selected a multi-entity favorite => it's the red-selected item in the item list, and on the level's left side, you can see this favorite is not a single object but it's actually made of some various items)

- 2) then, you continuously draw each segment of your path until you decide to stop your path. And for each single segment, you set in real time the number of clones you want along the current segment (using keyboard's arrows to adjust the number of clones).
During this process, you see in real time the location of each item/clone on the segment: so, as you stretch and move path's current segment, you have an instant visual feedback of how your items will be finally set in the level. This is very coooooool to accurately design level's areas!
And until you commit the path's current segment, the clones that are displayed on screen act only as visual references (therefore, you don't see them in the minimap, since I didn't commit the path yet). When you commit the segment, items are actually added to the level.

Paths can be snapped on the grid lines too 8)

See this screenshot:
- 1 single segment,
- 3 clones wanted in the 1st screen,
- then, 14 clones wanted in the 2nd screen (very same segment)
- and, finally, 12 clones on a shorten straight horizontal line, in the 3rd screen
=> real-time visual feedback of what one is about to draw in the level :)



And the "Path" feature isn't limited to straight lines: you can also perform freehand drawings. Moreover, when you use curved paths, you can specify in real-time the spacing between each drawn item, and, as with straight-line paths seen above, you have a real-time visual feedback of what you're doing: veeeeeeeeery handy to design cool things!

So, with this new tool, generating landscapes is a very easy -and almost instant- job! It's really cool :)

Please, see the screenshot below:
- same path used on each screen (blue hand-drawn curve),
- selected entity used for the path is a Favorite made of 4 items
- spacings used are 1) 6-unit spacing (continuous landscape), 2) then 17-unit spacing, 3) then 45-unit spacing, 4) and finally I commited my path using a 99-unit spacing which results in a landscape made of individual islands.

Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on August 16, 2013, 12:30:46 PM
the dev' is almost over, and I have updated the page where you'll be able to download the level-editor:
http://www.lesjeuxlesplusmieux.com/leveleditor.html

On this page, you can see all the current working features: there are a lot of them now :)
Expect a release in September.

PS: feel free to try my puzzle-game on my website, too
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on August 25, 2013, 05:21:21 PM
Cool things have been done on the level-editor recently :)

- one can load & save Lemmings' .lvl files (as well as Lemmini's .ini files and editor's native .xml files).
- steel/metal pieces are 100% handled now.
- the snapgrid displays units in pixels (on x and y).
- you can filter what kind of items are displayed on screen (ie: all items appear in the 1st screen, whereas the 2nd screen displays Terrains only: no more yellow arrows, see?)
- I've also added the "visibility mask", which turns gray everything which is out of ingame screen's 640px-width limit (very useful when setting your level's starting point, for example). This feature is demonstrated on the 2nd screen.
- etc ...



And you can also use another mask-related feature to make quick and easy object alignments against mask's borders ("Collision Mask" feature).
In the screenshot below, top-left: the initial scene, top-right: I defined my mask, and selected some items, bottom-left: perfect left-alignements, bottom-right: perfect right-alignments.



Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on August 30, 2013, 09:01:32 PM
Ever wanted to design harmonious levels in Lemmings?
Well, just review your maths because you'll soon be able! :)

This morning a new idea hit me for making the level editor even better: add a feature that can evaluate math functions in order to set items' x and y coords!

Well, it's done, it works pretty well, and it's pretty fun to experiment with this feature  :thumbsup:
You can use functions like Plus, Minus, Multiply, Divide, Cos, Sin, Log, Pow, etc ... and numbers like PI. I have also added the possibility to use incremental variables when dealing with multiple items.

Being able to use maths opens a whole new world of level design for Lemmings (I think it has never been done before). What would be a nightmare to do manually only takes seconds now: it's really cool!!!

For example, in the 1st screenshot below, I started with bubbles aligned on a straight line, and then use the "Cos" function to set a nice layout. In the 2nd screen, I used a "Log" function to set very smooth steps for the ground.

Title: Re: coding a Lemmings clone + its level-editor
Post by: ccexplore on August 30, 2013, 11:28:45 PM
Neat, although might prove tricky to use effectively for your average user whose math may be rusty.  Perhaps having a "draw Bezier curve" feature (similar to how you already have "draw line segment" and "draw freeform curve" features) would give the average user the roughly similar ability to make smooth-looking curves, without having to brush up on their math. ;P
Title: Re: coding a Lemmings clone + its level-editor
Post by: LJLPM on August 31, 2013, 02:45:29 PM
Yeah, the formula editor is a bit of advanced feature but I'm glad it's here :)
It uses Javascript's functions/syntax, and formulas should result in a single number.
Moreover, I'm, too, interested in having Bezier curves in the level editor. Maybe one day...

For making things easier with the formula editor, I've already pre-entered some common functions (as seen in the screenshot below).

below: Making a random (but coherent) ground in seconds using the formula-editor (0 <= Math.random() < 1)


I have also made the formula editor more powerful than yesterday by enabling the use of items' attributes in formulas: for example, now, you can apply changes every n items, or on Terrains/Object/Steel only, or on items with specific width/height or position, etc... (ie: in the following screenshot, I skip 4 items before applying changes on item's position using an incremental variable on Y).

Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 13, 2013, 08:38:23 PM
Hi,
I keep on working hard on the level-editor in order to make it the best Lemmings level-editor ever! With this dev, I really went further than what I initially thought when I started this topic at the end of May. Actually, I think I wouldn't have gone this far without your help & support, so thank you! I'm really pleased with the result, and I hope you'll like it too!(please be patient, I hope to release the editor this month)

In the screenshot below, you can see this week's new features (handy features!):

- 1) a resizable Zoom window (x2, x4, and x8!) to help making hyper-accurate moves and item-alignments (you'll really be able to place your items exactly where you want them to be, at a pixel-perfect level, so no more excuses for approximate item-locations :))

- 2) I also added something I had in mind for weeks now, something very convenient to make level creations easier and faster than ever: just below the level (and just above the Zoom window, in the screenshot), you'll find the complete list of items' thumbnails of a given type (Terrain, Object, ...: depending on the item's type currently selected in the GUI). With this convenient list, you no longer have to scroll though a short list of items to find the item you want to add, because, now, you have instant access to the whole set of items! And the items you'll mark as "Favorites" will always appear at the begining of the thumbnail list (see the level's 2-item-made exit at the very 1st place of the thumbnail list of Terrains? It's a Favorite. You can spot them easily in the thumbnail list because Favorites are displayed over a blue background ;)): very helpful! ...Oh, and you can sort this list by item's ID, width or height ;)

With all the features you'll find in this level-editor, making a level for Lemmings has never been easier or faster! I really can't wait to see the levels you'll design with it!

Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 15, 2013, 05:47:04 PM
I really wanted this editor to be usable by the maximum number of people, so I had to work on the GUI's size, and I've just finished working on the ability to resize the GUI (and that was quite a work, actually :)).
Now the level editor could virtually work on any size of monitors: so whatever size is your computer's screen, you will be able to fully use the level editor :) The config file is initially set with relevant data to launch the editor using large width & height. But you can freely edit the config file to set a smaller (or bigger!) size for the GUI, depending on your needs.
You can also arrange GUI's layout as seen on the screenshots below. And actual level's size is also configurable (in order to make levels for other games than Lemmings).
And, finally, for those who mainly work with keyboard's shortcuts (which are now freely mappable, by the way  8)) and want to work with a lightweight GUI, then, you'll also be able to mask the bottom part of the editor (of course you can easily make it re-appear by a simple hit on the same key that made it disappear): this is a nice addition.

- arranged layout, with edition tools next to the level:


- standard layout for small screens (yes, yes, this is the full view of the editor! Notice the appearance of an horizontal scrollbar at the very bottom of the GUI, to access all the available edition tools/features):


- standard layout for big screens (all the available tools/features of the GUI are visible on screen)


- standard layout for big screens, lightweight GUI (bottom part masked, so you'd better have to know your keyboard shortcuts :)):


By the way:
Everything should be freely mappable to user-definable hotkeys.
done.

how compatible is your program right now? For example, If I were to make a level with it, save it as INI, could I then open the level up in Lemmix and it would work?
Yes, it works :)
Title: Re: coding a level-editor for Lemmings
Post by: namida on September 15, 2013, 07:48:29 PM
This editor actually looks pretty impressive. Might finally get me ditching LemEdit...
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 17, 2013, 12:00:26 AM
... and guess what: there are some other already-working cool features that I didn't talk about yet...  8) 8) 8)
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 17, 2013, 05:42:19 PM
New from today: the "Vertical Mirror" feature (= use of an horizontal axis for mirroring)
I coded the "Horizontal Mirror" feature early in the development, so I definitively should have done this one earlier ;P

TODO: I have to work on the "Undo/Redo" functions, which need fixes.

(scene made in seconds using the lightweight GUI only + snapgrid + "Brush" mode + "Vertical Mirror" feature, all of them triggered by keyboard shortcuts)
Title: Re: coding a level-editor for Lemmings
Post by: mobius on September 18, 2013, 04:32:24 AM
glad to see this is coming along  :thumbsup:

a few things: (just for the record)
I've changed my stance on turning miners and bashers when hitting steel. They had a good point about it being a good way of turning around and there aren't many ways to turn a lemming around in the game. Miners and maybe even bashers should turn around when they hit steel, but not diggers.

since seeing that the SNES Lemmings has a score, I thought this might be a fun feature to have in a Lemmmings clone. The score is based on time left, skills left and how many lemmings saved. (or something like that)
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 18, 2013, 05:39:24 PM
And since we're talking about some technical details,

- 1) do you know the size (width x height) of a builder's finished stairs, please?
(in the very 1st Lemmings, assuming this is the same size on Amiga/ST/PC, SNES, MD, etc...)

- 2) and what is the radius used by explosions (bombers), please?
(in the very 1st Lemmings, too, assuming this is the same radius on Amiga/ST/PC, SNES, MD, etc...)

Thanks for your help!
Title: Re: coding a level-editor for Lemmings
Post by: ccexplore on September 18, 2013, 08:44:59 PM
1) Each step of a builder's stairs is 1 pixel tall and 6 pixels wide, and each step starts 2 pixels farther than the previous.  Since there are 12 steps on a finished stairs, it should be pretty easy to work out.  (answer: 28 x 12)

2) 16 x 22 IIRC.  I believe WinLemm actually contains a BMP that has all the relevant graphics including the exact mask used for the explosion.  Note that the exact graphics is slightly asymmetric (ie. left half slightly different from right half), IIRC.  You can of course also just create a level with 1 lemming, entrance placed inside solid block of terrain, and then explode the lemming and see which pixels are taken out.
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 18, 2013, 09:26:26 PM
Thank you very much for your detailed answer! :)

Today, I didn't have too much time to spend on the editor, so I just took few minutes to add the "Shuffle" option: it randomizes the selected items' positions.
(the already-existing "Lazy" option randomly generates new items at random positions, whereas the "Shuffle" option doesn't create new items but allows you to choose/select level's items to be randomized: could be useful!)
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 19, 2013, 05:33:41 PM
Good news! All the bugs I was aware of are fixed now :) (except for the "Undo/Redo" functions which still require some work)

The level-editor is fully functionnal, and I have to say that the result exceeds my original goal when I started this dev (at that time, I planned to write a smaller tool with less... "everything" actually).

We are really getting closer to the release, so stay tuned!

new feature added: for those who would like to have access to a bigger list of items in 1:1 size, notice the optional resizable floating list at the right side of the level-editor.
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 23, 2013, 06:30:28 PM
Perhaps having a "draw Bezier curve" feature (similar to how you already have "draw line segment" and "draw freeform curve" features) would give the average user the roughly similar ability to make smooth-looking curves, without having to brush up on their math. ;P

Done 8) I still have some minor work to do on that feature, but the editor now includes a very basic "Create a Bezier Curve" possibility. With this feature, you'll be able to add perfect smooth curves to your Lemmings levels (as seen in the screenshots below).

Moreover, "Undo" & "Redo" functions are finished, too: so I guess I've finished the editor! :) :) :)
(... however grant me a little more time to clean the code before releasing the app ; it won't be long: sorry for the inconvenience, but I hope you'll be pleased with this level editor, and it will meet your expectations! Thank you!)

Title: Re: coding a level-editor for Lemmings
Post by: ccexplore on September 23, 2013, 11:26:13 PM
Hey, take your time.  I think this is the most full-featured level editor I've seen to date, it looks pretty impressive. :thumbsup:
Title: Re: coding a level-editor for Lemmings
Post by: loftyD on September 26, 2013, 10:49:27 AM
Hey, take your time.  I think this is the most full-featured level editor I've seen to date, it looks pretty impressive. :thumbsup:

I second that. I would totally use this when it's released.
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 27, 2013, 06:01:44 PM
Hey, take your time.  I think this is the most full-featured level editor I've seen to date, it looks pretty impressive. :thumbsup:

I second that. I would totally use this when it's released.

Thank you for your support! Thanks to this forum, I definitively rose my initial goal at coding this level-editor :) At the beginning, I just tried to code a little convenient level-editor for my own game, but now I've tried to make a level-editor "to rule" all the other Lemmings editors  :D :D :D You'll tell me!

This week, I cleaned the code a little bit, and I added two new useful features:

- feature #1
up to now, you were able to swap 2 items' # (with 1 click, make one item appear in front of another or vice-versa, depending on their own #).
This week, I added the "reindex" option. With this option, you don't swap 2 items' #, you only deal with a single item. To make it short, using "reindex" allows you to manually specify a new # for an item (for example, the item you've just added to the level (highest #) can now be set to be the very 1st item of the level (lowest #), and all the following items will be nicely reindexed: I'm sure you'll like this option very much 8) It will no longer be a pita to reorder your items in a level.

- feature #2
until this morning, the editor lacked the possibility to make circles of entities: now you can :) Obviously, you can set the circle's radius, but you can also adjust the density of entities along the circle. I can't remember having already seen this in Lemmings1 levels, so I think it's a first to have this kind of option!

I tell you once again: I can't wait to see the new levels you will create for Lemmings with the editor!!! (but, it is likely that I'll miss the september deadline for the release...)

... by the way, did I say that Undo & Redo functions allow 30 steps backward and foreward? :D

=> left: level's borders activated on top+bottom sides /// right: no level's borders activated on top+bottom sides, so entities that make the bigger circle aren't blocked: can you imagine the new ideas you'll be able to bring in level design, with the "Circle" option? :D


=> different entity densities along circle paths (same radiuses)
Title: Re: coding a level-editor for Lemmings
Post by: mobius on September 28, 2013, 04:38:43 AM
looking good  :thumbsup: I'm excited  :D Those mathematical designs look crazy cool.

Here's something that would make things quicker/smoother. Build in a feature/menu option that allows you to "test level in_" Lemmix/Lemmini and eventually your own game when it gets made. It should have you enter in your custom file path to the program. So then testing your level will be as easy as pressing a button. Instead of saving it, opening up Lemmini or whatever program then opening and finding the file to play it.
///yeah, I just realized you may need to work on the other programs to get this to work, so may not be doable. But it's definitely doable for your own game.
But I don't want to delay the release anyway, so if it'll take a while to add something like this then do it later  :P
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on September 29, 2013, 12:39:18 PM
looking good  :thumbsup: I'm excited  :D Those mathematical designs look crazy cool.
Thank you :) By the way, using "Bezier Curve" or "Circle Path" features shouldn't be too hard to use: for example, drawing circles of entities is as easy as:
- 1) set "Draw" mode to "Path"
- 2) click in the level to set the center of the circle
- 3) click a second time to set the circle's radius (= distance from the circle's center)
- 4) (optionnal) use keyboard's arrows to adjust up or down the entity density in the circle of entities
- 5) commit "Circle Path"
No need to be a Math expert to use Bezier curves or Circle paths :)

Build in a feature/menu option that allows you to "test level in_" Lemmix/Lemmini and eventually your own game when it gets made. It should have you enter in your custom file path to the program. So then testing your level will be as easy as pressing a button. Instead of saving it, opening up Lemmini or whatever program then opening and finding the file to play it.
///yeah, I just realized you may need to work on the other programs to get this to work, so may not be doable. But it's definitely doable for your own game.
Yes, I have to think about such a feature for my own game.
About Lemmix & Lemmini, I think it would need code modifications for both of them, unless one can provide a path to a file as an input paramater when we launch Lemmix/Lemmini, but I'm not aware of that. Maybe someone else knows?

 -----

By the way, since we're talking about making things easier, I guess it's time to show you a new fully-working feature I haven't talked about yet  :D

It is the "Control Menu"!
Just press SPACE, and the "Control Menu" appears right in front of you, making the level-editor's main options instantly available not very far away from a mouse-click!!!
And should I have to tell you about the icing on the cake? Well, you can freely configure 1) what options you want to see in this menu, and 2) where you want to place these options in the menu!!!!!!!  :thumbsup:
You already could freely configure your favorite keyboard shortcuts, but now you will also be able to fully customize the "Control Menu" to meet your needs and speed up your level-creation process, making your favorite options available right below your mouse's cursor!

Stay tuned for more exciting news!

Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on October 03, 2013, 10:19:06 PM
Before the release, we continue the tour, showing you cool things you'll find in the editor. Today, it's time for another cool+handy+useful feature that I didn't talk about yet, and which doesn't exist in any other Lemmings level-editor (to my knowledge)!

This feature was submited by möbius: so thank you!

Here come the "Helpers"!!!
The "Helpers" are extra entities you would use to help estimating Lemmings' safe fall distance, Lemmings' explosion area, or Lemmings' stairs dimension. They won't appear in the actual level during a game, they only exist inside the level-editor (as semi-transparent orange areas).
They are here to help you building perfect levels in a smooth way, hence their name :D

I have created "Helpers" for each tileset, so they are ready to use, and you select and place them the exact same way you would do for a classic entity (Terrain, Object, Steel).
Please see the blue arrow in the screenshot: it shows you where you select the Helper list. Icing on the cake is you can freely create and use your own Helpers to meet your needs!!!!  :thumbsup:

Stay tuned for more news!

Title: Re: coding a level-editor for Lemmings
Post by: namida on October 04, 2013, 12:34:08 AM
Awesome! That was one of my favorite features in Cheapo.
Title: Re: coding a level-editor for Lemmings
Post by: ccexplore on October 04, 2013, 12:34:28 AM
This concept has actually been implemented in one form or another in a few editors for other Lemmings-like games, but yes, somehow I think it never actually made its way into an editor for actual Lemmings levels before.

Maybe the picture is blurry but I feel like your current set of helpers is missing some important ones?  Such as:
- A completed builder's bridge.  Bonus points for also marking the pixels that are checked for ceiling detection, making it possible to tell exactly how far a bridge can go before the lemming detects ceiling and stops building.
- the maximum safe-fall distance (the numbers in your screenshot doesn't seem to be quite right?)
- A little less important, but helpers in the shape of basher and miner terrain-removal masks could be helpful, just like the bomber mask you currently have.  Also for the bomber helper, the row of pixels corresponding to ground level (or equivalently, the portion above and below ground level) should be distinguished in some fashion (eg. color) so that the helper can be applied much more accurately.
Title: Re: coding a level-editor for Lemmings
Post by: namida on October 04, 2013, 01:54:20 AM
Cheapo (and its predecessor Copycat Lemmings) had the feature, but you're right, nothing that supports the classic DOS format has ever had it.

As for the fall distance - it's correct for ONML/CustLemm mechanics. This editor appears to scale everything to 2x normal size, thus 126 would be correct (as fall distance is 63 in that).
Title: Re: coding a level-editor for Lemmings
Post by: Minim on October 04, 2013, 08:59:23 AM
The helpers idea is quite a good one. They also had these guides in the PSP version, but with the colour fully filled.
Maybe the picture is blurry but I feel like your current set of helpers is missing some important ones?  Such as:
- A completed builder's bridge.  Bonus points for also marking the pixels that are checked for ceiling detection, making it possible to tell exactly how far a bridge can go before the lemming detects ceiling and stops building.
- the maximum safe-fall distance (the numbers in your screenshot doesn't seem to be quite right?)
- A little less important, but helpers in the shape of basher and miner terrain-removal masks could be helpful, just like the bomber mask you currently have.  Also for the bomber helper, the row of pixels corresponding to ground level (or equivalently, the portion above and below ground level) should be distinguished in some fashion (eg. color) so that the helper can be applied much more accurately.
I agree on this. Maybe you could add the blocker's height and width as well, although I don't know what the height is for the lemmings to jump over the blocker (Or in another case, the restricted number of pixels where a builder turns round from the blocker). It might get too overly complicated though, so if you at least take ccexplore's points and work on them it shouldn't be a problem.

For certain guides, I believe there should be a 'snap to terrain' option where certain guides target the terrain. The fall height marker in particular is quite an important in this regard, even though it marks the edge of the ground.
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on October 04, 2013, 05:39:11 PM
Maybe the picture is blurry but I feel like your current set of helpers is missing some important ones?  Such as:
- A completed builder's bridge.  Bonus points for also marking the pixels that are checked for ceiling detection, making it possible to tell exactly how far a bridge can go before the lemming detects ceiling and stops building.
- the maximum safe-fall distance (the numbers in your screenshot doesn't seem to be quite right?)
- A little less important, but helpers in the shape of basher and miner terrain-removal masks could be helpful, just like the bomber mask you currently have.  Also for the bomber helper, the row of pixels corresponding to ground level (or equivalently, the portion above and below ground level) should be distinguished in some fashion (eg. color) so that the helper can be applied much more accurately.
I've just added all the helpers you asked for! 8)

For the stairs, I have added a "classic" and a "colored" helper (this way, you'll be able to choose your favorite way of working). In the colored version, the "safe" areas are the orange & the blue ones (see the screenshot below). If your lemmings need to move in a smaller area (because of a roof), then your lemmings will stop building. (colors alternate at each stair's step)


As for the fall distance - it's correct for ONML/CustLemm mechanics. This editor appears to scale everything to 2x normal size, thus 126 would be correct (as fall distance is 63 in that).
I have created all Helpers in 1:1 size and x2 scale (hence the fall distance in 63px as well as in 126px).

=> 11 (x2) helpers are available, so level makers should find some useful stuff in the list.

For certain guides, I believe there should be a 'snap to terrain' option where certain guides target the terrain. The fall height marker in particular is quite an important in this regard, even though it marks the edge of the ground.
The level editor features 1) a snap grid, 2) a "Zoom" window (x2, x4, x8), and 3) 1-pixel-by-1-pixel  accurate moves, so, yes, you'll be able to place any item very precisely at the exact place you want it to be.

Best of all: the level editor will be released tomorrow  so you'll have it for the week-end! :D


PS: I didn't tell yet, but the editor also allows you to export your levels as images. Nice 8)
Title: Re: coding a level-editor for Lemmings
Post by: mobius on October 04, 2013, 11:06:15 PM
oh boy oh boy :D

maybe you covered this but; do you have helpers for the Lemmini specs as well? For example builder bridges and deadly fall heights are different from DOS/custlem to Lemmini.
Title: Re: coding a level-editor for Lemmings
Post by: namida on October 05, 2013, 03:16:56 AM
Any chance you can incldue a 60/120px fall guide as well? I generally prefer to work with Orig mechanics...
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on October 05, 2013, 08:15:07 AM
maybe you covered this but; do you have helpers for the Lemmini specs as well? For example builder bridges and deadly fall heights are different from DOS/custlem to Lemmini.
I think (I hope :D) it's ok
There are 2 available "Bridge" helpers: 28x12 (DOS size) and Lemmini's x2 version in 56x24.
There are 2 available "Fall Distance" helpers: 63px height (DOS) and Lemmini's x2 version, 126px height
So, yes, you'll be able to target your favorite Lemmings version (every 1:1 helper also exist in a 2x version).

Any chance you can incldue a 60/120px fall guide as well? I generally prefer to work with Orig mechanics...
Yeah, sure! I've just added these ones (60+120) :)

Guys, if you need more Helpers, act quick because I'm working on the release right now!
Title: Re: coding a level-editor for Lemmings
Post by: namida on October 05, 2013, 09:32:20 AM
...Why not just allow the ability to load custom ones? That way, people can have whatever helpers they want. =P
Title: Re: coding a level-editor for Lemmings
Post by: LJLPM on October 05, 2013, 09:40:21 AM
...Why not just allow the ability to load custom ones? That way, people can have whatever helpers they want. =P

it is perfectly feasible, and it's up to you, guys, to create new Helpers 8)

Icing on the cake is you can freely create and use your own Helpers to meet your needs!!!!  :thumbsup:

And what would be nice is people share the Helpers they have created.
Helpers are .gif images with a number and a "hlp" suffix ; you'll find them in level-editor's "resources" directory

And if you don't need some helpers, well, just delete them from their directory. They are really easy to manage!
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 05, 2013, 12:13:40 PM
Well, I guess it's time!!!
So I'm happy to announce you that the level-editor I've started working on on May has just been released!  :D (it's been quite a long way since the beginning, really!)

I won't bother you with too much blabla but here are few things to help you starting with the software:
(I know I have to write a README file, but you don't want to wait for it to be written, do you? :D)

1) INSTALLATION
(if you already have Lemmini installed on your computer, then the installation process is very easy) :
- get the .zip file from the link at the end of this post, and uncompress it (jLevelBuilder - beta_1.0)
- find the "resources/tilesets/Lemmings/" directory
- in this dir, you'll find a dir for Lemmings' every tileset (Helpers are in these dirs). Fill these dirs with Lemmings' graphic data (because of obvious copyright issues, I can't provide Lemmings' graphics). So how to do that?
- a) if you have Lemmini installed, well, simply copy here all items from Lemmini's tilesets (example for "brick" tileset: copy from "brick.ini" to "brickom_7.gif" in the "brick" folder, and do the same for all tilesets). EASY! nothing else to do!
- b) if you don't have Lemmini installed on your computer, then search on YouTube for "Lemmini Lemmix", and follow the installation steps shown in the "How to set up Lemmix level creator with lemmini level player" tutorial. When it's done, copy the Lemmings graphics from your Lemmini's gfx folder to the level-editor's gfx folder (see step "a)" above).
- launch jLevelBuilder.jar, and you're ready to make a level! ("j" stands for "Java")
(then, in the editor, the 1st thing to do is to select the tileset you want to use: brick, dirt, snow, ...)

2) SET YOUR OWN CONFIGURATION (optionnal)
you can freely modify the "config.ini" and the "keyconfig.ini" text-files located in software's root-dir.
For example, if you want to adjust GUI's size according to your screen's dimension or if you want to change default directories, then go editing "config.ini".
Key configuration is best modified directly from the level-editor's GUI ("Options" > "Key configuration")
You'll find backups of the original files in the "_backups_" folder.

3) TOOL TIPS
if you don't know what this button or value does, then just leave your mouse over it few seconds to make the component's description appear.

4) MATH FORMULA
I have to write stuff on this one, because it is probably not very clear on how to use it.
Basically:
- in the level, select all the items you want to be affected by your Math formula
- in the "Math Formula" window, select if your math formula will affect items' posX or posY
- work your maths :D, and write a formula which results in a single value
- click "Compute" and you're done
- For convenience, I have already written some math templates you'll find in a list at the bottom of the "Math" window: you just have to fill the blanks between operators
- Knowing that, it should be ok to start with this feature, and I'll write more detailed explanations later (specially about the incremental stuff)

5) LEVELS IN ADVANCED MODE (VS LEVELS IN LEMMINGS MODE)
At the time being, I still have work on extra features for the "Advanced" mode (.xml saves, level's ID, level's password, groups, item 90°-rotation, ...), so you can only make levels for classic Lemmings (but that should be ok, right? :D). Therefore "Level Format" is stuck to "Lemmings", and features that are disabled are just linked with "Advanced" mode, so you can ignore them atm.

6) UNDO/REDO
30 steps backward, 30 steps forward

7) WHAT CAN I DO WITH THIS LEVEL-EDITOR? WHERE IS THE LIST OF ALL THE FEATURES?
I can't stress enough the fact that you should read the list of available actions on level-editor's official page (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html), and test each option at least once. Otherwise, you'll probably miss some convenient features.
From the GUI's "Key Config" window, you can also have a good look at the available actions.

8 ) SYNTAX ERRORS
I'm not an english-native speaker, so if english-native speakers find syntax errors on the official page or in the GUI (tooltips, for example), feel free to tell me about a fix! Thanks!

9) BUGS
I have tried my best to provide a functionnal tool, but you'll find bugs I missed for sure: so please report them here. If possible, try to be precise, and maybe post a screenshot or provide a download link for the buggy level. Thank you!

10) NEW FEATURES?
Of course, I'm ok to add new features, so if you have ideas about some new features, feel free to submit them! :D

11) DONATIONS
You can freely download the level-editor from my website.
If you're feeling generous, and find the tool useful, then you can make a Paypal donation on the download page. Thank you very much!

12) CONCLUSION
Now it's time for you, guys, to work (I have finished my job, no?... well, not yet, actually, since there will be plenty of bugs to fix :D), and to show us what kind of new levels you can bring to Lemmings in 2013, using features that even DMA didn't have, when they created levels for the original Lemmings (I think of paths, clones, favorites, entityID-reindexing, list-sorting, thumbnail list, helpers...). Now, I'm really excited to see what YOU! will create with this level-editor!

Let the game begin!

download link: http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html


PS: I've just noticed that the current version of the editor lacks info about the way to create circle paths. I'll fix it in the next version. Anyway, when you finished with a path (= all segments drawn), you have to commit your path by clicking again on the "Create Path" key ("p" by default). For creating circles of entities, commit circle-path using "SHIFT+p" instead of just "p" (classic path). Sorry for the inconvenience...

PS2: the editor lacks an "hourglass" icon when performing heavy operations (like commiting circle paths/complex paths, for example). I'll try to fix this and also see how I can optimize some things, but, for the time being, just wait until the job is done (= no need to kill the process 8))... Remember, complex paths/circle paths using many entities are heavy on CPU!
Title: Re: coding a level-editor for Lemmings
Post by: mobius on October 05, 2013, 04:51:59 PM
Icing on the cake is you can freely create and use your own Helpers to meet your needs!!!!  :thumbsup:

oh okay, I forgot this so yeah, my earlier post was of little concern.
Yay!  :thumbsup: I will be testing it out today, and I'll be sure to notify of the outcome  :)

--------------
EDIT:
I looked at it a little bit.
-Installation was a breeze so that's big plus  :)
-making new levels is working but a little confusing at first. Menu properties like remembering your last opened folder and things like that would be nice. But these are things mostly that will just take getting used to because it's very different from Lemmix.
-I'm having a little trouble opening ini files. I only tried one so far so, I'll do more testing. It opened a lvl level just fine.

specifically; when I opened a ini level it came out in the wrong terrain and glitched, even after selecting the correct terrain in the lower left menu.

-the whole program is rather slow, idk if this is normal or just my computer. I didn't try the advanced features yet, looking forward to that  :)
I Don't mean to be a downer, just trying to point out problems sooner rather than later.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 05, 2013, 09:52:12 PM
First things first: thank you very much for your feedback!

-Menu properties like remembering your last opened folder and things like that would be nice.
Yes, you're right. I have to fix this: it would be convenient.
Until the fix, you could edit the "config.ini" file to set your favorite directory-paths (instead of the default ones)

-I'm having a little trouble opening ini files. I only tried one so far so, I'll do more testing.
specifically; when I opened a ini level it came out in the wrong terrain and glitched, even after selecting the correct terrain in the lower left menu.
Is it possible to provide me a download link for the level which causes troubles? I'm afraid it is the only solution for me to find and fix this bug. Thank you!

-the whole program is rather slow, idk if this is normal or just my computer.
Yes, I think I can optimize some code to speed up things, but I didn't want to postpone again the release of the level-editor. I'll see what I can do!

I Don't mean to be a downer, just trying to point out problems sooner rather than later.
And you're absolutely right! Thank you very much!
Title: Re: coding a level-editor for Lemmings (released)
Post by: grams88 on October 05, 2013, 10:09:58 PM
Good on you that must of been a lot of work there LJPM.  :thumbsup:  It will probably take me a while to get used to it as I'm kind of slow at trying to figure things out.

It looks like it's going to make the whole level building experience a lot easier. 
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 06, 2013, 12:05:48 AM
I'm wondering, are there any tools out there to rip (and resize - without any antialiasing, preferably) the terrain pieces from the Ground0o/Vgagr0 files from DOS? (If not, I might look into making something myself... I know there's extractors for these files, so then it's just a matter of converting them into GIF.)

Just because I remember hearing the hi-res graphics from the Windows versions (which is what Lemmini extracts) aren't always perfect.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 06, 2013, 10:03:10 AM
Menu properties like remembering your last opened folder and things like that would be nice.
Ok. I've just fixed this one -and I definitively should have done this earlier since it was very easy to do!-
So, now, "open/save file" process now remembers the last used folder (depending on whether it's for dealing with a .ini or a .lvl file).
New version with this convenient fix will be online today or tomorrow: I'll keep you informed.

It looks like it's going to make the whole level building experience a lot easier.
Thanks!

I'm wondering, are there any tools out there to rip (and resize - without any antialiasing, preferably) the terrain pieces from the Ground0o/Vgagr0 files from DOS?
Sorry, I don't know. Maybe someone else?
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 06, 2013, 10:33:33 AM
Okay, I tried it out a bit and, while it looks neat, it also tries to take up more space than is available on my screen, pretty much making it unusable. On the right-hand side, the window itself cuts off part way across a button. Perhaps all the menus at the bottom could be better done as seperate popup windows, to reduce the size of the main one? Or alternatively, under tabs?
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 06, 2013, 01:51:31 PM
Okay, I tried it out a bit and, while it looks neat, it also tries to take up more space than is available on my screen, pretty much making it unusable. On the right-hand side, the window itself cuts off part way across a button. Perhaps all the menus at the bottom could be better done as seperate popup windows, to reduce the size of the main one? Or alternatively, under tabs?

No problem here, just edit the "config.ini" file to set GUI's width to a value that suits your needs.
In this file, find the "GUI_WIDTH" entry, set a lower value than the default one, and your're done!
The "GUI_BOTTOM_PANEL_HEIGHT" entry may also be used to shorten the GUI's height.

I really wanted this editor to be usable by the maximum number of people, so I had to work on the GUI's size, and I've just finished working on the ability to resize the GUI (and that was quite a work, actually :)).
Now the level editor could virtually work on any size of monitors: so whatever size is your computer's screen, you will be able to fully use the level editor :) The config file is initially set with relevant data to launch the editor using large width & height. But you can freely edit the config file to set a smaller (or bigger!) size for the GUI, depending on your needs.

2) SET YOUR OWN CONFIGURATION (optionnal)
you can freely modify the "config.ini" and the "keyconfig.ini" text-files located in software's root-dir.
For example, if you want to adjust GUI's size according to your screen's dimension or if you want to change default directories, then go editing "config.ini".
Key configuration is best modified directly from the level-editor's GUI ("Options" > "Key configuration")
You'll find backups of the original files in the "_backups_" folder.
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 06, 2013, 04:24:08 PM
Took a while to work it out. It would be nice if it could get the resolution and adjust size basd on that, but at any rate, once it's set up right, it's a very nice editor.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 06, 2013, 04:35:48 PM
It would be nice if it could get the resolution and adjust size basd on that
Good idea! I'll try to add it for the next release!
I'm also focused on optimizing code to make the editor work faster when dealing with many items.
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 06, 2013, 05:26:22 PM
I don't see a "close level" option, although it's not immediately important.

-I'm noticing that when opening snow LVL levels; objects seem to be moved to the right a little.
-I can load ini files fine now, i dont think that's a problem; Sometimes when loading any kind of level it glitches, the screen is empty and the terrain says special., Or it just loads in another incorrect terrain.

You had explained "scenes" and those extra things in this thread right? I have to look over that again, I don't know what all those things mean.

why does zooming require I new window to open up? I prefer being able to zoom in and out with the main window.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 06, 2013, 11:48:54 PM
I don't see a "close level" option, although it's not immediately important.
What would do a "close level" option?
("CTRL+R" or "File>New Level" reset the editor allowing you to start a fresh new level)

-I'm noticing that when opening snow LVL levels; objects seem to be moved to the right a little.
Actually, snow LVL levels behave exactly the same as other LVL levels. Maybe there's a small offset to the right, but if it's the case, then it should exist for any other LVL levels (bubble, rock, etc...).
1) could you confirm it's ok (or not?) with other types of LVL levels, please?
2) what is your reference, please? (Lemmix, Lemmini, other?). Knowing that, I could proceed with some tests. Thank you.
--- EDIT ---
I've just performed tests opening lvl1013.ini and lvl1013.lvl (snow level), and they open exactly the same way in the level-editor (no left or right shift between .ini and .lvl)
note: whenever possible, feel free to provide the file name of the level which causes troubles ; it will help me for finding & fixing bugs :)

-I can load ini files fine now, i dont think that's a problem; Sometimes when loading any kind of level it glitches, the screen is empty and the terrain says special., Or it just loads in another incorrect terrain.
I think the bad loading is the result of a buggy previous action you did (but what is the buggy action is mystery). I have to investigate on this problem... If you can think of/determine a previous action which failed, then it may be a lead: thank you.

You had explained "scenes" and those extra things in this thread right? I have to look over that again, I don't know what all those things mean.
Sorry for not having been very clear on this one: scene=level state.
You can quicksave and quickload complete levels.
for example: you can work on a level, quicksave it, make some changes, then you can quickload your level from its quicksaved state if you don't like the new changes you made.
You can quicksave/quickload up to 4 scenes (= 4 level states), and also up to 4 entity selections (it can be very useful)
See "Quick Saves" section here: http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html

why does zooming require I new window to open up?
There's no particular reason ; I just wanted to be able to keep on eye on the 1:1 level while having a zoomed view, too.

I prefer being able to zoom in and out with the main window.
I will see if I can do something for that, but I can't promess this feature will arrive...
Title: Re: coding a level-editor for Lemmings (released)
Post by: ccexplore on October 07, 2013, 07:52:04 PM
I think the bad loading is the result of a buggy previous action you did (but what is the buggy action is mystery). I have to investigate on this problem... If you can think of/determine a previous action which failed, then it may be a lead: thank you.

In general, it may be a good idea to get the program to write out a text log of important/interesting things (along with timestamps of course, and flush to disk aggressively so you get stuff written even if the program died horribly from crashing) that happened, to help with bug investigations, precisely to deal with situations like this.  It's not as flashy as adding new cool features to the program, but can prove really helpful down the line--your average users may not always remember all the things they did leading up to an issue, but the log sure can.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 07, 2013, 08:28:57 PM
Yes, actually I already have something like this for handling "Undo/Redo" jobs, but I may have to improve it a little bit to write logs as you suggest.

By the way, I have uploaded "beta 1.01":
- last used folder are now remembered when opening/saving .ini and .lvl files :D
- some code optimization (@möbius: please tell me if those changes have improved speed... or not. Thanks!)

You can download the update here:
http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html
if you have modified the config.ini and/or keyconfig.ini file(s), be sure to backup your modified file(s) before overwriting them with those included in beta_1.01!

@möbius: about the bug when loading levels (glitches, empty screen, terrain "Special", ...), could you just tell me what tilesets/styles are installed on your computer, please? Because maybe we have different tilesets installed, and this is why the bug occurs (I may have missed something with this tileset thing). Thank you very much!!!!
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 08, 2013, 02:00:34 AM
I wanted to test it out more and keep up with this but I got busy and my computer's been updating all day long and I couldn't do anything. Thank you for your very prompt replays for this however!  :thumbsup:

I can at least answer your question:
I uploaded Lemmini graphics only so far into your programs folder. As to what other graphics I have on my computer I have only Lemmini and the DOS and custlemm styles or Lemmix.
(the styles which somebody uploaded somewhere and ccx points to for newcomers who don't have an actual copy of the gamedata
There is one odd thing but I doubt it could cause this problem: I have DroidlingsGfx uploaded by someone here styles in my Lemmix/gamedata folder (which I haven't even looked at yet  :( ).
Title: Re: coding a level-editor for Lemmings (released)
Post by: ccexplore on October 08, 2013, 02:23:48 AM
I'm wondering, are there any tools out there to rip (and resize - without any antialiasing, preferably) the terrain pieces from the Ground0o/Vgagr0 files from DOS? (If not, I might look into making something myself... I know there's extractors for these files, so then it's just a matter of converting them into GIF.)

I could see if any such thing still lurks on my old computer but don't hold your breath.  Incidentally, I believe there are a number of free programs out there that can do mass conversions of graphics files from one format to another, so as long as the extractors can extract into an established format like BMP, conversions should be trivial.

I'm still a tiny bit curious/confused as to what your objectives are though, given that you hinted at reusing the graphics at 2x resize?
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 08, 2013, 05:05:15 AM
The hi-res graphics from WinLemm (the ones that Lemmini extracts and this program uses) are double the size of the DOS version graphics. Therefore, to display correctly, ones extracted from DOS would need to be double size.

The reason for this is simply that I've heard hi-res graphics aren't always pixel-perfect accurate to the traditional ones.

By the extractors, I meant your own tool for extracting the compressed data from DAT files. Ldecomp, I think it was called.
Title: Re: coding a level-editor for Lemmings (released)
Post by: ccexplore on October 08, 2013, 12:54:50 PM
Oh I see, I probably missed it somewhere on the thread on how LJLPM's editor gets the graphics from.  Unfortunately I checked the one old computer most likely to have such extracted graphics, but fail to find anything there.  I'll keep looking as time permits, but it's not looking too good.

May also be worthwhile to search through archived posts of old forums to see if anyone else may have extracted the graphics at some point (whether they're still around or not may well be an issue though).  I may have documented the relevant formats, but IIRC one or two people were ahead of me in terms of programming, as soon as I had published how the compression works (ie. the ldecomp stuff).
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 08, 2013, 04:07:42 PM
The reason for this is simply that I've heard hi-res graphics aren't always pixel-perfect accurate to the traditional ones.

Yes, they are not.  For example; builder bridges don't extend as far as they should causing a lot of annoyance in Lemmini. I would be interested in this as well btw, I like that the graphics in Lemmini look more detailed and nicer but it's a big down side that they have to be "mini" and the above problem of course.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 08, 2013, 07:04:56 PM
@möbius: ok; thank you for your reply. I can confirm that tilesets in Lemmix, Lemmini, etc...'s folders don't interfere. Only the styles/tilesets in jLevelBuilder's own directories are handled. So we have exactly the same tilesets used in the level-editor. Please, could you also confirm we have the same number of items in each style (these values include .gif images (including helpers) + stylename.ini). Thank you!

- brick=101 items (.gif, .ini)
- bubble=106
- crystal=80
- dirt=93
- fire=107
- marble=101
- pillar=105
- rock=108
- snow=78
- special=33
Title: Re: coding a level-editor for Lemmings (released)
Post by: 5k17 on October 08, 2013, 08:56:09 PM
I'm having some problems with it:
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 08, 2013, 09:50:58 PM
Hi,
thank you for your feedback.

1) I never had this kind of bug. Maybe your Java version is out-of-date? Please, could you see if the bug still occurs after having installed the latest Java from http://www.java.com ? Thanks.
(or did you make some invalid changes in the "config.ini" file perhaps?)

2) that's normal: you can no longer select a new tileset after you have selected one for a level (and this is automatically done when you load a level). When you have selected a tileset, then you can only use gfx from this tileset in your current level.

3/4) is it possible to provide me a link where I can download some .ini and .lvl files that cause troubles?

Actually, in a general manner, whenever possible, when you, guys, find bugs, please provide the level's filename (.lvl or .ini), or a screenshot, or a link where I can download the level that causes troubles (only useful if the level doesn't belong to ORIGinal or OHNO Lemmings because, otherwise, I already have the level and level's filename is enough). It would help me a lot to find and fix bugs. Thank you very much!!!

PS: in the next version, I'll include a "Please wait..." pop-up message to notify the user when there's a running process (circles of entities, Bezier curves, ...).
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 08, 2013, 10:40:17 PM
@möbius: ok; thank you for your reply. I can confirm that tilesets in Lemmix, Lemmini, etc...'s folders don't interfere. Only the styles/tilesets in jLevelBuilder's own directories are handled. So we have exactly the same tilesets used in the level-editor. Please, could you also confirm we have the same number of items in each style (these values include .gif images (including helpers) + stylename.ini). Thank you!

- brick=101 items (.gif, .ini)
- bubble=106
- crystal=80
- dirt=93
- fire=107
- marble=101
- pillar=105
- rock=108
- snow=78
- special=33

I can confirm I have the same as you right there. I'm going to use the program again right now and do some stuff. I only opened up a few levels and they were all levels that I made with Lemmix personally, except for one by Clam in the snow/Custlemm style. This one plus another snow I made had the "moving objects" issue. None other had this issue. But Again, I've only looked at a few levels so far, so I'm going to look at more.
And hopefully create some more of my own if I ever get around to it...

EDIT: I just noticed it seems you can't access the command menu or key configuration if no level is open yet.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 08, 2013, 10:51:30 PM
Ok. Thanks for your reply!

I only opened up a few levels and they were all levels that I made with Lemmix personally, except for one by Clam in the snow/Custlemm style. This one plus another snow I made had the "moving objects" issue.
If these levels are public/freely available, could you tell me where I can get them, please?
If I can get my hand on these levels, it would definitively be the fastest way to make those bugs fixed :D

EDIT: I just noticed it seems you can't access the command menu or key configuration if no level is open yet.
yes and it seems ok to me, but I'm open to suggestions and pieces of advice :)
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 08, 2013, 11:19:02 PM
btw, I did download the new version.
the problem seems to be with ini files. I opened a few random lvl levels of different terrains and they were fine.
I opened a few random ini levels and they all came out in dirt (incorrect) terrain. Once it came out in Special.

I uploaded the ini files I tried which failed. (they are Dodochacalo's)

------------
I don't see a key or option to be able to assign a key to quickly load or open a level. (control O, control W and those standard keys would be nice)
yeah I was being a little nitpicky but these are just some very standard things that many common programs have. It makes it a little easier to get used to a new program if it has these things

Mod Edit: Restored attachments.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 08, 2013, 11:32:09 PM
Thanks! I have found & fixed the bug: it was easy! :D
It's because in these .ini files, style = "Marble", "Crystal", "Fire", ... (expected was "marble", "crystal", "fire", ...)
I'll upload the fix tomorrow.
Ok, I'll see what I can do for "CTRL + O" : thanks for the suggestion!

By the way, the 3rd level you provided ("06°) I Won't Say I'm in Lem.ini") is identical to the 4th ("07°) Overkill.ini") except it uses a bad style (dirt instead of fire).
Title: Re: coding a level-editor for Lemmings (released)
Post by: 5k17 on October 09, 2013, 12:16:00 AM
1) I never had this kind of bug. Maybe your Java version is out-of-date? Please, could you see if the bug still occurs after having installed the latest Java from http://www.java.com ? Thanks.
(or did you make some invalid changes in the "config.ini" file perhaps?)
My Java version seems to be current, and I haven't changed the config.ini at all. My screen resolution is 1366x768, in case that's relevant.

2) that's normal: you can no longer select a new tileset after you have selected one for a level (and this is automatically done when you load a level).
That makes sense, although some people do like changing the tilesets of finished levels.

The only lvl files I've tested are Plinto. Among other things, both parts of the exit in brick levels are 32 pixels too far to the right, and the marble levels are consistently given the special tileset.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 09, 2013, 12:33:13 AM
Thank you for providing the link to the levels that don't load correctly.
I can see the bug, but I haven't the fix yet. I'll keep you informed tomorrow (it shouldn't be too hard to fix).
(and the scrollbar bug is probably linked with the bad level-loading)
I'll make Plinto's .lvl levels work in the editor 8)

2) that's normal: you can no longer select a new tileset after you have selected one for a level (and this is automatically done when you load a level).
That makes sense, although some people do like changing the tilesets of finished levels.
Earlier during the dev, I made some tests with such a feature, but results are barely interesting actually. (moreover, tilesets don't have the same number of items which isn't convenient for tileset switching)
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 09, 2013, 01:03:49 AM
Thanks! I have found & fixed the bug: it was easy! :D
It's because in these .ini files, style = "Marble", "Crystal", "Fire", ... (expected was "marble", "crystal", "fire", ...)
I'll upload the fix tomorrow.
Ok, I'll see what I can do for "CTRL + O" : thanks for the suggestion!

By the way, the 3rd level you provided ("06°) I Won't Say I'm in Lem.ini") is identical to the 4th ("07°) Overkill.ini") except it uses a bad style (dirt instead of fire).

great news  :) that was fast!

What do you mean by it uses a bad style? dirt instead of fire? I just checked and you're right "I won't say I'm in Lem" is messed up... I don't understand why, I haven't edited these files at all, in your program or Lemmix  ??? ???
Correction: actually I may have accidentally saved that level when it glitched in the editor. That's why it's in dirt style I'm guessing. I pressed the save button but I didn't press okay when the menu popped up, I pressed escape expecting to Not save...

Also: you should come up with a more catchy title for your program :D
to mention some positive things: I like that the item list works and you can select things with it easier than Lemmix.
--------
And thank you, 5k17, for trying my newest level pack there.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 09, 2013, 10:09:34 AM
I don't see a key or option to be able to assign a key to quickly load or open a level. (control O, control W and those standard keys would be nice)
now done :D
CTRL+w closes the editor. And for opening/saving a .lvl or .ini file, it's up to you to decide what key-mapping you prefer (maybe you mostly work with .lvl files or maybe it's with .ini files?). Moreover, by default, in the editor, please remember that CTRL+o currently opens the list of Objects (CTRL+t:Terrains, CTRL+h:Helpers, etc...)

  • all opened ini levels default to the dirt tileset
It has been fixed in the upcoming new version (same bug as möbius reported)

  • when loading lvl levels, some objects are too far to the right; this always seems to happen to the same object types and with the same distance
The only lvl files I've tested are Plinto. Among other things, both parts of the exit in brick levels are 32 pixels too far to the right
You have perfectly identified the bug, and thanks to the Plinto's levels, I have succeeded in fixing it (it was easy: bad calculation for setting Objects' xPosition)

marble levels are consistently given the special tileset.
Fixed, too (=> stupid error in code: grrrr...)

I'll keep you informed when I upload the fixes today.

PS: 5k17, please tell me if the "scrollbar" bug still occurs with the new version I'll upload today. Thanks!
PS2: thank you very much, guys, for your precise bug reports: it allowed me to fix important bugs!

-------------------

[edit] new version available (important fixes applied):
- fixed bug with Lemmini's levels whose style/tileset name used uppercase
- fixed bug with Terrains not correctly up-down inverted under specific conditions, in Lemmini levels
- fixed bug with Lemmings' "marble" levels (used to display "special" levels instead)
- fixed bug with misplaced Objects in Lemmings' levels
- undo/redo operations lowered to 10 steps by default (for performance issues), but this value is now freely editable in the "config.ini" file (up to 99 steps, depending on how strong is your computer)
- added a "Please wait..." message while generating a path
- added "CTRL+w" option to close application
- in "keyconfig.ini", added entries for "Save/Open Lemmings/Lemmini" levels (user choses her/his preferred key-mapping for these actions)

if you have modified the config.ini and/or keyconfig.ini file(s), be sure to backup your modified file(s) before overwriting them with those included in beta_1.1!

If you have modified the "keyconfig.ini" file, then manually add the "CLOSE_APPLICATION" and "OPEN/SAVE LEVEL" entries to your own "keyconfig.ini" file.
Title: Re: coding a level-editor for Lemmings (released)
Post by: 5k17 on October 09, 2013, 02:34:41 PM
The scrollbar problem still happens, but I've meanwhile managed to resolve it by reducing the sizes in the config.ini. Specifically, I've set GUI_WIDTH to slightly below my screen width (if I set it to my exact screen width, I have to move the window to the left in order to see the vertical scrollbar) and GUI_BOTTOM_PANEL_HEIGHT to 300 (my screen height still being 768).
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 09, 2013, 04:58:42 PM
I was making a level and accidentally deleted the whole thing by pressing F4. Perhaps you should add some kind of tool tips feature or an optional warning message for this sort of thing. Or just make it so you can't load a save if there is no save yet.

I really like the borders on X and Y option. (not going below the screen)

I'm a little confused about the "snap-to feature". I thought this was to snap terrain pieces together so they can line up next to each other easily, but it seems to be only in regards to the grid. I don't think I'm understanding it yet. I'm not feeling well enough to do as much editing as I wanted to right now. But I do have a level in mind and I'll post it here when it's done  :)
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 09, 2013, 05:34:08 PM
@5k17: pleased to hear that you get rid of the scrollbar problem!  ;)

I was making a level and accidentally deleted the whole thing by pressing F4. Perhaps you should add some kind of tool tips feature or an optional warning message for this sort of thing. Or just make it so you can't load a save if there is no save yet.
You're absolutely right!
1) I'll add a warning message before loading a quicksave, and 2) I'll prevent from loading an empty quicksave slot. Very useful things, indeed! I'll do it tomorrow.
By the way, performing an Undo (CTRL+z) would have brought your level back.

I really like the borders on X and Y option. (not going below the screen)
Thanks. Uncheck the "Border on X/Y" options, and then use the keyboard's arrows, if you need to place/move items out of level's limits (but level's limits are not infinite and are limited by Lemmings' level format: the level-editor will block your moves when you reach the furthest allowed limits).

I'm a little confused about the "snap-to feature". I thought this was to snap terrain pieces together so they can line up next to each other easily, but it seems to be only in regards to the grid. I don't think I'm understanding it yet.
Snapping is easy:

- 1) each time you select an item, it will auto-fill GUI's "Snap on X/Y" values according to the item's dimension (and if displayed, snapgrid is auto-adjusted, too)

- 2) (optionnal: of course, you can manually edit the "Snap on X/Y" values, if you want)

- 3) you want to snap an item on the grid? well, press 's' (to enter "snapgrid" mode), or just check any of the 2 checkboxes on the left of the "Snap on X/Y" values (snapX and/or snapY checkbox(es))

- 4) (and this is the step you were missing) you want to snap other items (with different size) while keeping your snapgrid's values? just check the checkboxes on the right of the "Snap on X/Y" values (this way, it will cancel the step #1 seen above :D)

Moreover, using keyboard's arrows move items left, right, top, down, according to the item's dimension (and CTRL+arrows will perform 1px moves).
Now, if you have checked the checkboxes seen in step #4 (those on the right of "Snap on X/Y" values), then using keyboard's arrows will now move items left, right, top, down according to the "Snap on X/Y" values: very useful!

Sure, you'll be able to snap items exactly the way you want!

PS: if snapgrid is displayed, then SHIFT+s allows to switch between units in pixels and row/col indexes (may be useful when dealing with straight-lined snapped paths)
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 09, 2013, 06:22:26 PM
... and, also, don't forget the "Collision Mask" feature for aligning items: SHIFT+v 8)
(collision masks are best used with a "Zoom x2/x4/x8" window opened)
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 10, 2013, 07:32:41 PM
There is a bug with moving objects

when moving left or right, it goes farther right than it should or less left I'm not sure but it's not equal. Then, I can't hold down control and  move objects slightly to the right at all. But I can every other direction.
Up and down seems to work fine, both normal and with control held down.
and moving terrain and steel works fine.

-This is important: when cloning (or copying) things, the original thing should be deselected. As it is, you always have to unselect everything manual so you can move the copied thing without moving the original thing. If there is a good reason for having it the way it currently is that's fine, but an off/on option would be nice.

The shift V function is very nice, very versatile. It will just take some while getting used to  :D You might want to explain this one in a little more detail somewhere. (maybe you already did and I didn't see)

Having the zoom ability in normal screen mode would really be nice. It seems very restrictive as it is now.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 10, 2013, 09:19:34 PM
There is a bug with moving objects

when moving left or right, it goes farther right than it should or less left I'm not sure but it's not equal. Then, I can't hold down control and  move objects slightly to the right at all. But I can every other direction.
Up and down seems to work fine, both normal and with control held down.
and moving terrain and steel works fine.
No there's no bug :D, but I should have explained it somewhere (I really have to write this README!!! 8))

According to Lemmings's level-format, Objects' posX must be a multiple of 8:

=> from http://www.camanis.net/lemmings/files/docs/lemmings_lvl_file_format.txt
" ==OBJECTS===============================================================
[...] x pos  : [...] note: should be multiples of 8 [...]
"

So, to prevent from having misplaced Objects in a level, the editor auto-sets the nearest allowed posX value (ie: multiple of 8 ). Everything is ok here.

And the same applies for level's start position:
" [...] Start screen xpos : [...] is rounded to nearest multiple of 8 [...]"


-This is important: when cloning (or copying) things, the original thing should be deselected. As it is, you always have to unselect everything manual so you can move the copied thing without moving the original thing. If there is a good reason for having it the way it currently is that's fine, but an off/on option would be nice.
I like to create an item, clone it, and then move the original item + its clones to the place I want them to be.
But I will add the "on/off" option you asked for: no problem :)
Until I add this option, just "click + ALT" on the item you want to deselect (no need to deselect all)
=> ALT = deselect clicked item


The shift V function is very nice, very versatile.
Yes, I agree :D

It will just take some while getting used to  :D You might want to explain this one in a little more detail somewhere. (maybe you already did and I didn't see)
No, you're right, I didn't talk too much about this feature.
Everything is here:
http://www.lemmingsforums.com/index.php?topic=794.msg17285#msg17285
Basically, the "Collision Mask" feature restrains items' moves between horizontal/vertical borders: it's convenient for making quick item-alignments. Since it also displays x/y positions and the spacing between the borders, it may also be used as a ruler.

By the way, just press 'v' (Visibility mask) to mask everything which is out of game's screen-dimension (may be useful, when you set your level's start-position and you want to know what the player will see when the game starts!!! 8))

Having the zoom ability in normal screen mode would really be nice. It seems very restrictive as it is now.
Didn't check this atm, but, personally, I like to have my Zoom window always opened over the lower-left part of the GUI. I didn't find it restrictive: it's always here and available!
I'll check what I can do for this, but because of the way it was originally designed, I can't promess you I'll change this (it's not an easy thing to re-work/re-design...  :'( ).

I was making a level and accidentally deleted the whole thing by pressing F4. Perhaps you should add some kind of tool tips feature or an optional warning message for this sort of thing. Or just make it so you can't load a save if there is no save yet.
The beta 1.11 is now available, and it makes the QuickLoad/QuickSave operations safer (confirmation message + can't load an empty slot: nice additions, thank you for your feedback on that).
Get the .zip as usual, and just replace your current jLevelBuilder.jar with the one in the new .zip (no need to overwrite the other files)
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 11, 2013, 07:17:49 PM
-This is important: when cloning (or copying) things, the original thing should be deselected. As it is, you always have to unselect everything manual so you can move the copied thing without moving the original thing. If there is a good reason for having it the way it currently is that's fine, but an off/on option would be nice.
1) OK. I have added the feature you asked for :)


Of course, you can also trigger "Clone -" (deselect the source entities after cloning) and "Clone +" (select the source entities after cloning) using their respective keyboard shortcut.

2) I've also added a visual feedback to know what are the currently occupied slots (quicksaves/quickloads).
Look at the upper-right corner of the picture below: first line shows the indexes of active "Selection" slots (slots #1, #2 and #4 contain a saved selection), while the second line shows the indexes of the active "Scene/Level" slots (slots #3 and #4 contain a saved level).


I will release the beta 1.12 tomorrow (I'll post a message when it's done).

PS: please think of "click + ALT" when you need to deselect a specific item, and think of "click + CTRL + ALT" when you want to deselect many entities in a single action (and "CTRL + d" deselects everything)
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 12, 2013, 09:58:53 PM
Having the zoom ability in normal screen mode would really be nice. It seems very restrictive as it is now.
It took me some time but I dit it!
- press "z" to zoom the main window (x1 => x2 => x4 => x8 => x1 => ...).
- press "SHIFT + z" to open a floating zoomed window while the main window stays in 1:1 size.
So both options are available, and everyone should find something that suits her/his needs.

Nevertheless, mouse is not supported in zoomed windows (because of scaling stuff, and I don't want to/won't bother with this...).
And since zoomed windows are best used for accurate moves, then it is perfectly ok to use keyboard's arrows to perform accurate moves (1px).
For selecting items in zoomed windows :
- 1) make your selection in the 1:1 sized view, before zooming
- 2) or use selection-quickloads
- 3) or click on items directly in the "level's items" list (in zoomed view, if you need to know about specific items' insertID, just perform "CTRL+a" then "CTRL+d").

Please report any bug you may find. Thanks.

beta 1.15's new features:
==================
- "clone-" and "clone+" options (deselect the source-item / select the source-item after cloning)
- "paste-" and "paste+" options (deselect the source-item / select the source-item after pasting)
- visual feedback of active quicksave slots (selection slots, and level slots) in level's upper-right corner
- can now zoom the main window

PS: you'll need to overwrite your current "keyconfig.ini" file with the newer one included in this new beta (because of new keyboard shortcuts!), so backup your current "keyconfig.ini" if you want to take a look at it, in order to report your own key-mappings in beta_1.15's keyconfig.ini


Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 14, 2013, 08:11:00 PM
beta 1.16 uploaded.

2 new features:
===========
- when nothing selected, use keyboard's arrows to adjust snapgrid's offsets on X and Y (1px by 1px)
- resize selected "Steel" item(s) by holding mouse's right-button (dimension ranges from 4x4 to 64x64, multiple of 4)
  > can resize many "Steel" items at once: selected Steel with highest insertID must be used as the reference
  > "Steel resizing" process allowed only when Steel items only are selected (can't resize other items)

download link: http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 14, 2013, 08:17:22 PM
No there's no bug :D, but I should have explained it somewhere (I really have to write this README!!! 8))
According to Lemmings's level-format, Objects' posX must be a multiple of 8:

oh wow, that's great. Never even thought of that  :) I thought objects must fit on this grid in the y position too? no? Well, in any case a very handy feature, indeed!

I'll get around to making this level once I'm done with the Lemmini community pack I'm working on.
and thanks very much for all the new features you added  :thumbsup:
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 14, 2013, 08:21:56 PM
An object's position is only limited on the X axis (multiple of 8 ). On the Y axis, it's free.
And a level's start position has also to be a multiple of 8 on X. And Steel's width & height should be multiples of 4.


EDIT:
next version will include a "Zoom Cancel" feature (instead of having to loop through x2, x4 and X8 zoom modes before going back to the normal view, you'll be able to directly reset the view to its 1:1 size using the "Zoom Cancel" keyboard shortcut).
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 15, 2013, 02:12:57 PM
The coordinates of the trigger area are rounded down to the nearest multiple of 4. This only affects the function though; the object (graphically) can be wherever you want, multiple of 4 or not.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 15, 2013, 10:28:22 PM
You mean Objects can be located on any X position?

According to http://www.camanis.net/lemmings/files/docs/lemmings_lvl_file_format.txt, stored X-position for Objects should be a multiple of 8.
And in Lemmix, if an Object's X position isn't aligned on a multiple of 8, then the "Validate Level" option displays this error: "Object 1: ObjectX is not a multiply of 8" (and all the official levels I have looked at have Objects's X-pos multiple of 8 ).

I'm ok for modifying the code, but I just want to apply a valid fix :D
Thanks for your help!
Title: Re: coding a level-editor for Lemmings (released)
Post by: Simon on October 15, 2013, 11:19:11 PM
The trigger area is managed by DOS L1 in squares of 4x4 pixels.

I'm not sure why there should be a more severe restriction for multiples of 8, or whether oddly placed (= not at multiple of 4) special objects work. I vaguely recall that such objects lose their physical effect and behave like decoration. Edit after ccexplore's next post: Behaving like decoration is what objects with too high a z-coordinate do, not what oddly placed objects do.

Others will know better though. :-)

-- Simon
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 15, 2013, 11:51:18 PM
in Lemmix, the object trigger areas (not the entire object itself as already stated) can only move in those increments in BOTH x an y directions. Idk whether this x or y argument is true or not but that is how Lemmix does it.
-if steel isn't aligned correctly; it gets moved automatically, when playing the level or the next time you open up the saved level. And it may (and often is) be moved in either x and/or Y directions.

I just tested to see a steel piece of 60x60 works so it must not be 8.
Title: Re: coding a level-editor for Lemmings (released)
Post by: ccexplore on October 16, 2013, 02:32:45 AM
Summarizing below for tl;dr. ;P:

- While it is flagged in the validator, since Lemmix doesn't actually make it compulsory, it's likely there are custom levels out there that already have made used of non-multiples of 8 in interactive object's x, making it somewhat necessary for other editors to support it.  From what I can tell and recall, objects with such x values still work well enough in both Lemmix and even the actual DOS programs (ie. DOS Lemmings, CustLemm, etc.) that chances are good that no one even realizes it's an "issue" for such levels.

- For steel areas, IIRC even the level file format itself cannot represent steel area x and y as anything other than multiples of 4, so there's nothing to fix or debate here.

- Level starting screen x position:  I'm not sure how exactly it will behave in DOS, but I know for sure that the game mechanics governing how lemmings move and interact in the level never uses that value, and I'm guessing Lemmix doesn't behave any differently whether it is multiple of 8 or not.  So like object x, you may have to support it by virtue of existing custom levels out there already having made use of non-kosher values here.

[Aside: as explained below, the multiple-of-8 for object x is really an artifact of how pixels are organized in memory in the display mode used by the DOS game, and it really only comes into play when displaying the object on the screen.  This also means that if you use one of the other graphics-mode variants of Lemmings like CGA/TGA, they may well support slightly different visual display alignments for object x.  (Granted, I have not tested this at all or disassemble the programming in much detail for the CGA/TGA EXEs, so this is just an educated guess.)]

==========

IIRC (could be inaccurate as it's been a while since I actually tested things out or looked at the code), in the actual (DOS) Lemmings game (including varieties such as CustLemm), if you set an interactive object's x position to a non-multiple of 8, the game will still position (visually) the object visually at the highest multiple of 8 not exceeding x (ie. nearest on the left of the true x).  This is really an artifact of how pixels are laid out in memory in the video display mode used by the game.  This is probably why rt documented the x position "must" be a multiple of 8.

But, calculations of trigger areas actually use the true x value but is subjected to the usual snapping to multiples of 4 as mentioned by Simon (ie. applied after adding the object's trigger position offset from groundXo.dat), and trigger area effects should still work.  In that respect it's basically no different than trigger area's y.  Calculations of "entrance locations" (namely, where exactly a lemming is initially placed in the level when it comes out of a particular entrance trapdoor object) uses the true x (and y) value as-is.

AFAIK Lemmix doesn't emulate the part where the visual display position is snapped to multiple of 8.  But I think it handles the rest just like the real game, and since the visual display doesn't affect gameplay (ie. results with respect to Lemmings and moves), levels using non-multiples of 8 for object's x position should still "work" as far as solutions and emulation accuracy go.  Still, given that the objects won't be displayed at the exact correct locations in CustLemm and so forth, it is not a bad idea to avoid using non-multiples of 8 for object x positions to avoid confounding users of CustLemm and similar, just like the official levels avoid.  Lemmix currently flags this as an error if you run object validation, but it is not compulsory and since both the level editor, the level file format and its game emulation all handle it well enough, I'd expect a number of existing custom levels to have made use of non-multiples of 8 for object x as a result.

Steel areas are handled as a different type of element than interactive objects.  IIRC the level file format itself only allows steel areas' x and y positions to be represented in multiples of 4, and inside the game it is handled through the 4x4 pixels square grid that Simon mentioned.  Thus they are effectively "moved" to multiples of 4 as soon as you play or save the level, like Mobius observed.  Ideally Lemmix really should never allow steel areas to be positioned out of the 4x4 grid alignment within the editor.

I don't remember how the starting screen position of the level behaves in the actual DOS game if you don't set it to a multiple of 8.  On the other hand, Lemmix probably (don't remember for sure off top of my head) doesn't enforce any constraints on that value and likely will handle it normally like multiples-of-8 values, so again you may have some custom levels that already have used non-multiples of 8 for starting screen position.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 16, 2013, 09:22:53 PM
Thank you for your explanations, guys (with a special mention for ccexplore and its very detailed post :thumbsup: )!

This debate actually made me think of a new feature that I've just finished coding: the "Auto-Snap Settings" window.
From this window, you'll be able to freely set auto-snapping values when moving items on the X and Y axises (using this option, no more on-screen snapgrid required)

You'll be able to set distinct snapping values for items according to their respective type (Terrain, Object, Steel, and Helper).
Plus you can also enable/disable your snapping settings by simply checking/unchecking the relevant checkboxes, near the snapping values.

The trigger area is managed by DOS L1 in squares of 4x4 pixels.
So, guys, if you're ok with that, the next version will set Object's auto-snapping to 4x4 by default (and 4x4 for Steel, too).

The new version isn't available yet: I'll post a message when it's done.

screenshot showing the new "Auto-Snap Settings" window:
Title: Re: coding a level-editor for Lemmings (released)
Post by: ccexplore on October 16, 2013, 10:11:56 PM
The trigger area is managed by DOS L1 in squares of 4x4 pixels.
So, guys, if you're ok with that, the next version will set Object's auto-snapping to 4x4 by default (and 4x4 for Steel, too).

For objects I'm leaning more against any auto-snapping on y by default (or equivalently, a snap value of 1), although given that auto-snapping can be disabled, maybe it's not a big deal and people can set it to whatever they prefer and save their preferences for all future uses.  As an example, for aesthetic and other various reasons, from time to time you may want to adjust an exit or trap object's y to not align to multiples of 4 despite the trigger area not following along with the adjustment, particularly to get better visual alignment/positioning with the surrounding terrain.  Plus, entrances do not use trigger areas (the "lemmings out" location is calculated by the game rather than based on trigger areas), and given that lemmings fall 3 pixels per frame, it is reasonable to want to adjust entrance y-positioning freely.

That said, one argument for a default object-y snap of 4 is that it might help newbies avoid the problem of their exits and objects not working because the trigger area isn't positioning correctly with the terrain due to the alignment.  On the other hand, the ability to see exactly where the trigger areas are located is a better solution anyway for that problem.

The auto-snapping for object's x, I would actually favor 8 if the default is to auto-snap, given that the multiple-of-8 alignment has the most consistent visual behaviors across various means of playing the level including Lemmix, CustLemm, etc.  But as long as user preferences can be saved for future sessions, I guess the defaults don't matter too much anyway.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 16, 2013, 10:25:38 PM
Ok, I'll make made these settings editable in the "config.ini" file, so anyone will be able to freely set her/his favorite starting config :D. I'll post a message when the new version is available.
Title: Re: coding a level-editor for Lemmings (released)
Post by: mobius on October 17, 2013, 12:07:35 AM
I've begun editing terrain pieces in Lemmini so aligning things will be easier for your editor. I've put up with those stupidly placed boundary boxes for long enough  :P

If I could code, I would change the the 4x4 object set-up...
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 17, 2013, 02:27:18 AM
The 4x4 object thing is a limitation in Lemmings itself. While you can save any X coordinate in the file, when Lemmings loads it, it rounds it to the nearest 8. The same is true (in multiples of 4) for the trigger area's Y coordinate, although that only affects function - *graphically*, it can be at any Y coordinate (and all editors will allow you to place it as such).

With steel areas, it's not even a matter of the engine but the level format itself. The coordinates and size are divided by 4 before being stored in the file. For example, if it's 16 pixels wide, the file will save the width as "4". (Actually, it subtracts one from the final value before saving it, so it'd save it as 3, but you get the idea.)

Lemmix could most likely be recoded quite easily to avert the X-coordinate rounding and trigger area rounding. Positioning/sizing steel areas more finely, on the other hand, would require a modified level format. One possible way this could be done while retaining backwards compatibility would take advantage of the way steel is stored - it's stored as 4 bytes, the first which denotes the X coordinate, the second denotes the Y (well, the X spills over into it a little bit as well), and the third denotes both the width and height. The fourth one is always zero. The 8 bits of this could then possibly be used to signify slight offsets from that 4x4 grid; you'd have two bits per value, which allows you to shift it by up to 3 pixels, thus resulting in perfectly covering the gaps between the main 4x4 positions. Once an editor that supports this is developed, coding Lemmix to take advantage of this shouldn't be too hard.

Of course, this does depend on exactly how Lemmix processes the trigger areas - it may have to be recoded to consider each individual pixel rather than just each 4x4 region. I believe the original game works on 4x4 regions, and since Lemmix aims to emulate it as closely as possible, it's quite plausible Lemmix also works this way. That being said, it's equally plausible that it in fact does consider each pixel individually, and simply rounds to the 4x4 areas when manipulating them (like when placing blockers) - especially since the editor supports Lemmini format, which I believe is not subject to these restrictions?

I did once have a look at recoding it to load a custom, tidier format (ie: no values spilling over into each other, no hardcoded limits on number of objects/steel/terrain, a specific flag for fake objects rather than relying on index) obviously with such restrictions removed eventually, but I can't quite work out exactly how it's load level code works. Delphi isn't exactly one of my strong points...
Title: Re: coding a level-editor for Lemmings (released)
Post by: ccexplore on October 17, 2013, 10:32:37 PM
Of course, this does depend on exactly how Lemmix processes the trigger areas - it may have to be recoded to consider each individual pixel rather than just each 4x4 region. I believe the original game works on 4x4 regions, and since Lemmix aims to emulate it as closely as possible, it's quite plausible Lemmix also works this way.  That being said, it's equally plausible that it in fact does consider each pixel individually, and simply rounds to the 4x4 areas when manipulating them (like when placing blockers) - especially since the editor supports Lemmini format, which I believe is not subject to these restrictions?

Don't get confused between Lemmix game emulation vs Lemmix level editor.  I don't know much about the editor's code but like you mentioned with supporting Lemmini format, the editor portion of the program should have little trouble handling non 4x4 alignments.

Game emulation is a somewhat different story.  As you said, accurate emulation of DOS game means trigger areas (which includes steel areas since they are represented the same way in the DOS game) are tracked in units of 4x4 regions rather than pixels.  In programming terms, think of representing the level area as a 2-dimensional array in a map-like fashion, except each array element is a 4x4 region rather than a pixel of the level area.  I refer to it as the "trigger map" when describing the DOS game mechanics to Erik.

The good news is that if I recall, the Lemmix programming has a specific function to read, and another to write, to this "trigger map" array.  Let's say those functions are named "ReadTriggerMap(x,y)" and "WriteTriggerMap(x,y)", with x and y being unaltered x and y values (the "rounding to multiples of 4" effectively always happens inside the functions rather than outside).  All the programming for the game mechanics, and I believe level loading as well (for the game emulation), call those functions to do their work rather than directly reading/writing the array.  So to change the game mechanics to track triggers by pixels, mostly you just need to modify ReadTriggerMap and WriteTriggerMap and change the dimensions of the trigger map array.
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 19, 2013, 06:51:40 AM
Awesome.

Do you have any idea exactly how Lemmix handles loading levels? I couldn't really make sense of it... like, I could see where it defines the variables that values are loaded into, but not how it determines whether they're shorts or bytes to load etc, or how to add/remove from it, etc... I do understand the relevant general concepts, I'm just not sure how to go about breaking down and tracking down the bits of Delphi code specifically, so if you (or anyone else) could give a quick outline on how it works and where the relevant functions are...
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 19, 2013, 11:57:29 AM
I have uploaded the new version (beta 1.20): 3 new features added.

- 1) now, you can use the "Auto-Snap Settings" window (http://www.lemmingsforums.com/index.php?topic=794.msg17576#msg17576) to force your items (Terrains, Objects, Steel, and Helpers) to snap on a multiple of "put-your-favorite-number-here" on X and Y axises.

By default, Objects auto-snap on 8/4, while Steel items snap on 4/4 (and no constraint for Terrains and Helpers).
You can freely edit this default config to meet your needs: just edit the "AutoSnap" values in the "config.ini" file (a value of "1" means "no_autosnap").

In the "Auto-Snap Settings" window, you'll also find checkboxes to enable/disable this auto-snap thing for each type of items.
And these checkboxes can be mapped to your own keyboard shortcuts if you want to quickly enter/quit "auto-snap" mode for Terrains, Objects, Steel and Helpers.
The "Auto-Snap Settings" window is available from "Options -> Auto-snap settings".

"And during a level-creation session, how can I know if "auto-snap" mode is activated for my Terrains, Objects, ... ?"
Well, simply refer to the little dots right to the "Selection" icons: first dot means "auto-snap activated on X", while second dot means "auto-snap activated on Y". Easy.



- 2) the following new feature still concerns snapping stuff.
Additionally to the snapgrid (press 's') and the "Auto-Snap Settings" window for more permanent uses (see above), I have also added keyboard shortcuts to go even faster for enabling/disabling useful snapping settings on X and Y!
Press 'x' or 'y' to immediately activate some convenient and GLOBAL (= for every item) snapping settings: available values are 2, 4, 5, 8, 10, 12, 16, 24, 32, and 64.
Pressing 'x/y' will allow you to loop through these built-in handy settings 8).
And when the job is done, simply press 'SHIFT+x/y' to cancel the snap mode in use.

These global snapping values only apply on items that don't have a specific "auto-snap" value activated (because of the "Auto-Snap Settings" window seen previously): therefore, this snapping feature actually concerns Terrains and Helpers only, by default.

In the upper-left corner of the GUI, you can see the currently activated global snap mode.
(in the screenshot below: snapX=8, while snapY=32)



- 3) the last new feature is the addition of "Paste selection vertically".
The "Paste selection "horizontally" option already existed and it was convenient, but the "Paste selection vertically" option was missing. Now it's fixed :D
Moreover, there were no button on the GUI for the "PSH" option: it was only available from the "CTRL+v" shortcut.
Now there are dedicated buttons for these options, and the "PSV" option is also available from the "CTRL+n" shortcut, by default.
Of course, all of these options can be freely assigned to your own keyboard shortcuts ("Options -> Key Configuration").

Clone-, H-, V- deselect source selection after operation, while Clone+ , H+, V+ keep source selection selected after operation.


Because of all of these changes, you will need the new "config.ini" and "keyconfig.ini" files (not just the executable .jar file).
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 21, 2013, 08:07:15 AM
I've begun editing terrain pieces in Lemmini so aligning things will be easier for your editor. I've put up with those stupidly placed boundary boxes for long enough  :P

If I could code, I would change the the 4x4 object set-up...

One thing to be aware of - it could mess up the placement if you set them as upside down.
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 22, 2013, 06:23:30 AM
The latest update seems to no longer be able to load a level I made in the first release. It misidentifies it as a special graphics level. I checked with a hex editor and the problem is not the level file itself.

Another level (which was made in LemEdit), it doesn't load all the steel areas correctly - some are missing.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 22, 2013, 07:37:52 AM
1) What is the expected/normal theme of the level instead of "special"? (dirt, fire, snow, ...)

2) About the Steel issue, maybe it's because of the new "Auto-Snap" feature which is set to 4x4 for Steel items by default?
Go to "Options > Auto-Snap Settings", and uncheck snap for Steel on X and Y.
Reload your level, and see if the problem still occurs.
This same problem may appear for Objects too, since they are auto-snapped on 8x4, by default.
- you can easily get rid of these default settings and set your owns, by editing the "config.ini" file, and set a value of "1" for auto-snap options.

PS: in a general manner, if you could provide me a link where I can download the levels that don't work (as möbius previously did), it would be fastest way for me to fix those bugs (otherwise it will be difficult). Thanks! :)
Title: Re: coding a level-editor for Lemmings (released)
Post by: Simon on October 22, 2013, 06:38:26 PM
1) What is the expected/normal theme of the level instead of "special"? (dirt, fire, snow, ...)

Dirt.

All four vgaspec levels have the large single terrain piece, plus objects from the dirt set, recolored according to each vgaspec's palette. Any normal tileset should work with vgaspec.

-- Simon
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 22, 2013, 07:58:44 PM
Thanks for the info, Simon!

The latest update seems to no longer be able to load a level I made in the first release. It misidentifies it as a special graphics level. I checked with a hex editor and the problem is not the level file itself.
I found the reason: it is due to a bug in the first release, and it is now fixed.
- if your hex editor allows you to edit data, then just change the value of the byte located at address 0x001A from whatever-it-is to "02".
IMPORTANT: Make a backup of your level file before doing this!!!
- or if you prefer, I can handle this, if you tell me where I can download your level.

Another level (which was made in LemEdit), it doesn't load all the steel areas correctly - some are missing.
This one is strange... Be sure to have your keyboard's "numlock" key activated, and press "9" (numpad) to display all the Steel items in the foreground. Could you still confirm you're missing some Steel pieces?
If there's really a bug here, I definitively have to try/load your level to find the problem.

By the way, thanks to your message, I realized that default "Auto-Snap" settings needed to be scaled x2 because the level-editor uses hi-res sprites and a "x2" scale as in Lemmini (therefore, in the next version, Steel will auto-snap to 8x8 and Objects will snap to 16x8). This way, you'll be sure to design Lemmings1-fully-compliant levels!


EDIT: just a little teaser.
Tomorrow, I'll upload a new version with a VERY, VERY, VERY, COOL/USEFUL/POWERFUL new feature I've just finished!
I'm sure you'll love it, he, he 8)
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 23, 2013, 08:17:01 AM
Thanks for the info, Simon!

The latest update seems to no longer be able to load a level I made in the first release. It misidentifies it as a special graphics level. I checked with a hex editor and the problem is not the level file itself.
I found the reason: it is due to a bug in the first release, and it is now fixed.
- if your hex editor allows you to edit data, then just change the value of the byte located at address 0x001A from whatever-it-is to "02".

0x001B actually. For some reason, 0x001A was set to 82, and 0x001B wasn't set. Anyway, I had thought I'd already tried this - but I'd been changing 1D, not 1B, which obviously isn't going to help my cause very much... xD

Quote
Another level (which was made in LemEdit), it doesn't load all the steel areas correctly - some are missing.
This one is strange... Be sure to have your keyboard's "numlock" key activated, and press "9" (numpad) to display all the Steel items in the foreground. Could you still confirm you're missing some Steel pieces?
If there's really a bug here, I definitively have to try/load your level to find the problem.

By the way, thanks to your message, I realized that default "Auto-Snap" settings needed to be scaled x2 because the level-editor uses hi-res sprites and a "x2" scale as in Lemmini (therefore, in the next version, Steel will auto-snap to 8x8 and Objects will snap to 16x8). This way, you'll be sure to design Lemmings1-fully-compliant levels!

I think I've identified the problem based on this and a closer look at my level. Namely - the size limit for a steel area in Lemmings is 64x64. However, your editor attempts to enforce this - but again, doesn't take into account it's own double resolution. I notice that steel areas that exceed 32x32 in size are cut down to that, but smaller ones remain perfectly fine.

1) What is the expected/normal theme of the level instead of "special"? (dirt, fire, snow, ...)

Dirt.

All four vgaspec levels have the large single terrain piece, plus objects from the dirt set, recolored according to each vgaspec's palette. Any normal tileset should work with vgaspec.

-- Simon

I think you misunderstood. We were talking about one of my levels being mistakenly identified by the editor as a special graphics level when it isn't one. The actual graphics set of the level in question is Marble.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 23, 2013, 08:57:03 AM
0x001B actually. For some reason, 0x001A was set to 82, and 0x001B wasn't set. Anyway, I had thought I'd already tried this - but I'd been changing 1D, not 1B, which obviously isn't going to help my cause very much... xD
Yes, 0x001B. So 0x001A should be set to 0, while 0x001B should be set to 2 (and 1D won't help, yes).
Tell me if it works.
If it doesn't work, then you could provide me with the level, I'll make a tmp quick'n dirty fix in the editor to re-save your level in a good way, and I'll upload the fixed level on my website. It won't be a problem.

I think I've identified the problem based on this and a closer look at my level. Namely - the size limit for a steel area in Lemmings is 64x64. However, your editor attempts to enforce this - but again, doesn't take into account it's own double resolution. I notice that steel areas that exceed 32x32 in size are cut down to that, but smaller ones remain perfectly fine.
You're absolutely right. Fixed! :D
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 23, 2013, 09:23:48 AM
0x001B actually. For some reason, 0x001A was set to 82, and 0x001B wasn't set. Anyway, I had thought I'd already tried this - but I'd been changing 1D, not 1B, which obviously isn't going to help my cause very much... xD
Yes, 0x001B. So 0x001A should be set to 0, while 0x001B should be set to 2 (and 1D won't help, yes).
Tell me if it works.
If it doesn't work, then you could provide me with the level, I'll make a tmp quick'n dirty fix in the editor to re-save your level in a good way, and I'll upload the fixed level on my website. It won't be a problem.

No worries, this worked perfectly once I was changing the right offset.

By the way guys - after another read through ccexplore's documenting of the format, I actually managed to make sense of it this time. So, within the next few days I should be able to whip up a tool to extract the terrain/object graphics from the DOS datafiles to use with the editor, thus giving better accuracy (as well as bringing graphic set 9 to Lemmini, if no one's done that already).
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 23, 2013, 03:20:33 PM
@namida: nice to hear some news about a new tool :D

New version uploaded (beta 1.30):
- fixed the bug with the bad size of Steel items found by namida (see above)
- 2 new features added (see below)

feature #1:
a new layer has arrived: the "Bounding Boxes" layer.
This layer allows you to easily see the actual dimension of any item (it may be useful for performing precise selections, or just to see the structure of a level :))

Remember, by default, layers are available by pressing "numpad 4" (backward move) and "numpad 6" (foreward move).
You can also switch back to the original layer by hitting "numpad 5".
Layers can be very useful for making specific selections!!! ... as well as using "numpad 7" and "numpad 8" (to loop through selection modes)!
note: using the numpad keys requires the "numlock" key to be activated, of course.

- showing the bounding-box layer on:



feature #2:
This one is a very nice addition!!! It's the "snap-to-item" option!!! 8)

You already knew about the "snapgrid" feature (press 's').
Now, if you press 's' when some items are selected, you'll activate the "snap-to-item" feature (instead of the classic snapgrid).
Basically, the "snap-to-item" option will draw some handy snap-lines around your selected item(s): left, top, right and bottom snap-lines.

- one item selected, press 's' to make the snap-lines appear around the item:


Press 's' once, and you'll have the vertical snap-lines only.
Press 's' a second time, and you'll have the horizontal snap-lines only.
Press 's' a third time, and you'll have vertical+horizontal snap-lines.
Press 's' again to exit this "snap" mode.

Snapping items has never been easier: it's really a child play to build well-aligned stuff!

- showing the 3 snap modes with a multiple selection:
Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 24, 2013, 05:09:53 AM
Okay, bit of a block in this tool... I don't understand the whole GIF format thing!
I've managed to make sense of the headers, color tables, etc, it's the image data itself I don't get.
Any chance anyone here can explain it or link me to a document that'll help? Otherwise, I'll have to resort to outputting in BMP, which (since it doesn't support transparency) leaves a bit of a cleanup job even if you use a tool to convert the format... or I could try and get my head around PNG if that's simpler (which since that does support transparency, it's just a matter of running them through a conversion tool after that).

I honestly don't give a crap about a compression algorithm - I'm fine to just have uncompressed data. Problem is, I don't even get exactly what I'm meant to do to store *that*.

If you need to use sample code to explain anything, then I can most easily make sense of BASIC or PHP, but I'm sure I'll manage to decode anything else as long as it's simple enough - however the problem isn't that I don't know how to write code to save to the format, but rather, I don't understand the format itself.


Or otherwise, LJLPM, what's the chance of you being able to add pallete-based BMP (16-color or 256-color) support to your app and just using color 0 as transparent (and if this can be done - can the same modification be made to Lemmini, if the author's still around or if the source is available)? (I would assume that you could just add a second entry for black to the pallete for, eg, the solid black in the crystal set). Or alternatively, loading the transparency mask from a second (monochrome) BMP file?


EDIT: Okay, I *think* I've got my head around it now. Once I'm finished translating it from Namida-mental-language to actual programming code, we'll see if I actually am understanding it or not...


EDIT: Well. It seems I'm at least somewhat on the right track. I can at least create an image file that all GIF-supporting programs will open rather than go "OMG BAD FILE *die*"... now, actually getting it to show anything is another matter... (Those that support transparency are displaying it as entirely transparent, while those that don't are displaying it as the first color in the pallete.)

EDIT: PROGRESS! I now have it outputting a GIF file with an image that, although not perfect, at least somewhat resembles the input. =D

EDIT: AND AT LAST, full-blown success, at least for a small image (which means everything's in one block and it doesn't even come close to having the code size change). I have written code to handle splitting the "compressed" data into 255-byte blocks (actually, as a precaution and since it won't really have any negative effects, it cuts off slightly sooner than 255), as well as to clear the table before the code size should increase (again, it errs a bit on the side of caution, and clears it slightly before it would be full). Attached is an image generated by my code. The actual image was hardcoded using DATA statements rather than loaded from any kind of file at this stage; as the focus was on the GIF-saving code.

EDIT: And a bit of further modification. Previously, the program was outputting 16-color images. Now, in practice, due to the duplication of custom 0 into default 7, Lemmings will only ever use 15 colors at a time, thus leaving one color free to use as transparent. However, especially if custom graphic sets get made at some point, there's no guarantee that all of them will make sure to use that one as transparent; we already have examples in the original game of black not being transparent (in the Crystal style) although it's quite possible that it defines an extra copy of black as a custom color (I haven't checked). So, I've made the program output 32-color images instead (with one of hte extra 16 being used as a transparent color, and the remainder of them being unused). Note that you can convert them to actual 16-color, 256-color or whatever else you want once extracted. I'm just working with what's convenient for me, to output a GIF that at least works.


EDIT AGAIN: Successfully decompresses all terrain pieces! It doesn't do objects yet, but that's coming. I've attached it, and included basic instructions.

Note that while it can extract the terrain from Graphic Set 9, since it doesn't yet extract the objects, there's not much point (except to look at for fun).

It'll automatically give them the right names "dirt" "marble" etc, though it doesn't organise them in folders. Set 9 will be labelled "xmas". When you run it, it'll create a text file where you can change the style names if you want to for any reason.

EDIT: It does the object graphics now. Doesn't yet do the trigger area graphic or the style properties INI file.


EDIT: Deleted, see seperate topic about extractor tool.
Title: Re: coding a level-editor for Lemmings (released)
Post by: LJLPM on October 25, 2013, 08:51:55 PM
new version will be released tomorrow (beta 1.40).

new features:
- enabled selections and entity moves in zoomed views 8)
- added "Lock Moves On X/Y" option

Good news, I took time to handle the scale thing when dealing with mouse inputs: so now you can perform the same operations in the original 1:1 view and in the zoomed views (x2, x4, x8). Nice addition!



The "Constraint moves on X or Y axis" feature, which is available by holding the SHIFT key when moving items, has now its own checkbox area (you can freely add your own keyboard shortcuts for these options by mapping the "LOCK_MOVES_ON_X/Y" entries in the "key-config" window).
(also notice that the "Borders on X/Y" option now stands on one line)



Title: Re: coding a level-editor for Lemmings (released)
Post by: namida on October 26, 2013, 10:57:00 AM
Updated my DOS extractor tool; it now does more or less everything you need in order to get DOS graphics into Lemmini, or of course, this level editor. I created a new seperate topic for it now that it's (mostly) complete.
Title: Re: jLevelBuilder
Post by: LJLPM on October 26, 2013, 11:44:40 AM
@namida: congrats for having released your tool! :D It's a nice addition to the tools dedicated to Lemmings!

---

new version uploaded (beta 1.40).
new features:
- enabled selections and entity moves in zoomed views 8)
- added "Lock Moves On X/Y" checkboxes
- added "mouse wheel + CTRL" to zoom in/zoom out the level
- added "mouse wheel + SHIFT" to scroll left/right in the level
- added "mouse wheel" to scroll up/down in the level
(virtually, you no longer have to use the GUI's scrollbars to scroll in the level, since you can directly do the same thing by using the mouse wheel(+SHIFT): it's handy)

download link: http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html
Title: Re: jLevelBuilder
Post by: LJLPM on October 27, 2013, 06:34:20 PM
Time to code the game itself, and I've started to create some new tiles for my game. Just sharing this screenshot :)
Title: Re: jLevelBuilder
Post by: mobius on October 28, 2013, 12:28:26 PM
what program do you use to create tiles?
I wouldn't mind contributing by drawing some graphics. The thing is, all I know to use is Photoshop or paint. I'm sure there are better programs out there specifically for making simple game graphics and templates and things but I don't know anything about them.

Also, if I make any graphics for this game would it be okay if they are shared freely? That is they could be used for other games like Lemmini and Lix.
Title: Re: jLevelBuilder
Post by: LJLPM on October 28, 2013, 06:08:18 PM
I use Cosmigo's Pro Motion: http://www.cosmigo.com/promotion/index.php
Fantastic program for creating 2D assets!

And thank you for your offer about creating tiles, but when I make games, I (like to) handle everything :D.

About the level-editor, I've added a new option "Magenta Background": when checked, the level's background color is magenta instead of black ; it may help to better distinguish some details in the level. (the new version hasn't been uploaded yet)
Title: Re: jLevelBuilder
Post by: LJLPM on October 29, 2013, 09:31:14 PM
I have added a new feature: "Contract/Expand Selection".

Use your mouse wheel to contract or expand selection horizontally or vertically: very smooth way to make some global adjustments when dealing with items' position. (new version hasn't been uploaded yet)

(from top to bottom)
- state #1: initial state
- state #2: vertical contraction
- state #3: horizontal contraction
- state #4: horizontal expansion
Title: Re: jLevelBuilder
Post by: LJLPM on November 01, 2013, 07:09:35 PM
new version uploaded (beta 1.50).
And it's a pretty big release that brings new options for designing levels.

new features:
- added "Magenta Background" option
- added "Enable/Disable Undo/Redo" option (when disabled, spares some CPU+RAM resources)
- added "Fill Area" brush
- added a lot of new actions for the mouse wheel
- fixed bugs here and there

1) You can find the "Magenta Background" checkbox in the "Options" menu
(also available by pressing "t").

2) You can find the "Enable/Disable Undo/Redo" checkbox in the "Edit" menu.
If "Undo/Redo" functions are disabled, then a "!" appears next to the selection counters.

... and about the little dots next to the counters? It's about auto-snapping ; see here:
http://www.lemmingsforums.com/index.php?topic=794.msg17602#msg17602

3) Here's a fresh feature I had in mind for some weeks:
The "Brush Mode: Fill Area" option.
The idea is to delimit an area with your mouse, and then fill this area with X instances of the selected entity.
This new option is available by pressing "b+SHIFT".
("b" and "b+CTRL" are already used for "Brush" and "Brush Random")
When in "Fill Area" mode, you can use your keyboard's arrows to adjust the density of clones in real-time.

With the new "Fill Area" option, creating this group of items is a 2-second job...


And it also works with multi-item-made entities !
- row #1: doing the job, and delimiting an area filled with 6 instances of a Favorite (notice the purple rectangle that delimits the area I'm making). At this instant of the process, Steel pieces use a default size: it's normal.
- row #2: the result (with erasers included + the actual size of the Steel pieces). Excellent!




4) About the "Expand/Contract" feature (see my previous message), I've improved it a lot!
Now, in the GUI's upper-right corner, you'll find a dedicated menu for all the actions available by using the mouse wheel (contract/expand selection, move selection, make stairs of items, etc...) 


Choose an action in the list, use the slider next to the list to set the amplitude of your changes (optionnal), and, then, use your mouse wheel to easily contract/expand or move your selection. You can also create stairs or curves using your selection's items.
(note: "Scroll_Level_XY" and "Move_Selection_XY" actions also require to hold the "SHIFT" key for moving horizontally)

for example, start with aligned items, and then use a "Ramp" mode to easily make curves
Title: Re: jLevelBuilder
Post by: LJLPM on November 02, 2013, 02:25:31 PM
Looking for things that are slowing the editor, I found the "entity-list real-time refresh" to be a winner.
Therefore, I've just added a "On/Off" switch for disabling this feature (switch to be found in the "Options" menu).
I'll keep on working on optimization stuff, and I'll upload beta 1.51 tomorrow or on monday.
(I'll post a message when it's done).

disabling the real-time refresh of the list spares CPU.
Title: Re: jLevelBuilder
Post by: namida on November 02, 2013, 10:49:12 PM
Perhaps add a manual refresh button, too?
Title: Re: jLevelBuilder
Post by: LJLPM on November 02, 2013, 11:13:24 PM
Perhaps add a manual refresh button, too?
By default, the list is enabled, and it's refreshed in real-time whenever a change is made in the level (it is CPU-consuming).
If you're experiencing slowdowns and want to speed up things, you'll be able to disable the display of this list.

I wanted this list to be easily displayable/maskable, so, additionally to the "Enable/Disable List" checkbox shown in my previous post, there's a keyboard shortcut for this action: it's the "+" button.

Simply press "+" to switch between "display <-> no_display" (and, hence, have access to actual data when the list is displayed).
Title: Re: jLevelBuilder
Post by: namida on November 03, 2013, 01:33:13 AM
Yeah, what I'm suggesting is an option to disable automatic refresh, but refresh it manually by clicking a button (and perhaps automatically refresh it once when focus is placed on it)?
Title: Re: jLevelBuilder
Post by: LJLPM on November 03, 2013, 08:57:57 AM
Ok, I see. Actually, I don't want to display false (= not refreshed) data in the list (and, then, have the user to manually refresh the values) because if the user can't rely on what's on screen, then it souldn't have to be displayed (proceeding this way will avoid mistakes, I think  :D)
Title: Re: jLevelBuilder
Post by: namida on November 03, 2013, 09:05:11 AM
Fair enough. I realise this is a somewhat tricky suggestion, but what about a refresh button, and automatically clearing the list (unless auto-refresh is on) as soon as any changes are made to the level other than by using the list?

If you're going to simply leave it as on/off as you're saying now... I would strongly suggest you at least put the option next to the window, rather than in the menu bar. It might get annoying having to go to the menu every time... (And yes, knowing you, I realise there's probably at least 7 different keyboard shortcuts for it, but knowing me, I probably won't even remember one of them.)
Title: Re: jLevelBuilder
Post by: LJLPM on November 03, 2013, 09:14:00 AM
Fair enough. I realise this is a somewhat tricky suggestion, but what about a refresh button, and automatically clearing the list (unless auto-refresh is on) as soon as any changes are made to the level other than by using the list?
"Keep It Simple, Stupid" :D : http://en.wikipedia.org/wiki/KISS_principle

If you're going to simply leave it as on/off as you're saying now... I would strongly suggest you at least put the option next to the window, rather than in the menu bar. It might get annoying having to go to the menu every time... (And yes, knowing you, I realise there's probably at least 7 different keyboard shortcuts for it, but knowing me, I probably won't even remember one of them.)
You're right. I'll do it. Done.
Title: Re: jLevelBuilder
Post by: LJLPM on November 05, 2013, 12:33:47 AM
Okay, I have succeeded in improving the overall speed of the editor!!!  :D
It's faster than ever (without having to disable the "auto-refresh" stuff! (*)), it's smooth, and  it's very, very, very cool to use!
I'll upload the new version tomorrow!

(*): but you'll still be able to do so if you want to gain more speed!
Title: Re: jLevelBuilder 1.61
Post by: LJLPM on November 06, 2013, 11:12:02 PM
one month after the initial release of jLevelBuilder, here comes the version "beta 1.61", and a lot of work have been done on it!

new features:
- improved overall speed of the editor when manipulating items
- added "Enable/Disable Real-Time Refresh of Entity List" option (when disabled, spares some CPU resources)
- added "Freeze" option
- added "Selection Mode", "Layer Mode", "Map Mode" options in top menubar
- added new options in "Command Menu"
- added the possibility to load custom tilesets when designing Lemmini's levels (.ini files)

1) the overall speed of the editor has been improved.
However if you still want to gain more speed, go to "Options > Enable/Disable Real-Time Refresh of Entity List", and uncheck the checkbox (or also uncheck the checkbox just below the actual list: it's the same thing).
And if you know your keyboard shortcuts, then you can really maximize the speed improvement by closing the GUI's bottom panel (keyboard shortcut = "NUMPAD_0", or press "SPACE > Edition Tools Panel") => doing this disables stuff that is auto-refreshed, and therefore it spares CPU resources.

2) If you ever experienced clicking and manipulating wrong items instead of the ones you actually wanted to move (hard-to-see eraser pieces, for example?), then you'll be pleased to welcome the new "Freeze" feature! :D
When you're done with designing some parts of your level because things are exactly where they have to be, then you'll be able to "freeze" the relevant entities in order to prevent them from any unwanted modifications (position or attributes)!
Frozen entities have a light-blue border and a "F" (for "Frozen") next to their ID.
In the "Options" menu, you also find a checkbox to fully fill frozen entities with a blue color (nice to instantly see where they're, as seen on the screenshot below).
- "Lock Selection" had the "l" shortcut.
- Since, freezing is kinda locking, then the keyboard shortcut for freezing also uses "l": it is "l+SHIFT" ("f" is for making Favorites)
- And "l+CTRL" is used to switch between the visual displays of frozen entities (fully filled or not)
When there's at least 1 frozen entity in your current selection, all the options that allow entity changes are disabled (except "Freeze/Unfreeze", of course)
One last thing, feel free to use the "All but Frozen" selection-mode to perform selections ignoring the frozen entities :D (see point #3, below)



3) Convenient options such as "(de)Selection Mode", "Layer Mode" and "Map Mode" that were previously available through keyboard shortcuts only (and hence might be a little tricky to find) have now their dedicated entry in the top menu bar.
Use these options to apply a filter on what's displayed on screen (Layer Mode) or on what you can select/deselect ((de)Selection Mode).
If you don't know these options, well, check'em out because they are very handy to perform precise/complicated selections!

- in the screenshot below, layer mode = "Terrains", so everything which isn't a Terrain isn't displayed (do you see the doors or the 1-way arrows around?)



4) The command menu (which appears by hitting "SPACE", or by clicking "Command Menu" in the "Edit" top menu) has gained new options.
You just have more options right under your mouse's cursor! (including the new "Freeze" option)



5) Create your custom graphics/tileset, place your tileset in the "resources/tilesets/Lemmings/" dir, and use it as any classic Lemmings's tileset for your Lemmini's levels (.ini files only).


I guess that's all for today!!!  ;P

As usual, you can download jLevelBuilder on my website:
http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html

... and why not try my reflexion game, too?
http://www.lesjeuxlesplusmieux.com/powablox.html
Title: Re: jLevelBuilder 1.61
Post by: namida on November 08, 2013, 08:16:33 AM
Come across a very annoying problem... it appears your editor restricts objects to having a Y coordinate divisible by 4. While the trigger areas will be rounded off to the nearest 4 pixels, the object positions themself are *NOT* restricted on the Y axis. This is extremely annoying when working with straight-edged tilesets (pillar, brick, etc), not such a problem when working with the rougher ones.

I guess you might have done this intentionally because of how the trigger areas snap to a 4x4 grid even though the objects themself can be at any Y coordinate (only their X is restricted - even then though, it's not a limitation of the file format, Lemmings just rounds the value off when it loads it); but if so, could we at least have an option to turn it off for the more-advanced level designers who know what they're doing? Otherwise, looks like it's back to LemEdit...
Title: Re: jLevelBuilder 1.61
Post by: LJLPM on November 08, 2013, 08:08:06 PM
Yes, these default autosnap values are set for common level-edition. You can freely modify them to suit your needs.

could we at least have an option to turn it off for the more-advanced level designers who know what they're doing?
It's already there (http://www.lemmingsforums.com/index.php?topic=794.msg17576#msg17576).
Just open the "Options" menu, and you should find the option you're looking for.

The editor allows you to freely set any auto-snapping value you want for the X and Y axises and for any type of items: Terrains, Objects, Steel, and even Helpers. And you can also configure your own keyboard shortcuts to instantly enable/disable your favorite auto-snap settings.
It's very versatile.

Advanced users can also freely edit the "config.ini" file to set a new default config for auto-snapping (for your needs, you may want to set "AUTOSNAP_OBJECTS_X=1" and "AUTOSNAP_OBJECTS_Y=1"). However, if you target DOS Lemmings (not Lemmini) for your levels, you may want to use autosnap values of "2" (instead of "1") because when you're saving a .lvl file, coordinates are divided by 2 (since the editor uses a x2 scale, as Lemmini does): doing this will maintain your item's coordinates right when loading and saving .lvl levels (-> no odd coordinates will be divided by 2 before being saved).

Last thing, when you select items whose auto-snapping mode is activated, you'll see some dots next to the relevant item counter (first dot = "autosnap activated on X", and second dot = "autosnap activated on Y").

- in the screenshot below, Terrains aren't auto-snapped, while Objects and Steel have auto-snap mode activated on X and Y axises
Title: Re: jLevelBuilder 1.61
Post by: namida on November 08, 2013, 11:33:40 PM
Where exactly do I find that setting?

EDIT: Ah, autosnapping will do the trick. Since it's double resolution... 16 x 2 for objects, 2 x 2 for terrain, and 8 x 8 for steel.

By the way - not a huge deal, it's most likely just a result of me being used to LemEdit, but I find the way your editor handles steel to be somewhat odd. Additionally, at least one of the default steel pieces has a horizontal size that's not a multiple of 4 (or rather, of 8, since double resolution) - 62, IIRC.
Title: Re: jLevelBuilder 1.61
Post by: LJLPM on November 09, 2013, 12:11:45 AM
Since it's double resolution... 16 x 2 for objects, 2 x 2 for terrain, and 8 x 8 for steel.
Yes, that's it.
If needed, you can also set GUI's "Increment on X" and "Increment on Y" to 2 (instead of "8" by default): doing this would allow you to move items 2px by 2px using keyboard's arrows (useful to perform precise moves!).

By the way - not a huge deal, it's most likely just a result of me being used to LemEdit, but I find the way your editor handles steel to be somewhat odd. Additionally, at least one of the default steel pieces has a horizontal size that's not a multiple of 4 (or rather, of 8, since double resolution) - 62, IIRC.
I didn't try LemEdit. I should give it a try.
And about Steel pieces, it's pretty much useless to have many actually, since I always resize them with mouse's right button, when I use them (= having a single "Steel piece" template would be enough I think).

Please let me know if you find any bug. Thanks!
Title: Re: jLevelBuilder 1.61
Post by: namida on November 09, 2013, 03:42:32 AM
LemEdit was the first Lemmings editor (at least, the first for the original games). The majority of the community consider it to have been made redundant by the Lemmix editor (and Lix?), but personally, while I freaking love the Lemmix players, I can't stand the editor - I find it to be very user-unfriendly. As for Lix, I'm not even entirely sure if it can edit the original game levels (I've heard stuff that implies it) - I've had no luck even getting Lix to run. For anything that's not Cheapo, LemEdit has been my editor of choice for as long as I've known it existed - which is almost as long as it *has* existed. jLevelBuilder is honestly the first editor that's given it a run for its money - at the present time, I'm switching back and forwards between both of them at different times.

I've even considered attempting to write a Windows "remake" of LemEdit, to be able to use the same basic interface without having to use DosBox and all that crap (as well as add features like VGASPEC support).
Title: Re: jLevelBuilder 1.61
Post by: LJLPM on November 09, 2013, 10:45:29 AM
The next version will include :
- a "Invert Selection" option
- a "Select Same Entities" option (you select entities in the level, then use this option to auto-select all instances of the same entities in the level)
- a "Select Random Entities" option
- a new entity-selection tool using the mouse wheel

And when using a collision mask (SHIFT + v), then :
- the "Select All", "Select None", "Select Random", and "Invert Selection" options will only handle entities which are within the mask's range.
- and you'll also be able to restrain entity selection on the entities that are fully displayed within the mask's range (= ignore partlially-displayed entities).

- the "Invert Selection" option is available in the "Edit" menu, or by using the "SHIFT + i" keyboard shortcut.
Title: Re: jLevelBuilder 1.61
Post by: namida on November 09, 2013, 11:18:20 AM
Here's the largest level I've made in a long time. It was created using both LemEdit and jLevelBuilder.
Title: Re: jLevelBuilder 1.61
Post by: LJLPM on November 09, 2013, 12:20:58 PM
Very nice work!

Just to know, what parts of the level were made using LemEdit?
(maybe I can improve some things that you still prefer do in LemEdit?)

By the way, I see parts of your level that use repeated tiles, I hope you used the "Fill Area" brush for that ;) (SHIFT + b, or also available in the "Command" menu by pressing SPACE).
Title: Re: jLevelBuilder 1.61
Post by: namida on November 09, 2013, 10:16:02 PM
It's not so much that I preferred to do things in one or the other, it's just I stopped workign in LemEdit then when I started again I loaded it up in jLB instead.

And nope, I haven't actually tried using the special features (except grid snapping and hiding/showing layers) yet.
Title: Re: jLevelBuilder 1.61
Post by: LJLPM on November 17, 2013, 08:52:25 PM
I found a bug in beta 1.61. I fixed it, and I'm running some tests which seem ok.
I'll upload beta 1.62 within the next hours (I'll keep you informed when it's done).

beta 1.62 will also come with new interesting features dedicated to selections, and explained here:
http://www.lemmingsforums.com/index.php?topic=794.msg17810#msg17810
Title: Re: jLevelBuilder 1.62
Post by: LJLPM on November 18, 2013, 07:45:57 PM
New version has been released: http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html
I recommend to update your version of jLevelBuilder to "beta 1.62" because of the bug fix.

contents of beta 1.62:
- fixed a severe bug with entity-selections/creations
- added "Invert Selection" option (press "SHIFT+i", or option to be found in the "Selection Mode" menu)
- added "Select Same Entities" option: you select entities in the level, then use this option to auto-select all instances of the same entities in the level (press "h", or option to be found in the "Selection Mode" menu)
- added "Select Random Entities" button next to the already-existing "Lazy"/"Shuffle" buttons (also available by pressing "*")
- added "Contract/Expand Random Selection" tool using the mouse wheel
- when using a collision-mask (SHIFT+v), entity-selection/deselection options now deal only with the entities which are within the mask's range. In the "Options" menu, you can choose to deal with fully-visible or partially-visible entities within the mask range. By default, you can select/deselect fully-visible entities only.

- use your mouse wheel to contract/expand your current selection with some randomly selected entities.
(see the new option in the dropdown list below)



- when using the collision-mask (SHIFT+v), entity-selection/deselection options only deal with entities within the mask's range.
(in the screenshot below, the "select partially-visible entities" option is enabled)

Title: Re: jLevelBuilder 1.62
Post by: grams88 on November 18, 2013, 08:41:36 PM
Hi everyone

I think it would be a good idea to make this thread a sticky one as I've noticed a lot of interesting information that level designers could use for future use.  :thumbsup:
Title: Re: jLevelBuilder 1.63
Post by: LJLPM on November 28, 2013, 08:38:19 PM
beta 1.63 is available:
- minimum value for Terrains' Y coordinate has been lowered.
(see this post for details: http://www.lemmingsforums.com/index.php?topic=870.msg18090#msg18090 )
Title: Re: jLevelBuilder 1.64
Post by: LJLPM on December 11, 2013, 01:50:58 PM
beta 1.64 is available:
- fixed Steel pieces' bad dimension in .lvl files (Steel's width & height missed 4 pixels).

Many thanks go to namida who reported the bug!  :D
Title: Re: jLevelBuilder 1.65
Post by: LJLPM on December 16, 2013, 01:48:19 PM
beta 1.65 is available:
- fixed a bug when selecting some specific items: it is recommended to update your version of jLevelBuilder.
Title: Re: jLevelBuilder 1.66
Post by: LJLPM on December 18, 2013, 06:15:28 PM
beta 1.66 is available:
- fixed a bug when opening some Lemmini levels (.ini files).

By the way, I keep on working on my Lemmings-like game: dev is going well, and I tried some visual tests with my own tileset. Here's a screenshot of one of my recent tests applied to an actual Lemmings level (wip / "cavern" tileset).


Title: Re: jLevelBuilder 1.66
Post by: mobius on December 18, 2013, 06:54:00 PM
hey, that's lookin' cool  8) Despite the the graphics being sort of simplistic I like the look.

I am curious about your game and anxious to see how it will play. keep us updated  :D
Title: Re: jLevelBuilder 1.66
Post by: namida on December 18, 2013, 11:04:51 PM
Looks good!
Title: Re: jLevelBuilder 1.66
Post by: EricLang on December 20, 2013, 03:42:24 PM
That last tileset looks great indeed! I want to have it :)
Title: Re: jLevelBuilder 1.66
Post by: LJLPM on December 22, 2013, 06:16:16 PM
Thanks for your positive feedbacks. Here's a new screenshot showing some new tiles (my pillars aren't as polished as the Lemmings' ones, I know :D ... I hope to improve them!)

Title: Re: jLevelBuilder 1.66
Post by: namida on December 22, 2013, 09:55:44 PM
Looking good! Just remember that for a game of this kind, the ways the mechanics work will probably be more important than the graphics. While I'm not saying "don't worry about graphics", make sure you don't neglect the mechanics in the process. ;)
Title: Re: jLevelBuilder 1.66
Post by: LJLPM on December 22, 2013, 10:57:48 PM
Yes. Actually, after having done some code for the game recently (and first results are pretty cool), I just wanted to take some time for making some graphics, for fun :). By the end of this project, I hope to improve the graphics by practising and drawing gfx regularly.
Title: Re: jLevelBuilder 1.67
Post by: LJLPM on December 27, 2013, 05:23:58 PM
beta 1.67 is available. What's new?
- added "Horizontal Mirror -" and "Vertical Mirror -" features
- added "Replace Terrains" feature
- improved the "Export level's structure as text" feature (option to be found in the "File" menu)
- fixed minor bugs

As usual, you can get the new version of jLevelBuilder on my website:
http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html

note: because of the new user actions that were added, you'll have to overwrite your previous "keyconfig.ini" file (if you didn't change jLB's original keyboard shortcuts, then you can ignore this sentence ; otherwise, make a backup of your modified file in order to easily set again your custom keyboard shortcuts).

- "Horizontal Mirror -" and "Vertical Mirror -"
as with "CloneH +/-" and "CloneV +/-", you can now choose between "keep selected" or "deselect" the source selection of your mirroring process (before 1.67, your source selection was always kept selected => MirrorH+ and MirrorV+). Useful addition.



- "Replace Terrains"
This one is really nice ; it allows you to easily switch your level's Terrains.

How does it work?
- step #1) select one or many Terrain(s) in your level.
In this example, I selected 4 Terrains whose tileset's IDs are "38", for all of them (when using the "Replace Terrains" feature on a multiple selection, it's not required that the Terrains share the same ID)


- step #2) set a new Terrain ID, then click "Replace" (or hit "r", if it's the GUI's graphic part that has the focus), and voilà :D
In this example, I chose to replace 4 selected Terrains with other Terrain tiles whose tileset's IDs are "31".


Enjoy!  ;)
Title: Re: jLevelBuilder 1.67
Post by: LJLPM on December 30, 2013, 06:28:33 PM
... working on new tilesets  :)

Title: Re: jLevelBuilder 1.67
Post by: RubiX on December 30, 2013, 09:57:37 PM
Just wanted to say congrats for making this very powerful looking editor.
Though I still really love working with lix and the lix editor, I never got into lemmix/lemmini as lemmings editors but your one looks worthy of learning, so i'll likely give it a try at somepoint.

Either way, I am looking forward to your lemmings game remake :)

------
Regarding your lemmings game :
If its possible to make a way to pack your own levels with your own level codes that would be fantastic  (Just like the way you advance in the real lemmings games.  I like to be forced to complete levels without a chance of skipping ahead)   :thumbsup:
Title: Re: jLevelBuilder 1.67
Post by: LJLPM on December 31, 2013, 11:03:01 AM
I code the game as a free-time project, and I didn't have much free time for it recently... :(
And since the dev is too far from being finished, I don't want to/can't tell much about it:
- I don't want to disapoint anyone if I don't succeed in finishing this project
- I prefer to have something more "real" before showing actual stuff (avoid the "vaporware" effect, you know :D)
To sum it up: we're in the early days of the dev process, and I'm still in a "I hope to finish this project" phase... ;)
... but I really like the first results, and I work on it when it's possible.

That being said, what I can tell you is that I'm making a "2-player versus" game (so there will be no password: all levels will be freely available... or some to be unlocked, maybe...). No single-player mode for this game, but I have ideas for a single-player game, so maybe later...

Of course, feel free to submit ideas you would find fun/interesting when playing a "2-player versus" Lemmings clone :D (local versus on the same screen, NOT via network!).


* dev status:
=========
- game loads levels in Lemmini's .ini format (allows the use of new custom tilesets: cavern, candy, forest, ...)
- vertical split-screen is working (one screen above the other)
- Lemmings perform random actions (players' actions not added yet, except for level scrolling)
Title: Re: jLevelBuilder 1.67
Post by: RubiX on December 31, 2013, 06:53:10 PM
Ah cool cool.  I just assumed it was a singleplayer lemmings clone you were making.  2player split screen is the routes of lemmings which is great, had hours of good times with my brother on the amiga with that.  Good luck with making it!
Title: Re: jLevelBuilder 1.67
Post by: LJLPM on January 04, 2014, 10:41:41 AM
Recently, I've added a lot of tiles inspired by old-school shoot'em up games in the "videogame" tileset.
I think I'll make a dedicated "sci-fi" tileset for these tiles :)

Title: Re: jLevelBuilder 1.67
Post by: Proxima on January 05, 2014, 12:25:18 AM
Stunning! Any chance of making your tilesets (but especially this "videogame" tileset) available for Lix?
Title: Re: jLevelBuilder 1.67
Post by: LJLPM on January 05, 2014, 06:19:18 PM
Yes, all the tilesets I will create for my game will be freely available (therefore you'll be able to use them in Lix).
... but neither the game nor the tilesets are finished yet... :(
Title: Re: jLevelBuilder 1.68
Post by: LJLPM on January 07, 2014, 08:43:08 PM
beta 1.68 is available (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html). What's new?
- added "Fast Selection" feature
- added "Swap Entities' Positions" feature

- "Fast Selection"
in the "Options" menu, there's a new entry: "Fast selection when using the rectangular selection". Enable this option to select your level's items as soon as the selection rectangle you're drawing hits an item: it's useful for making mass selections (by default, this option is not enabled, allowing you to make narrower and more precise selections).

- "Swap Entities' Positions"
Next to the two already-existing "Swap Entities' Insert Order" and "Reindex" buttons, there's now a new handy button: "Swap Entities' Positions". Simply select 2 entities, and then click the "Swap Pos" button to swap the location of the 2 selected items (please remember that when swapping Objects or Steel pieces, you may have some Auto-Snap settings enabled! /// Options => Auto-snap settings).

the red arrows show the 2 selected items (a pillar and a brick), and the orange arrow shows the result after having clicked on the "Swap Pos" button

Title: Re: jLevelBuilder 1.68
Post by: Proxima on January 07, 2014, 11:34:48 PM
By the way, since you're interested in 2-player lemmings, you really should read this topic, which contains some very thoughtful analysis of multiplayer by geoo and Clam.
Title: Re: jLevelBuilder 1.68
Post by: LJLPM on January 08, 2014, 07:07:56 PM
I wasn't aware of this topic so thanks for the link! :D

--------------------

working on my "Pillar" tileset.


Another shot with this tileset
Title: Re: jLevelBuilder 1.69
Post by: LJLPM on January 12, 2014, 02:09:10 PM
beta 1.69 is available (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html). What's new?
- bug fix: frozen items can no longer be deleted
- bug fix: "Select Same" feature (keyboard shortcut is "H") no longer ignores entity types (Terrains, Objects, Steel, Helpers)
Title: Re: jLevelBuilder 1.70
Post by: LJLPM on March 07, 2014, 11:07:35 AM
beta 1.70 is available (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html). What's new?
- added more snaplines in "snap-to-item" mode (to enter this mode, press 's' when an item is selected /// and for a classic snapgrid, just press 's' with no item selected)
- in "snap-to-item" mode, when you're dragging your selected item(s), press 'CTRL' to use item(s)'s bottom-right corner as snapping point (instead of the top-left corner, by default). And, when snapping, please remember that some auto-snap settings may interfere (in this case, go to "Options > Auto-snap settings", and fix your values).
Title: Re: jLevelBuilder 1.70
Post by: mobius on March 07, 2014, 03:24:31 PM
somehow I missed some of these posts. The graphics are looking very cool!  :thumbsup:
I plan to download the latest version of the editor and tinker around again. I'd like to make some unique and pretty looking levels with it.  :)

LJLPM: I seem to remember having this issue before but I could be wrong; your webpage is blocked by my antivirus.

-------
tiles move around a lot better now  :thumbsup: it lagged a lot previously.
I noticed something odd though with the editor, when editing a crystal level. Sorry if this was already brought up, but anything that's colored black seems to be transparent over objects. This only happens with Objects, if the terrain is over top.

oh one important thing: I want to clear something up that maybe doesn't need clearing up but I said something wrong earlier; Lemmini does NOT require ANything to be lined up to the DOS grid. I tested this pretty thoroughly, it's true. Maybe this was never implied, I'm not too good at understanding things. In any case; you don't have to enable any kind of feature to fix things to any kind of special grid, I felt like such a retard when I figured this out.
I'm still experiencing the bug where I cannot move objects to the right [at all]. And the whole aligned to grid thing is now pointless and a tad bothersome. I'm sorry if I'm the one who influenced you to add this.
Title: Re: jLevelBuilder 1.70
Post by: LJLPM on March 07, 2014, 09:00:49 PM
- About the black/transparent color: in the editor, the level's background color is set to full black (0x000000) by default, and Terrains' and Objects' black pixels are not drawn (= bg color). The transparency issue you found occurs because Crystal tileset's sprites use black.
Anyway, jLevelBuilder's transparent color is freely editable in the "config.ini" file => see the "LEVEL_BACKGROUND_COLOR" parameter (it sets a RGB value in hexadecimal format): to fix the problem, simply replace LEVEL_BACKGROUND_COLOR's 000000 by 000001 (this subtle change will do the trick).

- Auto-snap settings for Terrains, Objects, and Steel items are freely editable within the editor: go to "Options > Auto-snap settings".
Moreover, in the "config.ini" file, you can freely edit the auto-snap settings' default values (see the AUTOSNAP_TERRAINS_X/Y, AUTOSNAP_OBJECTS_X/Y, ... parameters). Setting a value of "0" means no auto-snap on the specified axis: maybe it's what you're looking for.

*** wip screenshot ***
Title: Re: jLevelBuilder 1.75
Post by: LJLPM on December 09, 2014, 05:43:28 PM
new version of jLevelBuilder is out (v1.75)

For the late comers:
=============
- jLevelBuilder is a free Java-coded level-editor that is suitable for designing Lemmings1 levels for Lemmini (jLB fully supports .ini and .lvl files). Of course, levels made in jLB can be loaded in (Neo)Lemmix Editor and (Super)Lemmini (initially -may 2013-, I created jLevelBuilder for designing levels for the Lemmings-like game I'm coding for Android)
- installation/how to start with jLevelBuilder? Well, just put your tilset's graphics in jLB's /resources/tilesets/Lemmings/tileset_name folders, then click on the executable jLevelBuilder.jar file, and you're ready to create levels (jLB works on PC/Mac/Linux computers, assuming you have Java installed on your computer of course).


What's new:
=============
- before v1.75, some actions, some features where only doable using keyboard shortcuts. But for this new version, I took time to properly add buttons, options and menus for all the things that were "hidden" behind keyboard shortcuts, and therefore you may not be aware of (please remember that all actions and keyboard shortcuts are always listed on jLB's official webpage (see download link, below).
You'll probably discover things that were here but you didn't know. I mainly think about drawing modes such as "(Random)Brush Mode", "Fill-Area Brush", "Straight-Path Mode", "Hand-Drawn Path Mode", and "Bezier Curves Mode". I also think about the SnapGrid and the Guide Lines features. And, of course, there are the convenient "QuickSave Selection" and "QuickLoad Selection" options, too! Just try these options (as well as "cloning", "locking", "freezing", etc... selections) ; they can really ease your task when designing levels: it's all about efficiency and doing things fast!
- I've also added an "Auto-Steel" feature: in your level, simply click on the item(s) you want to "Auto-Steel", and, then, all the similar items you'll later add to your level will automatically include a Steel piece based on the reference item's dimensions.
- and, of course, there are some bug fixes in this release.

Last words about going fast in jLevelBuilder: there are a lot of keyboard shortcuts indeed (you can redefine them in the "Options/KeyConfig" menu), but there is also the convenient "Command Menu" that you can call by hitting SPACE ; it's a handy shortcut for obtaining a quick access to the editor's main options!

JLevelBuilder is 1590px-wide. If it's too wide for your screen, just edit the config.ini file, and set your favorite value for the "GUI_WIDTH=" entry (it's the 1st editable value in the config file).

download jLevelBuilder 1.75: http://lesjeuxlesplusmieux.com/jlevelbuilder.html (http://lesjeuxlesplusmieux.com/jlevelbuilder.html)

=> and in case you missed it, you can also freely download JLevelBrowser: http://www.lemmingsforums.com/index.php?topic=1060.0 (http://www.lemmingsforums.com/index.php?topic=1060.0)
Title: Re: jLevelBuilder 1.76
Post by: LJLPM on January 02, 2015, 04:45:27 PM
I found a bug in jLB when dealing with .lvl files: I've just uploaded v1.76 which fixes the bug.
download jLevelBuilder 1.76: http://lesjeuxlesplusmieux.com/jlevelbuilder.html

By the way, just to have a rough idea about the number of people that are actually interested in jLevelBuilder, I set a poll in this topic, so feel free to answer (it seems that I'm the only one who uses it? ;P). And if you find bug(s) in jLB, feel free to report them, of course!

(http://s7.postimg.org/cplifv5pn/j_Level_Builder001_small.png)
Title: Re: jLevelBuilder 1.76
Post by: mobius on January 02, 2015, 10:40:14 PM
I tried it and, while it definitely has some great uses, I found it so radically different from Lemmix that I know it would take me quite a while to figure it out and get fast with it. I might try it again. The randomize features are something I could find very useful.

What I'd really like is a feature that makes inserting terrain pieces onto the map quicker/easier. In Lemmix, its slightly tedious; you must press insert then open the window and search through all the list to change it to the one you want. Or copy/paste a whole lot.
I don't remember how it works in Jbuilder. IT'd be nice if you could drag and drop items from the panel on the left (in your latest screenshot)
Title: Re: jLevelBuilder 1.76
Post by: LJLPM on January 02, 2015, 10:51:34 PM
What I'd really like is a feature that makes inserting terrain pieces onto the map quicker/easier.
It's already here.

In Lemmix, its slightly tedious; you must press insert then open the window and search through all the list to change it to the one you want. Or copy/paste a whole lot.
I don't remember how it works in Jbuilder. IT'd be nice if you could drag and drop items from the panel on the left (in your latest screenshot)
In jLevelBuilder, inserting Terrains or Objects in a level is very easy!
It's not a "drag'n drop" (I might see this in a future version), but it's just a "double-click" on the piece.

The panel on the right, is the optional floating window that you can activate from jLB's "Options" menu.

You can double-click on any Terrain, Object, or Steel piece from:
- 1) the horizontal thumbnail list
- or 2) from the vertical 1:1-sized item list
- or 3) from the optional floating window (if open)
(or, if you prefer, instead of "double-clicking", you could press the keyboard's "INSERT" key)

And, Copy/Paste actions are also available: just press "CTRL-V" on any selected item(s) in the level.
("CTRL-C" is for "cloning" the selected piece(s))
Title: Re: jLevelBuilder 1.76
Post by: Proxima on January 02, 2015, 10:56:11 PM
The poll is missing an option for "Haven't tried it yet".

The last time I made a Lemmings level, we were still putting together the  :lix:  community set so of course I used  :lix:  . Since then, my level-design has been taken up by the release of the new DROD game and a Repton project. I hope I will have time to come back to Lemmings at some time in the future, and then I would love to try your builder out.
Title: Re: jLevelBuilder 1.76
Post by: LJLPM on January 02, 2015, 11:02:52 PM
The poll is missing an option for "Haven't tried it yet".

Indeed! You're right! I've added the missing option :)
Title: Re: jLevelBuilder 1.76
Post by: namida on January 03, 2015, 12:03:18 AM
You added support for SuperLemmini features?
Title: Re: jLevelBuilder 1.76
Post by: LJLPM on January 03, 2015, 11:20:12 AM
No, no, no. jLevelBuilder sticks (and will stick) to original Lemmings1's mechanics* (reason is: currently, my main dev-project is the Lemmings-clone game I'm coding for Android, and, because of time issues, I just can't dissipate my efforts on multiple projects).
SuperLemmini's extra features are not supported (I would advise people to use Neo Lemmix Editor for these new features), but for players who want to design good-old Lemmings1 levels, then they can try jLevelBuilder, as created levels are fully playable in (Super)Lemmini, and this is what I meant :)
I've edited my topics.

*: just talking about Lemmings1 level design here (=> jLevelBuilder's normal edition mode), because my Android game supports newer game mechanics (=> jLevelBuilder's advanced edition mode, but I haven't detailed advanced mode's features yet... I'll do it when the Android game is released.)
Title: Re: jLevelBuilder 1.76
Post by: BradLee on February 13, 2015, 11:52:48 PM
Can the Lemmings be replaced with other animals/characters?
It might be fun to see different critters in place of the Lemmings!
Or even to use console game characters lol

Maybe if not in the free jLB, then perhaps in an advanced/paid editor.
Title: Re: jLevelBuilder 1.76
Post by: namida on February 14, 2015, 04:23:56 AM
Can the Lemmings be replaced with other animals/characters?
It might be fun to see different critters in place of the Lemmings!
Or even to use console game characters lol

Maybe if not in the free jLB, then perhaps in an advanced/paid editor.

jLevelBuilder is only a level editor. I'm not sure how his own game or Lemmini / SuperLemmini handle sprites. If you're using a Lemmix-based engine (Lemmix or NeoLemmix) or the original DOS games, you can customize the sprites by editing the MAIN.DAT file (using a tool called LemMain (http://www.neolemmix.com/old/lemmain.html)), though currently there's some heavy limitations on the palette usable for this. I'm considering reducing these limitations in a future NeoLemmix update, just haven't got around to it yet.

EDIT: I can confirm, this will be supported in the next update. :)
Title: Re: jLevelBuilder 1.76
Post by: BradLee on February 14, 2015, 04:44:18 AM
If you're using a Lemmix-based engine (Lemmix or NeoLemmix) or the original DOS games, you can customize the sprites by editing the MAIN.DAT file (using a tool called LemMain (http://www.neolemmix.com/old/lemmain.html)), though currently there's some heavy limitations on the palette usable for this. I'm considering reducing these limitations in a future NeoLemmix update, just haven't got around to it yet.

That would be cool.  :thumbsup:
Title: Re: jLevelBuilder 1.76
Post by: LJLPM on February 14, 2015, 10:24:49 AM
Yes, jLevelBuilder is a level-editor ; it's not a game-engine, and thus it doesn't handle the Lemmings.

As for the Android game:
- because of obvious copyright issues, I have to redraw all the graphic assets you know from Lemmings (I already started to create new tilesets). So, yes, for the Lemmings, I'll create alternative tiny sprites.
- moreover, yes, I could code/enable the use of external custom sprites, too (the game already allows level-designers to import and share their own external custom tilesets), but I'm not sure many people would actually use this feature (people would have to redraw the complete sprite-sheet of Lemmings' actions!) + it takes time to code/add this behaviour (and, from now on, I switched to the graphic part of the game creation), so it's unlikely I'll add this option.
Title: Re: jLevelBuilder 1.76
Post by: namida on February 14, 2015, 10:44:53 AM
I would argue that it doesn't hurt to have the option there. More so than completely custom sprites, people may see recoloring the sprites for certain styles as beneficial, and that isn't a huge effort by comparison.
Title: Re: jLevelBuilder 1.76
Post by: BradLee on February 14, 2015, 10:52:46 AM
That's a shame.

I think that people would really go-to-town with this ability and it would spawn a lot of new interest. Creating their own custom "theme packs" and whatnot.

So maybe even if you don't do this for your normal level designer, you could consider this for an "advanced designers/developers edition."

I know it's not your primary goal, but it could also help to compensate you for your own time/trouble spent working on the project.

Anyway I understand that you're too bust to include any such requests atm.

I would argue that it doesn't hurt to have the option there. More so than completely custom sprites, people may see recoloring the sprites for certain styles as beneficial, and that isn't a huge effort by comparison.

Yes, that's more so what I was referring to. Not having it open-ended, but keeping them the same original tile size.
Title: Re: jLevelBuilder 1.76
Post by: LJLPM on February 14, 2015, 09:27:04 PM
In the v1.0, it's pretty sure, the "load custom sprites" feature won't be there (because, atm, I focus on the game's core features). Then, when the game is released, I'll probably have to update/tweak/fix things according to the players' feedbacks. After that, I may update the game with new features, so I've added your inputs to my TODO list.
Title: Re: jLevelBuilder 1.76
Post by: BradLee on February 14, 2015, 11:56:48 PM
In the v1.0, it's pretty sure, the "load custom sprites" feature won't be there (because, atm, I focus on the game's core features). Then, when the game is released, I'll probably have to update/tweak/fix things according to the players' feedbacks. After that, I may update the game with new features, so I've added your inputs to my TODO list.

Ok, thanks.
Title: Re: jLevelBuilder 1.76
Post by: WillLem on July 21, 2016, 04:28:38 AM
Hi,

Once a level has been created in this builder, how can it be played?

I use Windows Lemmings. I tried copying my .lvl file into the WINLEMM/LEVELS folder, but it isn't appearing in the standard level selection list.

Advice very welcome, and thanks for creating this editor, it's very user-friendly.

Cheers! :)
Title: Re: jLevelBuilder 1.76
Post by: namida on July 21, 2016, 07:31:49 AM
WinLemm is notoriously annoying to get custom levels working with. It's not impossible if you're really determined (if that's the case, let us know again and we'll help you with the process, but be aware it's quite annoying), but it'll be much easier to use one of the unofficial Lemmings clones to get this working. I would recommend using NeoLemmix, but you may want to try them all out and see what your preference is (but from what I've seen, most people who initially prefer something other than NeoLemmix or Lix, eventually gravitate towards one of those two).

The viable engines (and whether you'd want to save your level as a LVL or INI file for them) are:

Lemmix (LVL): This one is quite nasty to set up by today's standards, but the advantage is it mimics the gameplay of the DOS version accurately, even including the bugs. If you do want to use it, let us know and we'll give more info, I don't want to type out a setting up tutorial unless it's the one you want to use.

Lemmini (INI): This is the one that jLevelBuilder is primarily intended for editing (other than LJLPM's own game which hasn't yet been released). Not too complicated, but is considered quite out-of-date. I think it has a "Load single level" feature somewhere.

NeoLemmix (http://www.lemmingsforums.net/index.php?topic=2529.0) (LVL): NeoLemmix is the most popular these days. To play your level, all you have to do is run NeoLemmix, you'll get a popup box asking you to select a level or level pack to play; find your LVL file and select it, and there you go.

SuperLemmini (http://www.lemmingsforums.net/index.php?topic=1793.0) (INI): This is similar to Lemmini, but I know for sure SuperLemmini has a "load single level" option.

Lix (http://www.lemmingsforums.net/index.php?topic=2815.0) (LVL): Lix is the second most popular (after NeoLemmix) these days, it's worth noting that these days it and NeoLemmix probably have more in common than they have that sets them apart, with the engine of choice coming more down to preference and content than anything else - in a way, you can think of them as the PS4 and Xbox One of Lemmings engines, including that many people just use both. I don't know anything about how to get a LVL file to load in Lix, apart from that it's possible (native Lix levels use a custom format that jLevelBuilder does not support); I'm sure someone else will come along soon enough and fill in this gap, though. In general, the author of Lix discourages use of official Lemmings graphics for making levels (by comparison, NeoLemmix and SuperLemmini are fine with it), so if Lix is the one of most interest to you, you might want to consider working with the made-for-Lix graphics instead.

It might also be worth looking into moving to one of the more popular choices (NeoLemmix or Lix, or possibly even SuperLemmini) and getting the most appropriate editor for them, but we'll leave that more in-depth discussion for another time - if you want help with getting into editing for any of these other engines, just start a topic on the respective engine's board and we'll be only too happy to help you. :) For now, let me know if this info helps get you playing your level, and if not, feel free to ask for further help. :)
Title: Re: jLevelBuilder 1.76
Post by: LJLPM on July 21, 2016, 09:19:35 PM
namida sumed it up very well.

I can only add that the currently-available version (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html) is not final, and I keep on working on jLevelBuilder, since the release of v1.76 -a year and half ago.
Now, we're approaching v1.80, and I update jLB regularly to match my needs for designing levels for the Android Lemmings-like game (many of the new features are also compliant with classic Lemmings' .lvl and .ini levels).

...by the way, something that, maybe, you don't know: you can press "SPACE" to show/hide a menu with some convenient action shortcuts.
Title: Re: jLevelBuilder 1.76
Post by: WillLem on May 17, 2021, 06:37:02 PM
@LJLPM

I'm getting the following error message when attempting to load a .lvl file in the editor:

(https://i.imgur.com/MRQg83h.png?1)

I have followed all of the instructions in this post (https://www.lemmingsforums.net/index.php?topic=1609.msg41707#msg41707), and all of the tilesets are present. I can't see any other reason why this error would be coming up.



EDIT: Lana has sent me her copy, complete with resources, which works just fine (thanks Lana :lemcat:). I copied the resources across from SuperLemmini as opposed to Lemmini, which I think is why it wasn't working.

In case anyone else encounters this, it's very likely that the resources must be Lemmini-extracted in order to be usable by jLevelBuilder. Hopefully, the program may be updated at some point because it seems to be a decent editor for creating and managing .ini and legacy format (.lvl) levels.
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on June 09, 2021, 01:10:14 PM
Hi,

- Sorry for the late reply!!
I haven't noticed there was a new message in this topic.
I'm glad you succeeded in solving the issue you had.

- Unfortunately, I can't often work on my Lemmings-like game for Android (https://www.lemmingsforums.net/index.php?topic=1758.0 (https://www.lemmingsforums.net/index.php?topic=1758.0)): at some point, I'll probably release the Android game, for free, in its current, unfinished, state (it won't be finished/polished but it's fully playable for loading and playing one-shot custom levels).

Because of this situation and because there are some good news about SuperLemmini, I've decided to release the latest version of jLevelBuilder (v1.88).
You can download it for free here : http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html)

jLevelBuilder is mostly designed to fulfill my needs for creating levels for my Android game, but you can use it to design classic Lemmings' ".lvl" levels and Lemmini's ".ini" levels, too. (SuperLemmini's specific features don't exist in jLevelBuilder, though).

jLevelBuilder doesn't include Lemmings/Lemmini's tiles, so you have to manually place them in the "jLevelBuilder_beta_1.88\resources\tilesets\Lemmings" folder (with the dedicated config file too, such as "dirt.ini"). Without the tilesets in the relevant folders, jLevelBuilder won't launch (@WillLem: hence the issue you had).

Unfortunately, there is no documentation about jLevelBuilder's features, so you'll have to play with the buttons/menus to find what's going on :) ... but many features are quite obvious when designing levels for Lemmings.

One last thing: jLevelBuilder v1.88 is a major update compared to the previously-available v1.76. There are many new features!

Hope you will find jLevelBuilder useful for making levels for (Super)Lemmini (".ini" files) or for classic Lemmings (".lvl" files). :)

(note: some features -such as "rotate tiles"- are enabled, but they are not compliant with Lemmings/Lemmini, therefore don't waste time trying to use them in your levels. And jLevelBuilder can't create full level packs à la NeoLemmix: it can only be used to create single levels)

(https://i.postimg.cc/76y5h2Pt/j-Level-Builder-v1-88b-small.png)

(https://i.postimg.cc/8C1vKBmL/j-Level-Builder-v1-88c-small.png)

(https://i.postimg.cc/Dw1QYzk3/j-Level-Builder-v1-88c-small.png)
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LanaAndCo on June 10, 2021, 01:30:28 PM
Aw yeah, my favourite level editor got updated! Thanks a lot LJLPM! :cute:
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: WillLem on June 11, 2021, 12:27:25 AM
Thanks for the update LJLPM!

One thing I've been wondering is whether you might be happy to collaborate with me on an editor for SuperLemmini, based on the jLevelBuilder's code.

What I have in mind is essentially a massively stripped down, simplified and streamlined version of the editor as it is now. Or, even if it still has all of the same functionality, a much more simplified UI would be a great move.

Here's a quick mockup which simplifies the layout slightly; I'd probably want to go a lot further and get something which has even less buttons and stuff, so that just the essential/most-used stuff is out on the surface.

Things to note:

- The "Skills" header and "Random Skills" button is now in the same column as the skill selection dialogs - this saves vertical space in the first column and makes more sense
- The "Entity Type" selector is now above the tile selector; better flow
- The tiles list has been removed; whilst this part of the interface is useful, I'd consider it "advanced" - maybe the UI could have different modes?
- The buttons on the right are the same as previously, but edited slightly for a better fit
- The menu bar is condensed to just a few items to reduce clutter; this may or may not be possible depending on functionality of the removed items

Again, this is just a very quick mockup. I'd be happy to spend a considerable amount of time coming up with an ideal layout based on aesthetics, workflow and most-used functions.

(https://i.imgur.com/ZsnHPXH.png?1)

I'm currently studying UX design, so a project like this would be awesome to work on if you're up for it. Thoughts?
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on June 11, 2021, 08:46:22 PM
Hi LanaAndCo and WillLem,

Thank you for your kind words :)
I don't have much free time, but your ideas about jLevelBuilder sound interesting, therefore, yes, I'll try make the compact version a real thing (maybe at the end of the month... It will be difficult for me to give it a try sooner...)
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: WillLem on June 11, 2021, 11:09:34 PM
I don't have much free time, but your ideas about jLevelBuilder sound interesting, therefore, yes, I'll try make the compact version a real thing (maybe at the end of the month... It will be difficult for me to give it a try sooner...)

OK, brilliant. Well, to help out I'll put together a proper mockup layout and see if you like it.
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LanaAndCo on April 03, 2022, 09:42:21 AM
Hello, I have two questions I would like to ask.

Since I got some time and creativity to dive back into level making, I noticed that, while jLevelBuilder can still open .ini files, it can't save them anymore. At first I though I corrupted something and I redownloaded it, but the option is still greyed out. Does anyone else has this problem and if so, is this a bug or are (Super)Lemmini based levels not supported anymore?
Also, sorry to ask you this, as I don't know if you previously said something about it but, if you're still able to update your level editor, is it possible to add support for custom tilesets? NeoLemmix Editor 1.43nc is too obsolete and frustrating to use nowadays, plus your editor has really nice features that make level-making easier.

Thank you in advance.
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on April 03, 2022, 11:19:25 PM
Hi,

Sorry for the bug when handling ".ini" files : I've fixed it.
Could you re-download the latest version of jLevelBuilder, please ? (http://www.lesjeuxlesplusmieux.com/jlevelbuilder.html)
Saving ".ini" levels should work again now :)

About handling custom tilesets, you can already use/import any custom tileset you want : just create a specific folder for each new tileset + create a valid configuration file (".ini" file) within the custom tileset's folder (for examples, you could take a look at your ".ini" config files which are located in "jLevelBuilder_beta_1.88b\resources\tilesets\Lemmings\brick, dirt, marble, etc..." folders).

With jLevelBuilder, you'll be able to create ".ini" levels for (Super)Lemmini that only rely on classic Lemmings' features (because SuperLemmini's and NeoLemmix's exclusive features don't exist in jLB).

About jLB's (new) features, just move your mouse over the buttons for few seconds to make a "help" text appear above the buttons.
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LanaAndCo on April 04, 2022, 05:16:57 PM
I didn't know you could already use custom tilesets, thank you very much! :cute:
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: WillLem on April 05, 2022, 09:50:00 PM
Sorry for the bug when handling ".ini" files : I've fixed it.

Thanks LJLPM!

I didn't know you could already use custom tilesets, thank you very much! :cute:

It is mentioned here (https://www.lemmingsforums.net/index.php?topic=5612.msg92200#msg92200). We need a purpose-built editor really. I think that would turn a lot of people back on to SuperLemmini in general.
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on April 06, 2022, 06:11:43 PM
We need a purpose-built editor really.

Actually, I've already worked on it, and it can generate ".ini" config files for custom tilesets (once again, it only handles Lemmings1-compliant tile properties).
It will be included in the next version of jLevelBuilder.

...just to know, what features would you expect for editing Lemmings1/Lemmini's custom tiles ?
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: WillLem on April 07, 2022, 12:28:05 PM
Actually, I've already worked on it, and it can generate ".ini" config files for custom tilesets (once again, it only handles Lemmings1-compliant tile properties).
It will be included in the next version of jLevelBuilder.

Great to know! Looking forward to it.

...just to know, what features would you expect for editing Lemmings1/Lemmini's custom tiles ?

jLevelBuilder already has a lot of the features I'd suggest for an editor, but if you're looking for a wishlist I'd probably add the following:

:lemming: Support for switching between editing and playing (maybe you can hook jLB up to SL so that when you hit "play", it opens the level in SL for testing)

:lemming: Customisable hotkeys

:lemming: Simplified interface (it's best to just have the most-used features as buttons, and hide the less-used stuff in menus. jLB's interface is very busy. If you want help with this, let me know. I think I offered a while ago to suggest some layout ideas, I'm still very happy to do this if you're currently working on it)

:lemming: Resizable window (absolutely essential for jLB due to the size of the interface)

:lemming: Support for tileset mixing (this probably also needs to be implemented in SL itself)
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on April 07, 2022, 06:36:04 PM
:lemming: Support for switching between editing and playing (maybe you can hook jLB up to SL so that when you hit "play", it opens the level in SL for testing)
I'll see if I can do something with SL, but I really don't know what's possible about that atm... That's a good idea btw.

:lemming: Customisable hotkeys
It's already here :) Go to "Options > Key Configuration"

:lemming: Simplified interface (it's best to just have the most-used features as buttons, and hide the less-used stuff in menus.
:lemming: Resizable window (absolutely essential for jLB due to the size of the interface)
 
Unfortunately, I don't have much free time for coding Lemmings-related stuff, so spending time on re-working the interface isn't a priority. But it's a good idea that I keep in mind, for sure.

:lemming: Support for tileset mixing (this probably also needs to be implemented in SL itself)
This feature is unlikely to happen because of how tilesets are handled. Sorry :(

:lemming: and about custom-tile editing/handling, what features would you like to see in jLB ? (classic Lemmings 1's tile support, only)
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: WillLem on April 08, 2022, 11:54:07 PM
It's already here :) Go to "Options > Key Configuration"

When I choose this, nothing happens ???

spending time on re-working the interface isn't a priority. But it's a good idea that I keep in mind, for sure.

Not a re-working as such, more of a simplifying. jLB is a very powerful editor with a lot of potential to be a go-to for SuperLemmini users. It's absolutely worth taking the time to clean it up a bit, and I'm more than happy to help with this wherever I can.

Here's my own idea for an imaginary UI, note that only the very basic features are out on the panel:


And here's how I imagine jLB could look if it had a UI closer to the one I've designed. Note that all I've really done is remove the lesser-needed parts of the interface to tidy it up a bit and leave only most-used features. This has the effect of removing the need for scrollers whilst streamlining the UI to aid workflow. The other features could happily live as menu items or hotkeys rather than dashboard buttons:


:lemming: and about custom-tile editing/handling, what features would you like to see in jLB ? (classic Lemmings 1's tile support, only)

Tile grouping would be good :thumbsup:
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on April 23, 2022, 12:38:42 AM
Tile grouping would be good :thumbsup:
You can already perform 'tile grouping'.
In jLB, grouped tiles are called 'Favorites' : select some tiles you want to link, and then click on the "Make Favorite" button.
In the "Entity Type" list, you'll be able to find all your Favorites, and, since Favorites are saved in your tileset directory, you'll also be able to re-use them accross different levels.

And about
It is mentioned here (https://www.lemmingsforums.net/index.php?topic=5612.msg92200#msg92200). We need a purpose-built editor really. I think that would turn a lot of people back on to SuperLemmini in general.
I'm working on such a built-in editor which will allow to set - and dynamically view as a red rectangle - Objects' trigger area (see red arrows on the screenshot below / note: some Objects' properties are only relevant to my Android game that I'm slowwwwly working on from time to time...)
This feature will be available in the next release (v1.89)
(https://i.postimg.cc/85ph2Xc9/Object-Configuration-small.png)
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: WillLem on April 23, 2022, 02:52:12 AM
You can already perform 'tile grouping'.
In jLB, grouped tiles are called 'Favorites' : select some tiles you want to link, and then click on the "Make Favorite" button.
In the "Entity Type" list, you'll be able to find all your Favorites, and, since Favorites are saved in your tileset directory, you'll also be able to re-use them accross different levels.

This is a great feature! One of the many reasons a more simplified interface might benefit jLB; features like this could be easier to spot if the UI is a bit less cluttered (the MakeFav. button is very easy to miss). Nonetheless, knowing about this made me think I ought to take a much closer look at the editor and its various existing features.

EDIT 1: It seems there is a "Group" function as well (Entity Type: Group). Does this also group items? I've now seen that this feature is only available in "Advanced" mode and not "Lemmings" mode. Could the feature be made available in "Lemmings" mode as well?

EDIT 2: I've just taken another quick look at it and I'm fast beginning to see the potential for jLB to be the editor for SuperLemmini levels. I'll get an overview together at some point and begin to direct players towards it more often. Standout features are the minimap display for quick jumping to different areas of the map, and the piece selector list which allows selection of pieces without having to actually locate it amongst a cluster of pieces: this is revolutionary. I'm not sure how your editor has gone under the radar for so long, to be honest.

A few bugs I noticed, though:

* Zooming in removes the minimap; keeping it available would make it much easier to quickly find an area when very closely zoomed in

* Meanwhile, the Zoom>Open 'Zoom' Window doesn't work as expected, i.e. clicking within it doesn't relocate the zoomed area

* Ctrl & Mousewheel Scroll zooms in, but not to the selected item (which is expected). It seems to zoom in to an arbitrary area of the screen, which isn't particularly helpful. Is this something that can be configured?

* User configurations aren't saved upon exiting the program (for example, I have to keep turning the reference lines off)

A way to set the default "load" folder would also be great for general convenience :thumbsup:

I'm working on such a built-in editor which will allow to set - and dynamically view as a red rectangle - Objects' trigger area

Brilliant stuff, well worth adding this. Trigger areas can be a pain to get right in SL levels, this will massively help :thumbsup:
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on April 23, 2022, 10:58:18 AM
Thank you for your kind words ; I'll try to fix the issues you've noticed.

About
* Meanwhile, the Zoom>Open 'Zoom' Window doesn't work as expected, i.e. clicking within it doesn't relocate the zoomed area
I'm not sure to understand the issue.
Actually, this option simply opens a new "zoom-in" window that you could use side-by-side to the main UI, in order to fine-tune your work (while keeping the main screen at standard 1:1 scale factor)
The "zoom-in" window does not monitor the main screen's position: therefore if we scroll the level/the display in the main screen, then the "zoom-in" window won't follow (because it can't).

(https://i.postimg.cc/VLLkgz3j/j-Level-Builder-zoom-Window-small.png)
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: WillLem on April 25, 2022, 12:37:06 AM
Actually, this option simply opens a new "zoom-in" window that you could use side-by-side to the main UI, in order to fine-tune your work (while keeping the main screen at standard 1:1 scale factor)

I see, fair enough.

I'm not sure how useful this is though, in all honesty. During workflow, it's far more intuitive to simply zoom into what you're working on, make changes, and then zoom out. Seeing the same thing in two different screens (and only being able to select items from the non-zoomed screen) is somewhat confusing.

Having said that, I suppose it's better to have a feature you never use and might need for something at some point than not have the feature at all, so I'm by no means suggesting that it be removed!

What I would suggest, though, is more intuitive zoom control, such as still being able to access parts of the level via the minimap, and the zoom itself always following either the mouse cursor or the currently selected item. This would greatly improve interactivity with the program and make it feel more ergonomic and responsive.

Thank you for your kind words ; I'll try to fix the issues you've noticed.

You're very welcome! I hope some of my feedback doesn't come across to harsh: your editor is excellent, and well worth a bit of tweaking to take it to the next level. If I can help in any way, I'll be glad to do so.
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on April 25, 2022, 07:50:12 AM
I'm not sure how useful this is though, in all honesty.
...actually, I've never used this feature, too :)

And I fully agree about handling more intuitive zoom controls. I'll see what I can do about that.
And, no, your feedback doesn't come across to harsh: on the contrary, it helps keep the motivation up! Feel free to give any piece of advice you may think of :) Thanks!
Title: Re: jLevelBuilder 1.88 (june, 9th 2021)
Post by: LJLPM on July 28, 2022, 06:01:12 PM
I'm porting my Android game's engine (https://www.lemmingsforums.net/index.php?topic=1758.240) to PC/Mac/Linux in order to help me debugging the game engine
Thanks to this PC/Mac/Linux port, jLevelBuilder is now able to directly load and run the Android game's levels (".ini" files, like Lemmini) :)

Levels are loaded/running in a separate window (now I have to drop Lemmings in levels and I have to add player actions/controls, of course)

Running Lemmini level files will work too but since Lemmini uses different physics than my Android game, Lemmings won't behave/collide as in Lemmini (instead they'll behave/collide using my Android game engine).

(https://i.postimg.cc/Nj9T0JnW/j-Level-Builder-1-90-small.png)

... and it's also working with custom tilesets :) (in Lemmini's format)
(https://i.postimg.cc/J0ggB2Pg/j-Level-Builder-1-90-small2.png)