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.

Messages - Simon

Pages: [1] 2 3 ... 257
NeoLemmix Main / Re: Join development team
« on: June 01, 2023, 10:44:16 PM »
The glaring bug here is that NeoLemmix doesn't tell how to cancel the replay (click into the air). I'm beginning to think that NeoLemmix should write that in big fat letters during replay.

You aren't the first to be confused on how to cancel the replay. I've heard about this confusion in Lix at least once before, and in NeoLemmix IIRC also another time before. It's a terrible problem. It has the potential to discourage new players from the hobby, and they'll never ask about it.

Welcome to the forums!

-- Simon

Lix Main / Re: Untrap Mouse with Remappable Hotkey
« on: May 31, 2023, 10:31:49 PM »
Last month, WillLem and I talked in Mumble about the mouse-trapping/freeing behavior. I changed it between 0.10.7 and 0.10.8, and it's identical from Lix 0.10.8 through Lix 0.10.10.

I forgot to write down your verdict. I believe you wanted stronger resistance, but not impossible resistance, against fast-movement-frees-mouse.

WillLem: What would you like exactly?

-- Simon

Lemmings Main / Re: New idea?
« on: May 31, 2023, 06:43:00 PM »
Welcome to the forums!

The best way to attract co-developers is to present a program that already does something fun and unique. It doesn't have to be perfect, as long as it's exciting to try. Compare it with some existing Lemmings projects here: All those projects started in the hands of a single programmer. Only over time, the projects attracted graphic artists, level designers, and extra programmers.

If you aren't into software development yourself: What would be the big new exciting idea? What do you envision that none of Lix, NeoLemmix, Lemmini, SuperLemmix, L2Player, Loap, ..., have yet? Do have a specific gripe about one of them that you want to see fixed?

-- Simon

Lix Main / Re: Lix 0.10.10 released
« on: May 29, 2023, 04:04:46 PM »
Lix 0.10.10 released.

