Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Messages - WillLem

#1
Quote from: hrb264 on Today at 09:24:04 AMIs it OK to leave it in Mayhem as a kind of 'breather'?

Yes. It's your pack, go with your instincts :)

Quote from: hrb264 on Today at 10:49:49 AMI get the impression many people often like to have 1 or 2 of each skill and don't like this sort of level? (To be honest, 1 of everything levels aren't my favourite type :D )

Mine neither, I'm also a fan of more open-ended levels that provide enough skills to find more than one solution. To each their own.

Don't try too hard to please others. Make the levels you'd want to play yourself.
#2
I've now implemented a failsafe for replays made in SuperLemmini versions 0.103 - 0.104a (which had untimed bombers). Previously, if the "timed/untimed" data was missing from the replay, RetroLemmini would fallback to user option. Now, any replay made in these specific versions will be assumed to have untimed bombers.

Unfortunately, there's no way to account for replays made in SuperLemminiToo because this is when the timed bomber option was first made available but wasn't yet written into the replay (that came about in RetroLemmini 1.0). However, it is still possible to fix these replays manually should anyone wish to do so:

How to fix SuperLemminiToo replays which include Bombers
1) Open the replay in a text editor.
2) Find any line which matches the following:
   n, 2, FLAPPER, lem   (where "n" is the frame number and "lem" is the lemming index)
3) If the replay was made with the Timed Bomber option enabled, type ", true" at the end of the line. Otherwise, type ", false". Examples:
   162, 2, FLAPPER, 0, false   (an untimed bomber assigned to lemming 0 at frame 162)
   394, 2, FLAPPER, 5, true   (a timed bomber assigned to lemming 5 at frame 394)

Done! :)

Implemented in RLPlayer commit 14affaf.
#3
OK, made a little bit of progress with this today.

Out-of-bounds exceptions for lemming indices are now handled by displaying the expected vs. actual lemming index in the window caption, like this:


So, the replay has an action for lemming 11, but there are currently only lemmings 0-5 available in the level.

Also, when loading a replay, RetroLemmini falls back to matching by level name alone if it can't find an exact match for pack title, rating and level name (this has been in effect since 2.7). This does occasionally result in mismatched replays being played, so let's show the expected name + pack title in the caption. The purpose of this is to make it easier to see which level the replay is actually for:


The replay is for "Take A Running Jump" from Lemmings, But With Lemminas!. This pack can't be found, so RetroLemmini has loaded "Take A Running Jump" from regular Lemmings.

Whilst there's still no guarantee that the replay will play without issues, the above tweaks at least help matters by reducing unhandled exception popups, whilst providing better user feedback so that issues can be more easily identified and fixed.

Meanwhile, I'll keep looking into what can be done to increase backwards compatibility with older replays.
#4
A question as old as custom lemmings levels, this one.

The difficulty of custom levels (as Proxima has already pointed out) is greater than that of the original games, but if we stretch the graph so that Fun still means "as easy as the game can be" and Mayhem still means "as difficult as the game can be", the following questions can provide a good barometer to sort levels out:

1) Does the level expect the player to find a single intended solution? Yes = 1, No = 0
   1b) Is the level a tutorial level, or a level where the solution is intended to be obvious? Yes = -1, No = 0
2) Does the skillset provide more skills than are required to solve the level as intended? Yes = 0, No = 1
3) Is the layout of the level specifically tailored towards patching out all other possible solutions than the intended one? Yes = 2, No = 0
4) Does the level's intended solution feature a specific trick that the player must know/discover in order to find the solution? Yes = 3, No = 0
5) Once the solution is known, how easy* is it to play the level in real time without using the pause button? Easy = 0, Not easy = 1
6) Are there any assignments which cannot be made without the use of the pause button, L/R arrows, or any other player assists such as framestepping or skill shadows? Yes = 2, No = 0

*For the purposes of this question, if the level provides little to no challenge when playing out the known solution in real time, it's "Easy". If executing the solution presents any significant challenge at all during real-time play, it can be scored as "Not easy".

If the level scores more than 0, it's probably at least Tricky difficulty. The higher the score, the more likely it is to be Taxing or Mayhem, keeping in mind that the highest possible score from the questions above is 10.

The questions matter in combination as well. For example, if questions 1, 2 and 3 all score positively, I'd say it's at least Taxing if not Mayhem. If questions 1 and 4 score positively, but 2 and 3 score 0, it could be a more difficult Taxing level or even a Tricky level depending on how lenient the skillset is.

Really, measuring difficulty is a learn-by-doing process. The more levels you make, and the more solutions to your own levels by other players that you see, the better an idea you'll have of how difficult your level is.

As a player, I always appreciate it when a pack starts off with a bunch of easy, open-ended levels just to get me going. It's a good way to get to know the author's level design style and get warmed up for the later levels. Like a professional piano player doing a few scales or playing a few easier pieces to warm up before a concert, I see it as a necessary part of the process.

