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 - Simon

#91
Lix Main / Re: Lix 0.10.30 released
February 23, 2025, 06:39:35 PM
Lix 0.10.30 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
Quick and dirty: Extract over your old installation. Level moves will then result in duplicate levels that remain in your level tree.

Clean method: Extract to new directory, then copy these directories from old Lix into new Lix:
user/
replays/
...and any levels that you've built yourself or added manually.



  • When the mouse hovers over a gadget (hatch, goal, trap, catapult, ...), the panel explains the type of the gadget and some of its properties, e.g., in which direction and how strongly it flings the lix.
  • Updated Allegro 5 DLLs to the hotfix version 5.2.11-nightly.20250218. This fixes the broken Alt+Tab and broken Winkey from Allegro 5.2.10 on Windows with the Direct3D backend.
  • A replayed assignment plays its assign sound a quint lower and 2 dB quieter.
  • Shorten the lifespan of the three flying pieces of debris after a digger has hit steel, to avoid clutter in multiplayer.
  • Add sidekick mouse cursor. When you can click to cut the replay, a little pair of scissors appears next to the main cursor. When you can insert, a plus sign appears next to the main cursor.
  • Fix #495: The outcome screen, after playing singleplayer level that generates the warning about huge levels, typesets the warning properly on the level's preview image. Before, the warning bled into the level name.
  • When an internal image is missing, e.g., the mouse cursor, don't crash, but show fallback text instead of the image.
  • When a translation string with format specifiers (%d, %s, ...) fails to conform to expectations, log the bad translation only once per program run. Before, the same bad translation could appear several times in the log file.

Levels:

  • Add 34 new multiplayer levels by Hyperlodge.
  • NepsterLix: Fix backroute in Miner Preservation Society. Fix typos in Introducing Climbers, Cannonballs in the Air.




-- Simon
#92
Stream is over!

-- Simon
#93
Quote from: WillLem on February 15, 2025, 11:45:23 PMassignments that fail due to an existing assignment at the same frame don't advance physics

... but all other failures to assign still advance physics: You select basher, you click on a basher, and physics advance from this failed assignment.

I agree that this combination a good choice to try in public. I'm not sure if it's absolutely best and I'd like to see feedback.

Reason: I've experimented with non-advancing failed assignment in Lix singleplayer streams. It wasn't fun to block all failed assignments from advancing physics. When an ascender/hoister is still ascending, but we know that he'll be assignable within 1-3 physics updates, I'll select builder and click on him several times. This ensures that he builds ASAP. I didn't know that I used this pattern until I removed it experimentally, and I'm putting it back in. :lix-grin:

-- Simon
#94
The next stream was Saturday, 2025-02-22.

More Nepsterlix. My solutions to 5-of-all, Moon, Planet.

I was happy with the UI during the stream, and released Lix 0.10.30 after the stream.

-- Simon
#95
Daniel, I think all of these 34 maps are good for inclusion. Thanks for taking the time to make all the exits and hazards visible! I'll include these maps in the next release.

I'm still planning to release 0.10.30 this weekend.

-- Simonn
#96
Lemmini / Re: Lemmini bit handling
February 19, 2025, 12:48:27 AM
All right, Friday, 21st, 19:00 UTC.

-- Simon
#97
Lemmini / Re: Lemmini bit handling
February 18, 2025, 11:07:46 PM
I can offer Friday, 21st, 19:00 UTC.

Consider splitting the physics map into two parts. There will be a dumb part for terrain/steel/..., no gadgets. In the dumb part, every pixel can any subset of those types, and the logic will be outside the physics map. This is useful because the program wants dumb pixel data for existing logic elsewhere than during level initialization.

The second part will be gadgets, where every pixel stores at most one gadget and has the prioritisation logic and retrieval logic. If you want at most one gadget per pixel, then design your class to hold at most one. Design your problems out of existence.

Split the long level initialization into smaller methods. You'll find parts that can move into different classes.

Bloaters: Long methods, ...
Youtube: Venkat on Core Principles

-- Simon
#98
Stream is over! Recording will remain for 14 days at:

https://www.twitch.tv/simonnaar

-- Simon
#100
Lix Levels / Re: Competitive Multiplayer Levels
February 16, 2025, 08:32:04 PM
Ah, you meant me, not Hyperlodge.

I'm busy this week (stream on Tuesday, feedback for Hyperlodge on Wednesday) and can't schedule anything yet. I don't have to play them all to give the feedback.

-- Simon
#101
Quoteinconsistent
might have misunderstood

