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.


Topics - WillLem

Pages: [1] 2 3 ... 23
1
Someone has to say it.

Pretty much the same people always win LOTY and LDC. Here are the top 3 designers in every contest for the past 5 years. If listed twice, the designer placed in the top 3 with 2 separate levels. "/" denotes joint winners:

2023 LOTY: NieSch, Armani/Icho, (3rd place TBA)
LDC 29: Armani, kaywhyn, Icho
LDC 28: Kingshadow, Armani, Simon
2022 LOTY: Armani, Icho, Icho
LDC 27: Simon, Simon, NeiSch
LDC 26: NeiSch, NeiSch, Armani
LDC 25: Armani, Icho, (no 3rd place)
2021 LOTY: Nessy, Icho, Icho
LDC 24: tan x dx, Icho, Kingshadow
LDC 23: Kingshadow, Armani, (no 3rd place)
LOTY 2020: DireKrow, Armani, Icho
LDC 22: Armani, Nessy, (no 3rd place)
LDC 21: Icho, Armani/Armani, (no 3rd place)
LOTY 2019: Icho/Namida, Crane, Icho
LDC 20: DireKrow, Armani, (no 3rd place)
LDC 19: Icho/Flopsy, Armani, (no 3rd place)
LDC 18: Namida, Crane, (no 3rd place)

I've put the designers that only appear once in bold. There are only 3 unique designers out of a possible 51 (top 3 multiplied by 17 contests)

Here's the final stats for all 51 award slots:

Armani, Icho: 13 appearances each
NieSch: 4 appearances
Simon: 3 appearances
Crane, Kingshadow, Namida, Nessy: 2 appearances each
Flopsy, kaywhyn, tan x dx: 1 appearance each
(3rd place not awarded 7 times)

Firstly, congratulations to Armani and Icho for setting and maintaining the high standards of level creation that these contests enjoy - let's be clear that the quality of their levels is not in question here at all, nor is the value of their participation!

However, these 2 designers account for more than half of the total possible appearances in the top 3 of all contests. Honestly, we can probably be doing more to make sure other designers get a look-in, particularly when it comes to making it into the top 3.

In fairness, the actual 1st-place winner of each contest is more or less different each time, but the point here is that the pool itself is often very similar. This is particularly true when looking at the final round of each contest; it's nearly always the same 4 or 5 designers every time, with maybe the occasional wild card from someone who made a particularly good level that contest.

What I'd suggest is adapting the format of these contests slightly with the goals of (a) encouraging more participation, and (b) increasing the likelihood of different designers making it into the top 3. I'm sure that Armani and Icho will always be strong contenders, and rightly so, but we need to see other names up there more often than we are doing at the moment, otherwise more and more people will tune out, and this will only exacerbate/perpetuate the problem.

My hope is that the following suggestions will open the contests up a bit and ensure that, even if Armani and Icho always make the top 3, maybe that 3rd person will be someone different each time, and more designers will benefit from the encouragement of having had one of their levels make it to the finals.



On to the suggestions:

:lemming: There were 7 contests in which a 3rd place wasn't awarded. Awarding Gold (1st), Silver (2nd) and Bronze (3rd) ought to be standard in every contest - this alone would ensure that more designers get to see their name in the top 3 slots.

:lemming: In the case that 2 of the same designer's levels make it into the top 3, either choose only the one that got the most votes or (probably better) count them as a joint award for that slot, and award the next slot to the designer with the next highest amount of votes. Or, to put it another way, we're awarding the designer rather than the individual levels in this particular case, and so we can place equal recognition on both levels. However it ends up being formulated, the end result should be that no fewer than 3 designers end up in the final round. Example:

       Armani gets 8 votes for Level A and is awarded Gold (1st place)
       Icho gets 7 votes for Level B, 6 votes for Level C and is awarded Silver (2nd place) for both levels combined
       (SomeoneElse) gets 5 votes for Level D and is awarded Bronze (3rd place)