Anyways, keep going, keep creating. That's the best way to learn.
#5
Quote from: Airwave on February 27, 2026, 11:07:07 PMI'm new to the forum but I've been playing Lemmings on and off since the 90s. I got back into it in the last few month when I discovered RetroLemmini and have been playing a lot lately.

Welcome to the Forums! Glad you're enjoying RetroLemmini :)

I've replied to the replay concerns here.
#6
Thanks for reporting :)

Quote from: Airwave on February 27, 2026, 11:07:07 PMWhile writing this I just discovered the replay with 17 saved, which I recorded in version 2.7, doesn't work correctly in 2.8 and becomes unsynchronised.

I'm unsure why this is happening. The level itself and the game physics are both identical between 2.7 and 2.8, so this desync bug is fairly concerning. We'll see if it happens with any other levels/replays.

Quote from: Airwave on February 27, 2026, 11:07:07 PMIt turns out the recording in 2.8 crashes while playing in 2.7.

This one's an out-of-bounds exception, these are unfortunately quite common in the Lemmini codebase. I'm working on better error reporting so that we see something like "there are fewer lemmings than expected" rather than a generic error, but it's a one-at-a-time kind of process.

Quote from: Airwave on February 27, 2026, 11:07:07 PMIt seems all other replays are fine when played in 2.7 and 2.8 so I can only assume that glitch causes problems with replays.

It's possible, but the expectation is that all replays should be cross-compatible between all RL versions after 2.6, which was the last time physics was updated.

Quote from: Airwave on February 27, 2026, 11:07:07 PMI noticed the replays in this thread from 2021 don't work in RetroLemmini.

I think I know why this is. The Flow Control replays from 2021 that you're referring to were created in SuperLemmini 0.104, which didn't have timed bombers. If you play back the replays with timed bombers enabled, the actions will desync. If you disable timed bombers and then load the same replays, they play back as expected. RetroLemmini has fixed this for newly-created replays (any replay made since RetroLemmini 1.0 accounts for the timed bomber option in the replay), but it may be worth implementing a failsafe if a 0.104 replay is detected - in this case, RetroLemmini should assume untimed bombers rather than defaulting to user option. <--- EDIT - this has now been implemented.

Incidentally, versions 2.7 and 2.8 both report on replay compatibility in the window caption. When you play back a replay, it may show something like this:



The above indicates that the current RL version is 2.8, the compatibility version is 2.6, and the replay version is 0.104. "Compatibility version" refers to the last physics update, so the general expectation is that replays made since that version should play flawlessly in the current version. The replay version is 0.104, which is well before 2.6, so there's a chance of errors occurring during playback.

I'll look into it and see if there's more that can be done to increase backwards-compatibility, or at least better error feedback.
#7
Quote from: Airwave on February 27, 2026, 11:07:07 PM...

While writing this I just discovered the replay with 17 saved, which I recorded in version 2.7, doesn't work correctly in 2.8 and becomes unsynchronised. I'll record it again in 2.8 and upload both. It turns out the recording in 2.8 crashes while playing in 2.7. It seems all other replays are fine when played in 2.7 and 2.8 so I can only assume that glitch causes problems with replays.

One last thing, I noticed the replays in this thread from 2021 don't work in RetroLemmini. I guess they only work with older versions. I'm currently using version 2.8 and started saving replays with version 2.7.
#8
Quote from: zanzindorf on Today at 01:31:34 AMWhich one do you like better?

Thanks for making these! I probably prefer the straight up 32x32 one, but both could work.

Quote from: zanzindorf on Today at 01:31:34 AMI don't know what you had in mind for art style ... I'm leaning towards simple, cartoony 3D renders?

Yes, ideal. By all means have some fun with it and see what you come up with. I'd say 32x32 is probably a good size to aim for if you're working with large 3D renders.
#9
NeoLemmix Main / Re: [SUG] Add Exit to default style
February 27, 2026, 11:12:51 AM
Quote from: namida on February 27, 2026, 02:28:51 AMIt occurs to me that you've basically reinvented namida_machine's exit at this point:

Heh, unintented coincidence.

The exit I posted is intended as a baseline, not a finished product. I imagine it'll be recoloured to something a bit less monochrome-looking.

Open to ideas. Hopefully some of our better artists (Jeremy, Dex, Lana, Giga, Turrican, Zanzindorf, et al.) will have a go at making something...
#10
Lemmini / Artists Wanted! (for drawing some mini icons)
February 27, 2026, 10:52:17 AM
Hi all,

I've decided to go ahead and utilise Java's menu item icons to make the menu bar a bit more fun to look at.

However, my pixel art skills are nowhere near as good as some of the work I've seen done by people on this Forum, and any lemmings time I get at the moment is pretty much all going on Forum moderation and programming, so I'd really appreciate the help on this one.

There are 11 icons altogether. I'm open to ideas as to what exactly the icons should be, but here are some ideas to get the ball rolling:

IconAbout - a book or a pair of glasses
IconCodes - a pair of sunglasses or a Sherlock Holmes hat
IconEntrance - this should definitely be an entrance hatch
IconExit - this should definitely be an exit
IconHotkeys - an inverted T-shape with arrows (arrow keys layout)
IconMouse - a mouse
IconOptions - a cog
IconPlayers - Cluedo tokens
IconReplay - a clapper board
IconRestart - a reload arrow
IconStyles - a folder with an arrow pointing into it (this is for "Update Styles")

