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 ... 274
1
Lemmings Main / Re: DOS Game Club on Lemmings 1
« on: March 24, 2024, 04:09:16 PM »
Recording done. Editing usually takes a few weeks for them. I'll link it here when it's published.

Mostly Lemmings 1 with its history and oddities. Some tenets of custom level design. Short glimpse into L2, L3, other licensed games.

-- Simon

2
write the current desktop resolution next to the input fields to minimize user errror.
get_desktop_resolution

Yes, this sounds like a great idea: Print the monitor's native resolution as a hint, but allow the user ignore it. The game doesn't try to be smarter than the user then.

get_desktop_resolution is the A4 way; the A5 way appears to be al_get_monitor_info. I'll have to research what to do with multiple monitors.

-- Simon

3
SuperLemmix / Re: [SUG] Object culls
« on: March 23, 2024, 06:25:29 AM »
Splitters are particularly problematic code-side

What issues do you see code-wise?

At best, I see how splitters can be boring when you send too few lems through: 50 % of the time, a splitter does nothing but prepare itself for the next time. namida grabbed it from L3D, where it rotates by ±τ/4 all of the time instead of 50 % of the time, in hope that it works well enough in 2D. Reminds me of how I hopefully took the walker from L3, where it either turns or cancels, but oddly never both.

-- Simon

4
Lemmings Main / Re: DOS Game Club on Lemmings 1: Want to join?
« on: March 22, 2024, 03:25:48 PM »
12:00 UTC on Sunday, March, 24th we will start the call and the recording. Ideally,

-- Simon

5
Lemmings Main / Re: DOS Game Club on Lemmings 1: Want to join?
« on: March 21, 2024, 10:03:37 PM »
WillLem, yep, happy to have you join. Haven't yet heard back from you yet. How is it?

Would somebody else be up to join if WillLem can't make it? It's well possible that you're deeper into custom levels than I've been, that you've been around Lemmings Forums longer, ...

In a pinch, it's fine if I'm the only one from the forums here to join.

-- Simon

6
I found no bugs in your attached executable. Nice! Haven't tested for the config-loading bug yet. Happy to playtest more.

Issues with my snippet: Ah, right, I forgot that we already talked about how NL's nuke doesn't set LemmingsToSpawn to 0; NL's nuke merely prevents the unspawned lemmings from spawning. We must account for this.

Replace: and (LemmingsToSpawn = 0)
with this: and ((LemmingsToSpawn = 0) or UserSetNuking)

It looks strange to test the nuke in two different lines of this expression, but it expresses reasonably succinct: No more lems to spawn and no more zombies about to get nuked.

-- Simon

7
Lemmings Main / Re: DOS Game Club on Lemmings 1: Want to join?
« on: March 19, 2024, 10:09:33 PM »
Right, we fix bugs in the physics nowadays. Indeed, the cultural difference is surprising in hindsight. Thanks!

MazuLems, I haven't played it properly. >_>;; I'll try to remember it for the podcast, but I'm not sure if I'm the most qualified to bring that one up. Which brings me to:

Who would like to join?

Since yesterday night, we have an open seat. Patrick, the player from their community who built a CustLemm pack, has dropped out of the planning. Nobody else but the two main organizers and I are on it, and they would be happy to have a 4th person on the podcast. The recording will be this Sunday, March 24th, some time during the European afternoon. Podcast participant guide, they use a Jitsi conference call that runs in the browser, and you're supposed to record yourself locally and submit the ~2-hour recording to them afterwards.

Hop on IRC: #dosgameclob on AfterNET.

-- Simon

8
Code: [Select]
function TLemmingGame.StateIsUnplayable: Boolean;
begin
  Result := (LemmingsOut = 0)
            and (LemmingsToSpawn = 0)
            and (DelayEndFrames = 0)
            and (fParticleFinishTimer = 0)
            and not (UserSetNuking and CheckIfZombiesRemain);
end;

Code: [Select]
procedure TLemmingGame.MaybeExitToPostview;
begin
  if fGameFinished then
    Exit;
  if ShouldWeExitBecauseOfOptions then
    Finish(GM_FIN_LEMMINGS);
end;