:lemming: Better yet, only allow 1 entry per designer per contest, with the possible exception of LOTY. (EDIT: This suggestion has been updated in response to Armani's post)

:lemming: If keeping the "3 rule" format, allow all 3 winners of the previous contest to choose 1 rule each, rather than the top spot winner choosing all 3. This in itself would likely incentivise more participation; making it into the top 3 suddenly means more, and a designer who manages to make it that far is rewarded for doing so. This is particularly meaningful when there are only 1 or 2 votes in the difference between the top 3, which is sometimes the case.

:lemming: Alternatively, the "3 rule" format could either be reduced to 2 rules (maintain an element of choice whilst reducing workload and possible confusion for participants) or scrapped altogether in favour of a single rule (easiest to follow/maintain and could help make contests shorter, so they could be run more often and therefore provide more chances to win, but could also have the undesired side-effect of reducing participation due to lack of interest in the rule).

:lemming: In many cases, LDC levels that placed in the top 3 also end up in the LOTY top 3 for that year. Perhaps implement a contest entry condition preventing the same level from entering 2 different contests. The level has already been awarded an accolade previously - giving it another award, whilst perhaps deserving, prevents other designers/levels from receiving recognition. Preventing this is an easy way to ensure that different levels (and, perhaps therefore different designers) get a fresh chance with each contest. And, if the same designer is awarded a LOTY top 3 place for a different level than their LDC top 3 place, it's a chance for that designer to be recognised for more of their work, arguably making the award more valuable to them personally. Conversely, perhaps we deem it necessary to bestow more recognition on a particularly good LDC winner. One way to achieve this would be to have a separate "Contest Level Of The Year" award, which pits all of that year's contest winners against each other for one final vote.

I hope these suggestions are useful. If nothing else, it might be worth trialling a few of them for the next few contests and see if it amounts to at least an uptick in participation. Or, if people don't think there's a problem with the way things are now and this just comes across as complaining, that's fine. Feel free to ignore this post and I'll go back to ignoring the Forum contests (it's not as if I haven't got plenty else to be getting on with!) ;P

But seriously, I'm making these suggestions in the hopes that it might benefit other designers who are discouraged from participating due to thinking there's no chance of winning, or even simply due to confusion regarding the format. There's actually very little for me to gain here personally, I'm just being a voice.

2
Site Discussion / [BUG] Site timeouts when posting
« on: July 06, 2024, 10:24:28 PM »
Getting this pretty much every time I post at the moment:



I've recently begun using a different laptop, so that could have something to do with it. Maybe there's something in my browser settings that's different. I have uBlock Origin and AVG Online extensions running; I'll try disabling them for a day or two and see if it makes a difference.

3
Introducing Colour Swap, a free tool that allows you to batch-swap colours in multiple .png files simultaneously!



This will no doubt come in very handy for anyone creating styles/sprite sheets.

Instructions for use:

1. Select a folder containing images you want to colour-swap.
2. Add a colour swap to the swaps list using 6-digit hex codes for each colour (the codes are available in most image editors, or you can use this site).
3. Once you've populated the list, choose whether you want to overwrite the original files or save the modified images to a new "Colour Swaps" folder (saved within the original directory).
4. Hit the Swap Colours button!

It's also possible to save and load swaps lists for quickly recalling swaps for subsequent use, or for quickly generating a full list using a text editor.

Enjoy! :lemcat:

4
Tech & Research / The Level Edges Topic
« on: July 02, 2024, 01:11:25 PM »
This topic is to catalog how the level edges (left, right, top, bottom) behave on each of the various ports/clones of Lemmings (1991) - (this topic may also be updated to feature the same information for ports of Lemmings 2: The Tribes at some point).



How do the level edges behave on each of the ports/clones of Lemmings (1991)

PortLeftRightTopBottom
AmigaSolidUnconfirmedSolidDeadly
Apple MacUnconfirmedUnconfirmedUnconfirmedUnconfirmed
Atari STUnconfirmedUnconfirmedUnconfirmedUnconfirmed
DOSSolidOpenSolidDeadly
PC-98UnconfirmedUnconfirmedUnconfirmedUnconfirmed
SEGA MegaDrive/GenesisSolidUnconfirmedSolidDeadly
SEGA Master SystemUnconfirmedUnconfirmedUnconfirmedUnconfirmed
SNESSolidUnconfirmedUnconfirmedDeadly
Sony PlayStation (2/PSP)UnconfirmedUnconfirmedOpenDeadly
Windows '95Game crashesUnhandled force-fieldOpenDeadly
ZX SpectrumUnconfirmedUnconfirmedUnconfirmedUnconfirmed
CloneLeftRightTopBottom
LixDeadlyDeadlyDeadlyDeadly
NeoLemmixDeadlyDeadlyDeadlyDeadly
SuperLemmixForce-fieldForce-fieldForce-fieldDeadly

Definitions:

Unconfirmed: Behaviour yet to be tested & confirmed

Open: Lemming is able to cross the edge and remain active (but not necessarily assignable)
Solid: Lemming reacts to edge as if it's unclimbable steel
Force-field: Lemming reacts to edge as if it's a Blocker or one-way field
Deadly: Lemming is removed after crossing edge

5
As of commit d57ee948c, wherever an Exit's trigger overlaps one or more other object triggers, the Exit will always take priority:



SuperLemmix now has a full "Exit Rules All" physics system; if ever a lemming makes contact with an Exit's trigger by whatever means, and time remains on the clock, they will exit regardless of current state or any other factors.

If anyone playing SuperLemmix notices any situation where exiting can be expected (however remotely) and doesn't happen, please let me know and I'll fix it as soon as possible.

6
Tech & Research / The Direct Drop Topic
« on: June 30, 2024, 11:08:04 PM »
What is Direct Drop?

Essentially, this:



Midair exiting is also of interest here:





Which Lemmings (1991) Ports/Engines Feature Direct Drop?

PortDirect Drop for Exits |Direct Drop for Traps |Midair Exits |Midair Traps
AmigaNoYesNoYes
Apple MacNoUnconfirmedUnconfirmedUnconfirmed
Atari STUnconfirmedUnconfirmedUnconfirmedUnconfirmed
DOSYesYesNoYes
PC-98YesUnconfirmedUnconfirmedUnconfirmed
SEGA MegaDrive/GenesisYesUnconfirmedNoUnconfirmed
SEGA Master SystemUnconfirmedUnconfirmedUnconfirmedUnconfirmed
SNESNoYesNoYes
Sony PlayStation (2/PSP)UnconfirmedUnconfirmedUnconfirmedUnconfirmed
Windows '95YesYesYesYes
ZX SpectrumUnconfirmedUnconfirmedUnconfirmedUnconfirmed

For clones, the info here refers to the latest stable version:
CloneDirect Drop for Exits |Direct Drop for Traps |Midair Exits |Midair Traps
LixNoYesNoYes
NeoLemmixNoYesNoYes
SuperLemmixYesYesYesYes



Which Lemmings (1991) Levels Can Be Solved Using Direct Drop?

List of L1 (Amiga port) levels for which a DD solution is possible (i.e. the entire quote of required lems to pass the level can be dropped into the exit from an otherwise unsurvivable fall distance). If the DD solution is therefore a backroute, this is noted with an asterisk*:


7
Proposal: relax Builder checks so that they only stop building if they have terrain immediately overhead, or at their foot position during the "step up".

So:


^^^Correct, current behaviour - the lem's head has hit terrain, so they stop building and turn (yes, the turn is debateable, but will be kept if the proposed change goes ahead)


^^^Much more arbitrary - why did the lem stop building here*?? Let's do away with the need to spam builders to complete the bridge!


^^^This is better! They should keep building until the existing terrain prevents them from stepping up, at which point they stop and turn as usual

*NOTE: code-wise, the stop-and-turn at this point is because the Builder needs to check for terrain in front of them as well as overhead. In this scenario, though, the check is returning a false positive of sorts; the check needs to be less complex, then.

8
In this situation, a Ballooner will continue to ascend until their foot reaches the top of the platform, at which point the balloon will pop and the lem will begin walking:



This feel right: the lem can walk "through" the platform to begin with, and so should only ever care about it when it's at their foot position. Shimmiers can also similarly ascend through a 1px platform if it's close enough to their starting position:


The lem lands on top of the platform at the end of the reaching action ^^^

My honest thoughts here are that we should allow Jumpers to access the top of a platform in a similar way. As long as the top of the platform is below the lemming's head at the start of the jump, they should be able to access it by jumping. So, for instance:


This should be allowed ^^^


Current Jumper checks should apply here ^^^

The same should then apply to the "reaching" Shimmier: if the lemming's head is above the top of the platform, they should be able to ascend past the platform to land on the top.

We're then asking: does the lem have overhead terrain at any point during the skill action? If so, cancel the action at the point their head meets the terrain (Jumpers fall, Reachers begin to shimmy). If not, allow the skill action to continue until their foot position meets the top of the terrain.

Just riffing here. We can of course keep the Ballooner as-is and not do anything with the other skills, but this seems good for consistency.

9
Clicking the button, or pressing [Enter], [Space], or double-clicking the replay event itself will skip the game to that replay event. Surrounding events are unaffected, and remain in the replay list so that other events can be subsequently skipped to.



Implemented in Commit 87af92086

10
SuperLemmix Bugs & Suggestions / [SUG] Hi-res only panel and helpers
« on: June 18, 2024, 02:12:18 PM »
For 2.8, I'll be taking on the challenge of making the skill panel hi-res only; there will no longer be a low-res version of the panel, and hi-res settings will only apply to the game itself.

That's all for now. I'll update progress here.

11
Before (Player):



After (Player):



Before (Editor):



After(Editor) - note that multiway resizable objects (i.e. water) are still incorrect - this will be fixed soon:





The repositioning bug seems to have been caused by an ancient bugfix that was later addressed elsewhere in the code, but the original bugfix wasn't updated to match.

Player-side, we'll have to watch out for any existing levels which contain flipped/rotated/inverted objects - OWWs are all fine because they're exact squares, but basically all other objects may now have triggers in a slightly different (but, actually correct!) position as a result of this update. Thankfully, this is being done before there's too much made-for-SLX content. I only have a small handful of levels which are affected by this and it's been very easy to fix them.

Editor-side, the only remaining bug is that resizable objects' triggers are still not resized properly (note the water objects in the above screenshots) - I'll get this fixed ASAP.

12
When replacing the title of a post, sometimes it's desirable to change every reply's title to the same replacement (albeit with [Re:] prepended).

Can this option be added for mods?

13
Found a particularly nasty bug today when running tests on the SLX Replay Manager (which is essentially a re-skinned version of the existing NL Replay Renamer with a couple of extra features), and discovered that it exists in the engine as far back as NL 12.12.5.

To say the MRC deletes the files is somewhat incorrect. It does delete them, but this behaviour is actually correct. The bug is that the newly-generated replays are being saved over each other iff they have the same filename.

Steps to reproduce:

1) Unzip the attached Replay Check Batch to a new folder in "levels"
2) Run MRC on the replays within the folder, making sure to choose "move to" or "copy to" (choose Position + Timestamp to make it more likely that the buggy behaviour will occur, but it can occur for any renaming string)
3) Some of the replays won't have been saved (well, actually, they have been saved, but they overwrite each other because they have the same filename)

This is most likely occurring because the timestamp used for renaming is that of the replay check time rather than the timestamp on the original replay.

Suggestions for fixes:

1) Add an incrementing alphabet character to the timestamp iff the current timestamp has already been used (so, for example, __2024-06-05_15-26-51.  __2024-06-05_15-26-51A,  __2024-06-05_15-26-51B, etc)

2) Retain the timestamp of the original replay and use that instead (arguably, this should be happening anyway)

3) Check to see if the current "NewName" has already been used in the current replay check. If it has, add an alphanumeric character to the end of the replay name (so "NewName := NewName + i; Inc(i); or generate a random short string of digits) - essentially the same as suggestion (1), but we're taking the full replay name into account rather than just the timestamp

I'll likely go ahead and apply whichever of these fixes proves to be easiest in SLX, happy to do a PR if it tests working.

14
Paiy has reported two levels not awarding the "No Pause" talisman (on Discord). I also noticed this happening several times whilst playtesting Lemminas Origins, and did attempt to fix it in commits 00989847d - b76c92531. It seemed fairly watertight after that, but since paiy has confirmed being on the latest version of SLX (2.7.3) and playing without pressing pause or loading a replay, it's clear that more needs to be done.

Currently, the No Pause talisman fails in any of the following conditions:

1) Pause was pressed at any time during playing the level
2) A replay of the level was loaded at any time