:lix-cool: Download for Windows 64-bit -- recommended
:lix: Download for Windows 32-bit -- fallback for ancient machines
:lix: Download for Linux 64-bit
:lix-evil: Source code
:8(): Changelog
:8:()[: Issue tracker

How to update (click to show/hide)
  • Fix #452: The search for the next unsolved level works again for when the next unsolved level is not the next level. Before, from 0.10.6 through 0.10.9, the end-of-singleplayer screen showed only the next level.
  • Fix tooltips: When you hovered over a platformer or builder, the tooltip would always instruct you to queue, even if you had, e.g., miner selected in the skillbar. Now, the tooltip to queue appears only for the same selected skill.
  • Tweaker lines have white text when you hover over the corresponding lix.
  • When you erase an assignment via the tweaker, the tweaker will also erase all assignments to the same lix in the same or a future physics update.
  • Add Kingshadow's Rescue Reduction, a new multiplayer map for 3 through 8 players that combines Rescue Rangers Double Team with Downward Reduction.

-- Simon


Radical new plan. We'll ditch the scissors button again. Reasons:
  • Wasn't nice in my own playtesting on stream.
  • Behaves like a skill (mutual toggling, only one of those buttons can ever be active), thus goes into the skillbar. But feels alien in the skillbar.
  • Unclear what you can do with it on first sight.
  • I have other solutions for the design problems that prompted me to create the scissors button.
The design insights that suggest other solutions:
  • I want to avoid air misclicks during insert mode that cut the replay and thus lose data. We can do that by disallowing { air clicks cut replay } at certain times. We don't necessarily need a new button.
  • I see a lix on the map and want to erase her future. We can support that by better association between lix and their tweaker lines. E.g., we can highlight lines of the hovered lix (will be in 0.10.10). We can also highlight the lix of a hovered line (not implemented). It's not 100 % necessary to click the on lix to erase the assignments, we can also click on the assignments in the tweaker, which should also feel nicer.
  • In a multi-hatch level, especially in a disjoint union, I want to see which assignments go to which hatch, or to which level component. We can solve that by re-labeling the lix: Instead of a running count across all hatches, we can label the lix <hatchID><runningCountFromThatHatch> (not implemented). E.g., with three hatches, we'll get lix a0, b0, c0, a1, b1, c1, a2, ...
In Lix 0.10.10, we only have the highlighting of tweaker rows for the hovered lix. That's a standalone improvement. I'm happy to add that ahead of time, regardless of what we'll eventually implement for inserting.

If I don't want a scissors button, then how do we choose between cutting and inserting? We can tie the insert mode to user options. I believe that I want to be in insert mode 90 % of the time. With the options in this screenshot, I'd check both of the bottom Insert Mode options.

The downside is that it's harder to discover, and I'll need tooltips.

I haven't tried an insert button yet, I merely know that the scissors button is not so nice. It would be another option (good default?) to have an option for an insert button. I.e., replace the bottom two bool opions in the screenshot with radio buttons:
  • Never insert,
  • always insert,
  • insert only when tweaker is open,
  • insert only when insert button active, which starts off by default. And you get the button in the panel only when you pick this option. This can be default.
Odd thing though and more elaborate to tie the panel button layout to user options.

We can even consider a button that only cuts the replay, without creating new modes. Heretic idea! What a waste of panel space! But after all this design pondering, it doesn't sound as far-fetched as before. I still don't want to make one yet.

-- Simon

Lix Main / Re: De-Cluttering the Panel: Fewer Non-Skill Buttons
« on: May 27, 2023, 08:22:14 AM »

The scissors button will go away again. And I won't reintroduce the zoom button either.

The restart button will become larger again (half-skill height instead of crammed in the top row) to fill half of the void. I don't know yet what to do with the second half of the void. Please play some mental tetris with the buttons!

-- Simon

Thanks for the feedback!

-- Simon

Stream is over. Recording will remain for 14 days at:

I spent another hour on Metal City Mayhem, haven't solved it. I think I've sunk 2-3 hours total into it so far, plus subconcious brainstorming between streams.

I solved Behind Bars in 1 hour and 20 minutes, minus a few side conversations with the stream chatters. Replay attached. I remember how I helped Proxima backroute-fix Behind Bars 8 (?) years ago. Since then, I've completely forgotten the solution. I re-solved it today from scratch.

Next, I think I'd like to work on alternate ideas for replay cancelling than the scissors button: More user options on how/when to cut or insert based on whether the tweaker is open or not. Maybe you always want to insert, or only when the tweaker is open, we'll have to see what good default options are. I'll post it all in the scissors button topic.

-- Simon

The UI bugs from the previous stream (Sunday, May 21st) are now fixed.

For the next stream: I'm still not sure if the scissors button is really the best UI. We'll see. The main point of the stream is to test the scissors button myself more. Maybe the levels are getting too difficult for your entertainment, I can't promise anymore that I'll solve anything.

-- Simon

General Discussion / Re: geoo visits Simon, February 2023
« on: May 23, 2023, 07:57:50 PM »

Here is the story about NieSch's Tomb of Doom from Level Design Contest 27.

The image shows the lower half of Tomb of Doom. geoo and I each played on our machines next to each other. We tried for half an hour to find an efficient way across the lower-left pool.

Eventually, geoo said: "I want to use the Highland-10 trick to fling a worker out of the water pool."

L2 always flings lemmings upwards, even if they're below the epicenter of a flinging explosion. This method allows to save 100 % on Highland 10 instead of the intended lose-1. As in the gif, you mortar close to the faller, thus fling the faller to the bottom-right side.

You can even use a variant of the trick where you don't fling a faller, but a drowner, which will fly upwards out of the water and thus survive.

Well, this is all very nice in theory, but Tomb of Doom doesn't give us any mortars. namida never added flinging to NeoLemmix, thus the Highland-10 idea can't lead to anything promising. Right?

Spoiler for Tomb of Doom (click to show/hide)

NieSch, thanks for the most memorable a-ha effect of the contest-solving weekend!

-- Simon

Test Release 3 - 20/01/2022, Linux release (probably same for Windows)

The installation of L2Player tells us to extract it into the same directory where our L2 sits. This seems only necessary for the first successful run of L2Player because L2Player now extracts the L2 resources into its own tree that L2 cannot see.

The problem is that both L2Player and L2 contain several files in their root directories, and it's hard to separate the two programs later. E.g., if L2Player gets new files or drops files from its release, it's hard to wipe L2Player and cleanly reinstall. For now, I've duplicated the L2 files into L2Player's directory because I don't trust L2Player yet, it's a new program for me. :-)