I've made some very basic versions of the above, please feel free to edit them or completely recreate them.

Size-wise, they should be no larger than about 24(h)x32(w), but if you can make really great looking 32x32 icons, that's fine. The menu items automatically resize according to the icons anyway.

So yeah, if you fancy giving this a go, please download the .zip and see what you can come up with!



#11
Quote from: Simon on November 18, 2025, 05:36:10 AMI'll have time to look at the code together on Saturday, November 29th. Does that suit you? I'll have time all day and you can pick the time.

Apologies Simon, I missed this message. I'd be happy to look at this with you again at some point in the next few weeks.
#12
Site Discussion / Re: Lemojis!
February 26, 2026, 02:32:12 AM
Lana's Lemojis are fantastic and we should definitely consider using these, but a few of them aren't as clear as they could be. Most notably:

Surprised, Undecided, Suspicious, Smug, Frowning and Excited could all do with being made a bit clearer. Maybe the features need to be a bit bigger or bolder to make the expressions stand out more.

And, some more specific feedback on some of the others:

• The face for Sick should be a bit more green.
• Mindblown should have green hair to make it more clearly a lemming.
• Lemcat should have a darker nose.
• Sleep looks fantastic animated, but the cloud burst at the end makes it less clear that these are "Zs". I'd suggest just having upwards-floating-and-disappearing "Zs" in place of this.

All of the others are great as they are :thumbsup:

@Lana would you be happy to make some for Santa :santa:, Shrug :shrug: and Geek as well? Santa and Shrug are recent additions to the set, and Geek is currently being considered for addition. It seems worth having your versions of those if your full set is to be included.
#13
Well, now that SuperLemmix has an online Styles Updater, we need to be able to update the default style without overwriting user mods.

I'm currently thinking that the best way to handle this would be to have a global updater, which updates not only the styles but also SuperLemmix itself. When compiling, we bake versioning info for every file into the .exe so that SuperLemmix always knows "this is the original" or "this is a modded version" when deciding whether or not to apply an update.

This system would be used for all files which are shipped with SuperLemmix. So, it would include the default style and the slx_ styles, but would NOT include any custom styles: those would continue to be handled by the Style Updater, and would always overwrite (since they shouldn't be modded anyway).

When updating, then, if the target file is the last known version, SuperLemmix will simply overwrite it. If it's a user mod, the mod will be renamed and the new file will take its place. This means that user mods would never be destroyed by an update, but also that users will be able to see "ah, this file has been updated, I'll need to re-apply my mod". It seems the simplest and safest way to go about doing this.

Should we use a 'mods' folder? Sure, we could move user-modded files into a mods folder to make it easier for users to re-apply their mods following an update, but we still wouldn't want to load from that folder just in case the file has changed significantly enough to make the mod unusable (which would majoritively be the case).

In the meantime, if you do use mods to the default or OG styles, be sure to keep a backup copy somewhere if you're using the Style Updater. I'll aim for the next version of SuperLemmix to support global online updating (no more having to copy everything across from an older version again and again and again!)
#14
NeoLemmix Main / Re: [SUG] Add Exit to default style
February 25, 2026, 11:59:20 PM
Quote from: namida on February 25, 2026, 06:16:28 AMThe Pillar exit has the typical background, unlike the Crystal one's solid red color. I'd vote for it over Crystal, though I'd still say recolor it to be a bit more generic. (Of course, the modified-crystal custom one could also add that background.)

Looking at the available exit doorways, Marble's probably has the best:



Pillar and Crystal are both a single solid color. Pillar's blue is definitely more suitable for a generic variant than Crystal's red, but we should include the 'grass' detail from Marble for sure.

Quote from: namida on February 25, 2026, 06:16:28 AMHowever - I also think you're being a bit too quick to rule out (a modified version of) the Marble exit, too ... I feel like there might be other styles even more associated with (a different color of) bricks... :P

Yeah, Marble's exit would probably be my second choice after a Pillar/Crystal amalgamation. I like your own Laboratory exit as well for similar reasons; the brick theming and the fact it can be recoloured to pretty much anything whilst still looking instantly recognisable.

A Pillar/Crystal exit would still be my first choice, though. It just has that iconic "Lemmings exit" shape. I've gone ahead and created a possible "default" variant:



I just greyscaled it for now (we'll likely want to do something a bit more imaginative than this), added the grassy meadow doorway, and used the flame colours from Pillar.

This is not intended as a final version by any means. I'm hoping someone with more graphics savviness than me (dex? jkapp76?) will do something better. I just think it helps to have something visual in the meantime.

#15
Quote from: hrb264 on February 25, 2026, 10:29:49 AMI'm making a pack now. There are 4 ranks (plus one 'skills refresher' one) and there are going to be 8 levels in each rank :)

Awesome! Looking forward to it :lemcat: