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 ... 5 6 [7] 8 9 ... 276
91
Clicking the R in status bar: Yes, promising idea. The R is the visible UI element for replaying, it makes a sense to click that to cut the replay. If you animate it -- it doesn't even have to be glaring -- it will pop in the panel area. E.g., a play arrow ▶ that moves through it. It's clearer and less glaring than cheap color-changing the entire R. Let me know if you want me to draw such an animation.

The status panel has been a safe zone for clicks. If you click the panel, you don't misclick buttons yet, and neither you mis-cancel the replay (as clicking into the main map would). Now, we'll sacrifice this safe zone for newbie-friendly UI. Hard to give a final verdict. My hunch: If you want to try this, let's do it. Saving a few newbies' sanity is worth it. Or leave the bottom 10 % of the status panel as safe zone. >_>

Lemmini R: Adding the pulsating R in the main map is similar. Because you'll put it on the map (not in the panel), when we click that R, we have clicked the map, and NL will cancel the replay even if you don't write extra clicking code. It's the same in Lix: The wobbling R is in the corner of the map, and clicks go to what's on the map behind the R -- air, usually, and that cancels the replay.

Here, I'd only warn about making it too big, because it will appear constantly in pepole's solution videos on youtube. Big enough to attract new players' clicks, but no bigger.

I'm happy to try either idea: Moderate animation to the existing NL panel R, or your Lemmini R in the main map.

Indeed, Saxdude's first guesses in the panel are: Restart, pause, and then button with the R (which loads replay and doesn't solve his problem). This is promising. Only afterwards, he tries clear-physics and force-direction. He also clicks the status bar (lemmings out, goal flag), even though I haven't seen him explicitly click the red R in the status bar.



Dialogs: Let's try other ideas than dialogs first. Dialogs break the game flow (you accept this), but people still won't read them, and even if they read a one-shot dialog, they'll have forgotten it when they return in half a year after 10 minutes with a distraction. Don't put important info only in a one-shot dialog.

Option to disable replay: No strong opinion. I'd wait. We have seen people want this, e.g., Dave4 wanted this, but only after he failed to cut the replay. We'll have to see if people still want this after cutting the replay has become obvious for new players.

Cursor: Bug #400 on Lix: Scissors mouse cursor while replaying is an unrealized feature idea. I'd like the ingame cursor (crosshairs) to show scissors. The idea is that you can now click to cut the replay. It's more feedback, but untested. In NL, I'd only try this together with our other ideas.

-- Simon

92
Session is over! Recording will remain for 14 days at: https://www.twitch.tv/simonnaar

-- Simon

93
SuperLemmix Bugs & Suggestions / Re: [SUG][EDITOR] Cross Compatible Editor
« on: February 17, 2024, 01:35:33 PM »
I'll guess: The grid-based piece viewer is a tile browser with a large two-dimensional area that displays many tiles at once, laid out two-dimensionally instead of tiles all in a line. Ideally, you have the full tileset on the screen at the same time.

Pop-out is GUI speak for showing some parts of the editor's functionality in a separate window from the main program window. You can resize the windows independently. The deluxe variant is when the popping-out is optional and you can dock the pop-outs back into the main window.

For the search bar, I won't guess. Certainly, searching across tilesets is strictly more powerful, but I don't know if Giga needs an in-tileset search or an across-tileset search.

-- Simon

94
Interesting approach to move some tasks away from the overloaded ruler.

The hatch drop is 100 % local and doesn't need a mobile ruler. You can stick the splat marker for a hatch into the hatch's hover-during-clear-physics information, i.e., it appears whenever the red-yellow nub appears.

Climber ceilings are mostly local, too. From only a gut feeling, ∫tan x dx's annotated trajectory sounds like it's enough, that's cool. Still, you have to fetch a climber first. Can we add more clarity than the red color, for accessibility?

For the walker part, the movable ruler sounds like largely forced design. When you want to measure, you don't necessarily have all three of (1) the high ground, (2) the low ground, or (3) the walker nearby. Often 1-2 of these are missing. Sometimes all 3 of them are missing. The case when both grounds are missing is an argument against aggressive snap.

Downside to all this: You scatter the information across 3 unrelated features.

An argument for snap: Snap removes your need to remember whether you have to stick the red bar (D) in the ground (correct), or whether you have to put it on top of the ground (wrong), or, likewise, the top end for walkers.

But the red marker (D) is itself the source of inclusivity/exclusivity questions. Cut off the red marker, and keep only the white above. Obviously (I hope?) you must place the wite area on top of the low ground then, and you've reached the design of mobius's simple stick/line.

-- Simon

95
NeoLemmix Main / Re: People getting confused by NL's auto-replay
« on: February 17, 2024, 04:27:53 AM »
auto-replay optional and off by default
many players will miss out on what is actually an extremely useful feature.

It pains me that off-by-default can be reasonable. It's simple and kills the confusion directly at the root. But I'd rather wait with this until several other ideas have failed -- including trying more things in Lix and discussing applicability to NL.

Both user stories (Dave4 and Saxdude26) show the annoyance only when assignments replay after restarting the level from the very beginning. That hints us at offering two modes of restart: Restart with replay, restart without replay. IIRC WinLemm did this? Not overly elegant, but at least it's a way to do it without printing text during play. I'm not recommending for or against it; it's one idea.

Our sample size (2 new players) is still small. Maybe we find more stories where the replay annoys people after rewinding. Then we can't fix it by merely offering two ways to restart. E.g., mobius wanted the option to turn off replay-after-rewind, i.e., to make rewind immediately cut all rewound assignments. It looks like this user option also saved Saxdude26's sanity, in a roundabout way.

-- Simon

96
From the hatch! How would you even measure pixel-perfectly from a hatch? I know that the hatch show red-yellow nubs during clear-physics mode. But then the ruler supports that outside clear-physics mode.

I've experimented. Assuming we should measure from the clear-physics-mode nub: C is from the hatch. Hatch fall distance is shorter than regular walker fall distance.

If you stick C on the yellow center of the yellow-red nub and D inside the ground, the lemmings will splat. I conclude that both C and D measure death. To measure with the ruler, you must stick D into the ground (not onto the ground), and then C will tell you the first deadly pixel.

Since C is for the hatch, B must be for regular walkers.

Again, if you stick B inside the highest solid pixel of the high ground (where the walker's pin is before his fall: the pin is under the foot inside the ground) and D inside the highest solid pixel of the low ground, you have the smallest deadly fall. Again, both B and D measure death. The maximal survivable distance is: One of them is inside the ground (high or low) and then the other ground level is inside the white, not touching B nor D.

I grant:
  • It's hard to visualize inclusiveness/exclusiveness. E.g., how to show that you're supposed to stick the red bar inside the ground.
  • It's consistent: Both B-D and C-D measure death. Usage of B-D and usage of C-D is near-identical.
-- Simon

97
NeoLemmix Main / Re: People getting confused by NL's splat ruler
« on: February 17, 2024, 02:36:10 AM »
I remember that the inside markings (C in the image) are for walkers (edit: wrong, see my next reply; B is for walkers), and I don't use the outside markings. I assume both outside markings (A, B) are for climbers (edit: again, wrong, only A is).

I don't know if the red bars (C, D) at the ends are inclusive or exclusive. I use the ruler for rough measurement, and if a single pixel counts, I experiment. (= I let one splat and rewind.)

-- Simon

98
NeoLemmix Main / Re: People getting confused by NL's auto-replay
« on: February 17, 2024, 02:30:19 AM »
Quote from: mobius
There's no simple solution; [...] in game text may be the best, or at least easiest option here.

Right, there is no easy answer.

Most quality-of-life features can sit at the side and will never get in the way. The replay is insidious because it triggers automatically and there is no clear way to cancel it. You must do something to stop the game from doing something.

Text can be one way. Although it would need an entirely new way to display text; you can't overwrite anything in the status panel because everything in the status panel remains important during replay. (This is unlike: Don't exit on losing all lemmings.)

There may be better ways. Maybe multiple things together are good.

Even in Lix, where I redesigned the replaying feedback after Dave's 2022-02 post, we can do more. I should write down the full story for Lix's replay cancelling, both to improve Lix and as a grab-bag of ideas for NL/SLX/Lemmini/...

Splat ruler confusion is its own topic.

-- Simon

99
NL doesn't tell the player during play how to cancel the replay. This confuses random reople on the internet. You don't always have the luxury of people reporting their confusion here.

I believe that this is far more annoying for new users than most experienced players assume.



Example from 2022-02:
Bug: Uncommanded clicking

Dave4 creates an account on LF specifically to report this bug. This report was his first post.

Dave used to work around this by exiting NL entirely, then restarting NL.



Example from 2023-06:
Join development team

yoyoz files the automatic replay as a bug, and has already changed the NL code to fix it: "There is a problem when you click on restart button: Same actions are replay. I have fixed it. But for the moment, i havent found where fix when you restart the level with the menu screen."