According to my understanding, this is now all that we need. I've moved your zombie logic into StateIsUnplayable, which is where I really believe it belongs. Let's chat about it tomorrow evening. E.g., it's still not clear if LemmingsOut = 0 is good, or if you need that lengthy addition.

ShouldWeExitBecauseOfOptions isn't touched; it's the same as in your latest commit 6091bd7887.

-- Simon

9
Quote
So - for whatever reason, UserSetNuking seems to be needed wherever it currently appears in the latest commit.

I agree! From digging the source: UserSetNuking is indeed part of the physics, not the UI. It's good that it's part of the physics, then it makes it the prime candidate to check in StateIsUnplayable, ShouldWeExitBecauseOfOptions, ..., which all care only about a reached physics state (and maybe options), never about UI.

UserSetNuking tells you if a nuke has been applied from the replay to the physics state, either now or during any earlier physics update. This is exactly what you want to know: Is the nuke active. (And it's not: Has the user double-clicked the nuke button on this main loop iteration.)

There is also ExploderAssignInProgress, which becomes true when UserSetNuking becomes true, but eventually becomes false when physics have run out of lemmings that can receive countdowns. Thus, this ExploderAssignInProgress isn't useful for us.

Let's still have a session tomorrow as planned.

-- Simon

10
Yes, Cascade 100 % is more notable than, e.g., The Great Lemming Caper. Cascade 100 % is such a drastic difference of intended solution (already not trivial) and what the community can find.

This will indeed tie in nicely with the community research on DOS L1 min-skill solutions, physics bugs, ... It's been a while that we investigated DOS L1 full-time, but in the early 2000s, we dug into L1 thoroguhly with excellent and surprising results.

Right, DOS is one of the first ports, and the development was on Amiga. DOS cuts many water objects. And DOS gives 12 builders on Triple Trouble, where Amiga gave only 10. With 10, Triple Trouble is far harder to execute.

-- Simon

11
What happens to this option when we start NL with empty options file/new installation/...?
Same thing as with every other option: a default is set (in this case, Always Exit To Postview).

Consider to change the default to: Exit only if won, freeze if lost. namida agreed that this can be a sensible default.

That will then happen to match what I saw in the settings menu after supplying the exp 3 config. If we want to debug this properly: My hunch is that you hardcoded the defaults in two different places (e.g., once in the options menu, and once in code that loads config files) and the two defaults don't agree.

Quote
@Simon - Let me know if you'd like another session on this.

I'll be available tomorrow (Tuesday) evening from 18:00 UTC through 23:00 UTC. I'll also be available Wednesday from 18:00 UTC through 23:00 UTC. I'll sit in Mumble at those times.

Alternatively, at these same times, I can stream playtesting. If you're really fast with the bugfixes, a stream may be more useful than code review in Mumble. But I'll plan for looking at code via Mumble.

-- Simon

12
Avoiding unnecessarily sharp time limits ties well into the general high-level advice: Don't make the level restrictive unless you need it to enforce a core idea. I'll see if it finds its place in the podcast.

After all, the custom level culture and game/software design is my personal background, and it's fine if personal backgrounds make it in. It's not supposed to be a purely objective review. But yes, mainly it will be about DOS L1.

-- Simon

13
Ah, right, the Amiga mods of TV soundtracks that DMA made before considering copyright. They fit the overall happy theme of the L1 soundtrack.

Will encourage Patrick to post here. He already knows the forums and uses ccexplore's music fixes for vanilla L1. Probably after the podcast only. He used to sit in the podcast's IRC channel, but he's been off recently.

Thanks for the links! I've added them to the OP.

-- Simon

14
Lemmings Main / DOS Game Club on Lemmings 1
« on: March 15, 2024, 02:36:01 PM »
Hi,

the DOS Game Club is an online community. Each month, they pick a DOS game to play. Afterwards, they record a podcast (~1 hour) about it, and publish it on their website.

The next podcast will be about DOS Lemmings 1, and I'm invited as an expert. Most likely, we'll record the podcast next week. Let's make sure that I don't forget important topics. Thus:

What's important about DOS Lemmings 1?
  • L1 was the big hit for DMA.
  • I should know the Lemmings History essay.
  • DOS L1 was one of the main ports, with SNES L1 and Atari L1. The original L1 was on Amiga 500.
  • Lemmings 1 in particular serves as the inspiration for most other Lemmings-trademarked games and fan-games.
  • Pure singleplayer (no multiplayer) on DOS.
  • Passwords, unlimited retries, no lives. Still, if you got stuck, you were stuck on a single level.
  • Execution and puzzles went hand-in-hand. E.g., it had All or Nothing, which becomes trivial in modern engines, and even in DOS L1 when you know the cursor-flickering trick.
  • Even the L1 editor manual (on Mike Dailly's site, LF forum topic) tells you: You can hide your exits.
  • The quirky soundtrack and the unused Music from TV show themes.
  • Physics oddities. It's possible to solve They just keep on coming with 0 builders by disabling steel with blocker trigger areas.
What levels from DOS L1 were iconic?
  • No Added Colours or Lemmings
  • It's Hero Time
  • Cascade, with 100 % saved
  • Hunt the Nessy, the quintessential builderfest
  • The Great Lemming Caper
  • Postcard from Lemmingland
  • Save me, it's the hardest level
  • The VGASpec levels: Beast, Menacing, Awesome
What's important about contemporary Lemmings culture?
  • Custom level design!
  • It's common to release ~100 levels as a standalone pack, like Lemmings itself did.
  • We send each other our replays to improve the puzzles.
  • Some levels are about one specific idea. Other levels are open-ended but can still be difficult.
  • Engine design, tileset design. You can get involved in other ways than level making or solving.
  • NeoLemmix is most popular.
  • Lix has single- and multiplayer.
  • 100 % focus on puzzles (ideally, 0 % execution) in NL and singleplayer Lix.
  • Lots of tooling: Rewind, replay tweaking, insert mode, ...
  • Still, ideally, your level should never need the powerful tools. Be lenient where you can.
  • We tell newbies: Don't hide traps! Don't hide anything!
  • SuperLemmix, because it points to other elements of singleplayer than pure puzzle solving.
  • Vanilla Lemmix? Lemmini? Cheapo? CustLemm? Patrick, one other participant in this podcast, has built a 10-level pack for CustLemm -- and, for sure, included a level with hidden exits, because that's fair game in 90's-style Lemmings 1.
  • Community work to find min-skill DOS L1 solutions, DOS L1 challenge solutions, ...
  • Martin Zurlinden's pack is an early quality custom pack of 30 levels, inspiring others.
Even if I'm not 100 % knowledgeable about something, it's fine: The club regulars are good researchers and acheologists. E.g., for their Jazz 1 podcast, they dug through the developers' past, had quirks to tell, and even found my table about Jazz 1 versions and the 2021 GOG patch.

-- Simon

15
We've reviewed code via Mumble and git.

WillLem had the factoring practically right even before I looked at it. There were already no bugs with the rewind-or-restart message.

We found and fixed the overshooting. The overshooting came from leftover caching information from end-of-game considerations at the start of each physics update. Such end-of-game tests must either happen at the end of a physics update, or outside the physics update. We still have to reconcile the nuke with this; the nuke shall ignore the unplayable state and continue into nuking zombies, then exit. Because of this, we'd rather not tie these decisions to the physics update -- after all, activating the nuke to continue is UI, not physics, and only then it adds the nuke entry to the replay and nuke in the physics.

NL's 2023 architecture tied the exiting to the start of a new physics update. In light of our feature -- stop updating, but don't exit on losing all lemmings -- it looks necessary to change the exiting architecture in some way; still, we should review it with namida on a high level. For now, we renamed CheckForGameFinished to MaybeExitToPostview, to distinguish it clearly from the new end-of-game behaviors that don't exit, and moved it out of the physics update, into the window's main loop, as a public method call to LemGame.

WillLem has tested the interactive game and found no problems with the moved exit-to-postview decision. We haven't yet tested mass replay verification, we'll still have to do that. Likely, it will work because the verification carries its own exiting logic.

Thus, to do:
  • Reconcile nuke-to-exit with the moved exiting logic.
  • Test mass replay verification. Most likely, it's fine.
  • Test other ways to exit LemGame, e.g., pressing Esc, Hyper Speed into death/win.
  • Fix my observed mismatch between default option and game exiting.
  • Stream more playtesting!
  • Review the high-level achitecture of the feature with namida.
-- Simon

Pages: [1] 2 3 ... 274