Checking for pause is not a problem: if the pause button or hotkey is pressed, a flag is set to true and it remains true until the end of the level, at which point the talisman is failed. If the user restarts the level, the flag is set to false.

What's more likely to be the issue here is checking for a replay having been loaded. Many in-game actions can cause a replay to be inadvertently loaded (backstepping, rewinding, restarting, even changing the release rate) and it's very difficult to keep track of them all for the purposes of this talisman.

Maybe, then, we should only check for a replay being loaded if it's explicitly loaded from a replay file. In all other cases, we check only for button/hotkey presses (backstep, rewind, restart) to determine whether this action should fail the talisman:

Backstep and rewind should, obviously. Restart should only fail it iff the user has "replay after restart" behaviour activated and pause was pressed at any time during play - furthermore, we already allow 55 frames' grace to cancel a replay if the player paused, restarted (with replay after restart activated), and then cancelled immediately - in real terms, the player has until the music starts to cancel.

From a quick look at the code, the "replay was loaded" flag (which fails the talisman) is set to true and false in lots of places, likely due to the number of actions that can trigger a replay load. This is not good, and shows that we need a more watertight solution.

So, I propose two fixes for this:

:lemming: The first is to remove the "replay was loaded" flag and replace it with something which only tracks player input - no automatic in-game processing events should be responsible for failing the talisman.

:lemming: The second is to draw some sort of marker to the panel to explicitly show the status of "no pause" - visual feedback provides the player with assurace that their playthrough will pass the talisman, whilst also making it easier to find the cause of any bugs, should they arise in the future.

15


Clickables and UP/DOWN hotkeys added to the MRC output screen. Doesn't really provide any additional value than simply looking at the text file tbf, just wanted to see if it could be done. If nothing else, it's practice working with the menu screens.

Pages: [1] 2 3 ... 23