Example from 2023-07 that I found today:
https://www.twitch.tv/videos/1878712696?t=0h17m23s -- watch from 17:23.

Saxdude26 fumbles in the NL ingame UI and level selection UI for 3 minutes. He restarts several times, which doesn't solve his problem. He saves the replay to disk, which doesn't solve his problem. Eventually, he goes to the options (dialog doesn't show on stream) and (presumably) disables replay after backwards frameskip. That's his solution -- he cuts highly useful things. Ends with: "Do I like having replays? Yes. Do I like that it keeps replaying when I restart the level? No."

He hasn't clicked air in those 3 minutes. He has clicked practically every panel button, but never the air. Why should he click air when NL doesn't nudge towards clicking air?



Writing these down because WillLem is considering ingame text over status panel for Don't exit on losing all lemmings.

-- Simon

100
Lix Main / Re: Implement Rewind to Last Assignment Like NL?
« on: February 16, 2024, 11:29:26 PM »
All right, I've drawn this in 1x and 1.5x so far.

Edge case design question: What happens when we activate this new rewind button, but there is no earlier skill assignment? Ideas:
  • Don't allow it. Hide this new rewind button entirely. While it is hidden, widen the restart-from-beginning button (make it as wide as it is in the current stable, e.g., 0.10.19) and endow the restart button with the rewind's hotkey.
  • Do nothing. We show the rewind button, and you can click it, but nothing happens on activation.
  • Restart from the beginning. Pause, because this rewind button normally pauses.
  • Restart from the beginning. Unpause (you can then watch the hatch open at normal speed) because the restart-from-beginning button normally unpauses, and the rewind behaved like the restart-from-beginning.
Leaning towards #1 (hide button), which seems clearest. Problem: With #1, buttons appear and disapper during play. If you convince me that #1 is bad, I'll lean towards #4 (restart from beginning and unpause).

Pie-in-the-sky downside of #1: If we ever make this new rewind-to-assignment button a two-task button (react to LMB and RMB), and make RMB clicks skips to the next skill assignment, we can't hide the button meaningfully anymore. But two-task UI sounds bad here, usually the second task is a better version of the first (e.g., fast-forward with second mode turbo-fast-forward), not an inverse version.

-- Simon

101
LemGame refuse to run the update routine if all:
1. 2. 3.

Yes, for the freeze, this is a good approach, and it doesn't need messaging nor extra state tracking.

Quote from: WillLem
That's 38 characters, the panel allows 45.

Sounds doable, yes.

When you overwrite this status panel, you can't display its usual values. Most values have become irrelevant by here (we know that 0 lemmings are in hatch, 0 lemmings are in level), but I like to look at by how many lemmings we fell short of the save requirement. I'd nudge you to still show this (how many more to save) at all times.

Maybe we want the time limit here, too, but I have no experience. The time limit doesn't sound as important to show (i.e., by how much we fell short of the save requirement feels more important). Or ditch half of the message, only show "skip back or restart", or "rewind or restart", or ...

In a pinch, if you don't show a value, we can rewind 1 or more ticks to view the regular panel.

Quote from: WillLem
Which nuances will determine how the re-write looks.
option to unpause the game and continue into the "no lems" state
need more community feedback

Right; others, please join the discussion.

-- Simon

102
Lix Levels / Re: Simon streamed Lix: Wed, 2024-02-14, 17:00 UTC
« on: February 14, 2024, 05:06:33 PM »
Stream is over. We played geoo's new pack, third stream so far.

Recording will remain for 14 days at:
https://www.twitch.tv/simonnaar

-- Simon

103
what binaries are in this context?

Here: An NL executable. I can't build it myself from source here.

Generally: Executables, DLLs, static libraries. Program code in CPU-consumable form instead of human-readable source code.

Ah, you've released an entire experimental build. Thanks! I'll test it this weekend at latest, and you'll have feedback by Monday.

Is suspend the same as pause?
prevents player input and releases the mouse.
wants input from the dialog before gameplay can be resumed.

Okay, you decide if this is appropriate. It sounds as if NL stops reading hotkeys during suspension, which would be a problem. We want hotkeys active throughout this; we usually want to rewind.

You say it wants input from the dialog, but we don't plan to add a dialog.

pause when you are running out of lemmings, not when you have run
pauses at the frame the very last lemming is removed.
prefer something other than this?

Two answers.

1. It's indeed good to end when the last lemming is removed. It may be even nicer to end when ((the last lemming is removed) and (no triggered trap is eating anymore)).

2. It's possible you didn't get the nuance. To be safe, I'll rephrase: Your problem is that your code re-pauses too often. My reply was that this pausing should originate from actively running out of lemmings (which can only happen if we still had lemmings before advancing physics during this very iteration of the program main loop) instead of from having run out of lemmings (which is still true in future main loop iterations, regardless of whether we advanced physics again or not).

namida and I recommend nearly the same solution. The difference is: namida wants to track state (has he messaged you before). I want to generate the pause as a result of advancing physics, which won't happen again until you rewind. My solution needs no extra state, but ties the check to parts of the code (physics, or at least the game code that triggers physics advances) that don't care about UI. I don't know enough NL internals to tell you what's ultimately better.

skip of, say, 1000 frames overshoots by a significant amount

Yes, this is problem #1 that you should address.

Problem #2 arises from holding a skip hotkey down. The held key generates keyboard input for every iteration of the program loop. In 2023 NL, such skip input will advance physics even during pause, which is fundamentally good. But here, the skip will ignore your pausing. I hold the key down, I reach the end, your code pauses, my held key generates more inputs and completely bypasses your pause. Now I've overshot by many multiples of the single skip length.

freeze the game instead, then I agree visual feedback is absolutely necessary.
work with the limited skill panel display

Yes, 100 % agree that this is the biggest task in implementing a freeze. To make it lovely, you'll have to design visual feedback unlike anything in NL. I have no easy answer. More on this later.

Quote
benefit to freezing physics (as opposed to pausing the game) that I haven't yet become aware of...?

Also more on this later.

-- Simon

104
Another downside to pause (vs. freeze): When you hold the 10-second skip, you will skip 10 seconds regardless of the pause. You'll overshoot far into dead state.

I skip 10 seconds more often in NL than in Lix when NL's regular fast-forward isn't fast enough. It's practically a stronger but fickler fast-forward.

I don't have playtesting results from NL + pause-at-end yet. I expect to reach the end with repeated 10-second skips moderately often. Better verdict will have to wait for playtesting.

Your argument against the freeze was that you suppose player confusion. Your argument was never about the usefulness of the dead state. Thus: Have you considered the freeze plus better feedback in the UI (instead of the pause)? If you improve the UI feedback, please avoid dialog box, it eats hotkeys.

-- Simon

105
Menu looks good to me. Looks like you can support namida's/Icho's ideas without overly much extra work or extra menu space. And you've already thought of disabling the Pause checkbox when we want to always exit.

You haven't attached binaries yet, therefore playtesting has to wait until you do. (I still haven't gotten a Delphi build toolchain to work on Linux.) I'll be happy to playtest during the weekend. Or you focus on development first, and I'll find more time later in the month.