I meant: In NL 12.14, all replayed assignments sound the same (all play the regular assignment sound effect). In your RC2, only some replayed assignments will sound like that. Those replayed after a failed click will produce no sound. This will be less consistent.

But it's decent. It's better than (advance physics + play sound for successful assignment).

Next week, I will playtest in Lix: Replayed assignments sound different than freshly clicked assignments.

Quotenot advancing physics on a mouse click would be inconsistent.

The intuition here was: If you can't give the player what he wants the most (assignment), give nothing. Don't give 30 %. Fail as clearly as you can.

The alternative to make all click failures not advance physics. E.g., player clicks to assign basher to basher, physics shouldn't advance. Then that not-advancing will be consistent with the not-advancing on failures that come from old assignments in the replay. You'll also preserve the sound consistency; all replayed assignments produce the same sound.

Quoteuser cannot assign on the next frame anyway, so physics might as well advance

Hmm.

He can change the release rate, but that would be a feeble argument.

He can delete the old same-lemming assignment, then assign. If you advance, he'll have to rewind, then delete, then assign. I'll sleep over this.

Quotelet the user know why it's failed
physics might as well advance
original assignment is seen

The original assignment can be elsewhere in the level, for an unrelated lemming.

This will remain a design problem even if you eventually allow same-lemming overwrite as an option. I have no good answer for this.

QuoteWhat sort of feedback do you imagine?

No idea yet. This design problem is entirely new. I was curios how satisfied you were with the RC's feedback on failed clicks. Yes, assume that we solve all technical problems, e.g., how to fetch this information from the replay.

I agree that we shouldn't make things look like bugs. Generic crossed-out cursors or no-signs won't clarify the reason behind the click that is going fail. Some leeway you have, it's a corner case in an expert feature.

If you're happy with what you have, release CE 1.0 with what you have. It's better than NL 12.14 because it prevents accidental different-lemming overwrites. We can solve the hard design problems in March. And user options for same-lemming overwriting (really: cut future of that lemming, then assign) can also wait.

I don't mind going 5 times in circles with this. You're the first to shred the Lix design choices. I wonder if I want to make it a user option in Lix whether air clicks in insert mode cut the replay.

-- Simon
#102
Next stream will be Tuesday, Feburary 18th.

I'll play more NepsterLix.

Assignments from clicks will play with the usual sound (ding). Assignments from replays will play with a different sound: The ding lowered by a quint. Let's see how this feels in practice. I've even made it a purely-intonated quint, and it's −2 dB from the original ding.

I've removed the big scissors cursor again. Reason: In the previous stream on Feb 9th, I wanted to point at things with the crosshair, but I had no crosshair because the entire cursor turned into scissors.

Now, you'll always have the crosshair. The small sidekick will be scissors when you can cut the replay.

-- Simon
#103
Lix Levels / Re: Competitive Multiplayer Levels
February 13, 2025, 04:24:58 AM
I've received them, 34 level in total.

I'll look through them in detail next week, and give you feedback by Wednesday or Thursday. I'm planning to release the next version of Lix around Sunday, February 23. Happy to include these levels.

-- Simon
#104
Yes, I hear both the successful old assignment and the short click for the failed assignment. I didn't notice that yesterday.

I agree that you shouldn't play a successful sound here.

On a click that will not assign, don't advance physics in the first place? Play only the failed assignment. Then you won't have to introduce inconsistencies. On air clicks, you probably want to advance physics, but air clicks are safe, can't mistake air clicks for a wanted assignment.

Wondering if you want to tell people before the click that the assignment will not go through.

-- Simon
#105
Quote from: WillLem on February 11, 2025, 01:42:52 AM
Quote from: Simon on February 10, 2025, 10:54:43 PMabsolute overwrite prevention into the next release.
It should already be in the RC...?

Ah, yes, RC1 prevents all overwrites. It behaves as follows. Situation:

  • Replay contains old assignment for the next tick.
  • Activate insert mode.
  • Point to a lemming that would normally (= if nothing were in the replay) eligible to be assigned.
  • Click.

The game then does:

  • You hear an assign sound.
  • The replay stays as before the click. You didn't cut, you didn't insert.
  • Physics advance once.
  • The old assignment replays.

This UX is problematic. You hear the expected assignment sound exactly as after a successful click, and the physics advance, too. But the click didn't produce what we wanted. It feels like a bug.

It's outright misleading when we assign permanents that will do nothing on the immediate next frame. The potential assignee does exactly what he would do if the click's assignment went through: Walk forward once.

-- Simon