I'd like a way to point L2Player to an L2 installation elsewhere for resource extraction. I expect L2Player to only read from that L2 path then, not modify any files in it. It's okay to continue to extract from the working directory if I don't explicitly point L2Player to an L2 installation.

The first idea that comes to mind is a command-line option, e.g.:
$ L2Player --extract-from=/path/to/l2/
or, if you need it more often than only during first run:

But anything is fine for now, e.g., you can ask me at runtime, or you let me edit a line in a config file. Or even declare it low priority. It's not so hard to duplicate L2 into L2Player.

If L2Player has already extracted the resources, I expect to run it later without pointing it to L2 again. In particular, if you don't give me a way to point L2Player elsewhere, I'd like to know how soon I can remove the duplicated L2 files in L2Player's root dir.

-- Simon

Test Release 3 - 20/01/2022, Linux version
  • Download and extract the Linux release to new directory.
  • $ chmod +x L2Player
  • Copy an entire L2 directory over the same directory, so that L2Player and L2.EXE now sit in the same directory.
  • Run L2Player. It extracts many files, then crashes with log below.
  • Look at ./data/music/: This directory contains only one file, Readme.txt.
Code: [Select]
PCMA: Load ./data/cache/sound/sound_77.pcma
PCMA: Load ./data/cache/sound/sound_78.pcma
PCMA: Load ./data/cache/sound/sound_79.pcma
Cached 80 sound(s)
SpriteSheet: Calculated 102 font widths for ./data/cache/font_0.spt
SpriteSheet: Calculated 59 font widths for ./data/cache/panel_2.spt
SpriteSheet: Calculated 102 font widths for ./data/cache/font_0.spt
SpriteSheet: Calculated 102 font widths for ./data/cache/font_0.spt
Starting OpenAL... 1.1 ALSOFT 1.23.0, OpenAL Community, OpenAL Soft
AudioStream: Unable to find file ./data/music/title.mod
PlayStream: Error - Object reference not set to an instance of an object.
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
   at SharpMik.Player.ModDriver.MikMod_Exit_internal() in C:\Dev\Retro\Lemmings2\SharpMik\SharpMikCore\Player\ModDriver.cs:line 535
   at SharpMik.Player.ModDriver.MikMod_Exit() in C:\Dev\Retro\Lemmings2\SharpMik\SharpMikCore\Player\ModDriver.cs:line 549
   at L2Player.AudioStreamMOD.CloseStream() in C:\Dev\Retro\Lemmings2\L2Player\L2Player\Audio\AudioStreamMOD.cs:line 73
   at L2Player.AudioPlaybackEngine.PlayStream(String fileName) in C:\Dev\Retro\Lemmings2\L2Player\L2Player\Audio\AudioPlaybackEngine.cs:line 118
   at L2Player.Game..ctor() in C:\Dev\Retro\Lemmings2\L2Player\L2Player\Game.cs:line 84
   at L2Player.Program.Main(String[] args) in C:\Dev\Retro\Lemmings2\L2Player\L2Player\Program.cs:line 91
Aborted (core dumped)

Expected instead: If I have no music, I can still play without music.

./data/music/Readme.txt says: "If you don't like the midi versions of the music, you can place .mod or .it (Amiga Tracker) versions here [...]" This sounds as if you want to ship midi music with your release. Do you want to ship midis?

-- Simon

Test Release 3 - 20/01/2022

The Linux release contains OpenAL32.dll and wrap_oal.dll. The Linux executable is a native 64-bit ELF, and it runs as expected even when I delete both DLLs:

Code: [Select]
SpriteSheet: Calculated 102 font widths for ./data/cache/font_0.spt
Starting OpenAL... 1.1 ALSOFT 1.23.0, OpenAL Community, OpenAL Soft

Thus, you can omit OpenAL32.dll and wrap_oal.dll from the Linux release. You already instruct to install OpenAL natively.

-- Simon

Stream is over. lemforum/Hopeless: Metal City Mayhem and Las Ranas Hermanas, both still unsolved. I showed some bugs in the reworking towards the scissors button. Lots of things to do.

-- Simon

General Discussion / Re: geoo visits Simon, February 2023
« on: May 20, 2023, 02:48:02 PM »
Oh dear, did that level also cause frustrations? :laugh:

No worries, Tomb of Doom produced a strong a-ha effect, and we never had execution problems. I can guarantee that it won't be a rant!

-- Simon

Pages: [1] 2 3 ... 257