Quote from: WillLem
suspended

Is suspend the same as pause? You didn't like the absolute prevention of further physics updates (= what I called a freeze, but I don't know a best name either). You wanted the regular pause, which the player can unpause.

Quote from: WillLem
immediately gets suspended again because the check for no lemmings is still returning true
sane way to fix this

If the check works well already, you can alternatively be happy with a freeze that you can't unpause. :P Assuming you really want to add more logic here:

You want to pause when you are running out of lemmings, not when you have run out of lemmings. Therefore, it's conceivable to move the origin of this information into/near physics, because that's when we run out of lemmings.

When, at the start of a physics update, you still have lemmings, and you've run out of lemmings after this physics update, then a result of this physics update is that the UI should react (to losing all lemmings). The physics update doesn't care of how exactly to react; the UI will look at the user options.

This avoids state (no need to remember whether we've already paused for loss) but puts UI-relevant logic into physics (which we usually want to avoid). The physics already tell the UI about many things, e.g., to play sound, and this would then be one more event that the UI receives from the physics.

I haven't checked the NL source if this is easy, or even if it's sensible at all for NL.

Even in Lix, where I have a dedicated class for this concept (EffectSink) of ferrying eye/ear candy (sound commands, commands to generate explosion debris, commands to make a flying pickaxe, assignment arrows, ...) from physics into the physics-ignorant part, I'd have to write extra code to pry the message from the EffectSink into the speed logic (which so far is completely independent of the effect sink).

namida shows sensible feeling already in the wording ("message") instead of treating this purely as a state check. It may be wrong in NL to put it in the physics, but even elsewhere, it's still good to think of this particular pausing as a message/event, not as a continuous situation.

-- Simon

Pages: 1 ... 5 6 [7] 8 9 ... 276