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 4 ... 207
16
NeoLemmix Main / Re: Giving feedback on custom packs
« on: June 19, 2020, 03:40:21 pm »
Everything what Dullstar wrote was actionable, thus constructive. Feel free to ask if it's not clear how to fix the issues. Feel free to disagree that something is an issue.

Steel/earth distinction is perhaps the least actionable; it's not necessarily clear which exact tiles the problem are. In a pinch, you can ask more people to test.

-- Simon

17
NeoLemmix Main / Re: Giving feedback on custom packs
« on: June 19, 2020, 03:02:43 pm »
I assume this sparked the discussion: Dullstar's feedback to Telelems

This frankness is exactly what I prefer to hear from others about my work: Direct focus on problems. I wouldn't want replies to me pampered merely to comply to feedback rules. I don't see it as rude either. Especially the sprite problem isn't even a problem of the pack entirely, it's also an issue in the engine.

Can't advise how to treat whoever doesn't appreciate frank discussion. It's delicate. We all would like the hobby to grow, super-thick skin shouldn't be required.

Community expectations about level design need exposure, that's right. They're always under debate anyway, whether they're more exposed or not.

-- Simon

18
General Discussion / Re: Simon blogs
« on: June 18, 2020, 08:27:47 pm »
Thanks for the reply! Sorry for my belated reply.

Quote
The programming example you gave doesn't feel to me like much of an analogy to the "is something that" in English.

Here, my desired nuance wasn't filler phrases: Certainly, programming languages have few constructs that could be outright omitted with the same meaning. Thus, "is something that" isn't a suitable example here.

I wanted to draw attention to how the payload -- the businees logic in programming, the big ideas in writing -- should not be bloated by bookkeeping. The reader can often figure out the bookkeeping themselves, or the bookkeeping can be written somewhere else.

For such avoidance of bookkeeping, "if you don't know what X is" is a better example than "is something that". The meaning will change when we leave out "if you don't know what X is", but it really doesn't matter; we want to cut to the point immediately. The change in meaning happens to be irrelevant here, even better.

Quote
Feel free to apply the Simon culls below to some example writings of mine in this forum, I welcome the closer look and debate.

All right, I'll try once I see a particularly tasty target. :lix-tongue: I read practically everything by you, doesn't matter which topic on the forums.

Courtesy is interesting. People interpret bloated, deliberately weakened statements as courteous. When an author prunes the writing, people should be happy that the author doesn't waste their time, they shouldn't feel uncomfortable. <_<;;



Sorry for any of my slowness on the forums these days. I'm still stuck in the editor's undo feature for editor tile insertions/removals.



My current design problem appears to require triple dispatch. (If three objects are of specific subclasses each, call a certain method.) This is likely a misdesign in the classes, I merely don't see how. I expected double dispatch to appear, I have parallel class hierarchies that seem like the least-worst solution.

Maybe I'll have to lie on the psychiatric bench that is the Lemmings Forums, and make a detailed topic about this.

I hesitate making intricate programming design topics here though: It's really software development at heart, not of general Lemmings interest, and probably more sensible on Software Engineering stack overflow. It would be a genuine call for help, on a nontrivial and highly specific problem in my personal areas of expertise and interest (Lemmings, OOP) -- thus obvious solutions won't fit.

On the other hand, it's easier to explain the problem on Lemmings Forums, because we have a bunch of developers here that will readily understand the problem. And if we find the least-worst solution, maybe it'll be helpful too for somebody in the future.

Hmm. After this rambling, I should really make this topic.



Edit: Adding/removing tiles is functional, using the visitor pattern for the common double dispatch and dynamic casting to avoid introducing a second visitor on the parallel hierarchy. Topic here will still be reasonable, it still feels awkward.

-- Simon

19
Engine Bugs / Suggestions / Re: [PROPOSALS][PLAYER] New menu design
« on: June 16, 2020, 06:54:26 pm »
Main menu:
  • I must be able to access the level browser, access the options dialog, and quit the app, all in one click/keystroke (ideally) or only keystroke (if you really want to stick with Lemmings's oddity of lacking mouse control in the main menu).
Level browser:
  • I'm missing search by level name, but it's a weak suggestion. I tend to start the app knowing exactly which level I want to play.
  • Ideally, it should fetch replays for the highlit level, but then the program must know which replays belong to which level; I don't know if the file design allows this. Interesting design problem, prod me if it ever lands on the table.
  • The level browser should offer everything that the preview screen offers, by principle.
Consider splitting the topic into the design of the main menu, and the design of the level browser.

-- Simon

20
Lix Multiplayer Dates / Re: Lix Multiplayer June 14th, 16:00 UTC
« on: June 14, 2020, 07:15:36 am »
We'll play today at 16:00 UTC (in 8 hours, 45 minutes). See you!

Session is over. It was a small 4-player session, still very nice. See you all next time!

-- Simon

21
NeoLemmix Main / Re: What is no-overwrite?
« on: June 13, 2020, 07:56:07 pm »
When you have no eraser tiles (a.k.a. dark tiles), a no-overwrite tile behaves like a tile ordered to the early-drawing end of the list, yes. But it's different when it overlaps eraser pieces.

No-overwrite really does: Instead of drawing all pixels of the tile, draw only those pixels that cover air, i.e., pixels that wouldn't overwrite any existing pixel of the earlier-drawn terrain.



First comes A, a normal tile.
Second comes B, an eraser tile.
Third comes C, a no-overwrite tile.

C is drawn after everything else. But because C is no-overwrite, C's pixels will only be drawn into where there are no pixels at the moment.

This example requires either no-overwrite (in Lemmings) or tile grouping (in Lix). It's impossible to build this example only using erasing and reordering. You can't get this result by reordering the example as C, A, B, that would make B erase the upper part of C.



I recommend: Prefer reordering over no-overwrite. Reordering is easier to reason about. But when you realize that you need no-overwrite because you're cutting in elaborate ways with eraser tiles, then sure, use no-overwrite.

-- Simon

22
Lix Levels / Lix singleplayer level list
« on: June 13, 2020, 02:16:31 pm »
Here is a list of all single player Lix level packs and scattered levels. It was split off Wafflem's list for all Lemmings-like games. Packs/levels are ordered by author name.

Current but not included in the main release:

Level Packs:

none

Scattered Levels:

Winter Rations by geoo
Level for the Level solving contest #3.

Richard of Gloucester by Proxima
Level for the Level solving contest #2.

Included in the main release:

ClamLix
Full pack with 113 levels by Clam: 91 levels plus 22 outtakes.

xmas2018 by F and Simon
Holiday-themed pack with 24 levels.

Miniatures by geoo and Simon
Originally 10, now 17, levels with small level sizes, inspired by the small size of Gronkling's levels. Part of the misc folder.

Tutorials by geoo, Rubix, Simon and Wuzzy
As of 7th Feb 2019 it contains 15 basic tutorial levels. Advanced tutorials are planned.

mobius's levels 2017
A later set of Lix level packs, including "leftovers" (some of them are included in the lemforum pack) and "non-tutorials" (7 levels loosely based off the L1 Tutorial levels). Part of the misc folder.

NepsterLix
Full pack of 96 levels.

Nessy's levels
10 levels, some converted from the NeoLemmix pack "Lemmings Migration". Part of the misc folder.

Epic Adventure by RubiX
Full pack of 173 levels. Contains Parallel Universe and the Community Collab Project #1.

Simon's levels
Some levels by Simon that are not miniatures. Part of the misc folder.

lemforum (Lix Community Pack)
Full pack with 240 original levels by various authors, including remakes of Lemmix and Cheapo levels. Some levels are from the abandoned Project Capybara, its remaining levels later became mobius's small level pack in 2017.

lemforum outtakes

Levels that were at some time part of the Lix Community Pack but later exchanged for other levels. Can be found in misc/lemforum-outtakes.

Contest levels by Various
Levels made on occasion of various design contests. Can be found in misc/contest.

Outdated:

Level Packs:


TameLix by Clam
Only for C++ Lix. 20 ONML Tame levels in Lix with new puzzles. Each level has an easy and a hard puzzle.

DoveLems by Dodochacalo and Proxima
Only for C++ Lix. Originally a pack of 125 levels for Lemmini, DoveLems has been converted by Proxima, excluding Lemmings' Ark. This pack needs separate Lemmings tilesets that don't ship with C++ Lix.

Lix tutorial levels by geoo, Rubix and Simon
Levels meant to serve as tutorials for the basic skills. Some of them are in Lix main release again as part of tutorial/basic. Some levels use outdated tiles.

mobius's level sets
Lix levels remade from Lemmix. Some of these became part of the Lix Community Pack. Some levels show missing terrain due to the culling of decoration pieces, just save and reload in the ingame editor.

Prob Lem's levels
Several levels. Hrududu made its way into the Lix Community Pack.

Reloaded by RubiX and others
Lemmings 1 levels remade in Lix with new puzzles.

Time Trials by RubiX
Five levels with time limit challenges. Time limits are not supported anymore in Lix.

Scattered levels:

Raylevels by Raymanni
One level can be found in this thread, which uses out-of-date tiles.

Happy Holidays by Raymanni, fixed by Forestidia to tileset renamings
Chimney Climber by Simon
These levels showcase the Holiday tileset by Raymanni. Both included in the xmas2018 pack, see above.

Contest levels:
Some contest levels may depend on features of C++-Lix, e.g. time limits, which are not supported anymore in Lix. Most of the levels are included in the main release.

16 x 16 by Akseli
Entry for the Lix Double-Level Contest 2014. Shows missing tiles due to tile renamings.

Planet Dulux by Akseli
Entry for the Lix Double-Level Contest 2014. Shows missing tiles due to tile renamings.

The Climber Predicament by geoo
Entry for the Lix Double-Level Contest 2014.

The Floater Predicament by geoo
Entry for the Lix Double-Level Contest 2014.

Minefield by geoo
Entry for the Level Design Contest 5

Las Ranas Hermanas by geoo
Entry for the Level Design Contest 6. Included in the lemforum pack of the main release.

Marching Band by geoo
Entry for the Level Design Contest 10

Inseparables (V2) by geoo
Entry for the Level Design Contest 11

The New Compression Method (V3) by geoo
Entry for the Level Design Contest 11

Deadly Cells by geoo
Entry for the Level Design Contest 15. Included in misc/miniatures, which is part of the main release.

Cirque Du Solix by mobius
Entry for the Lix Double-Level Contest 2014.

Cirque Du Solix (part 2) by mobius
Entry for the Lix Double-Level Contest 2014.

Amethyst Nightmare Shrine by NaOH
Entry for the Lix Double-Level Contest 2014.

Temple to the Frog Gods by NaOH
Entry for the Lix Double-Level Contest 2014.

A Day in Lixtown by Nepster
Entry for the Lix Double-Level Contest 2014. Included in NepsterLix, which is part of the main release.

A Night in Lixtown by Nepster
Entry for the Lix Double-Level Contest 2014. Included in NepsterLix, which is part of the main release.

Altruism by Nepster
Entry for the Level Design Contest 6. Included in NepsterLix, which is part of the main release.

Oh Yes, Here Again! (V3) by Nepster
Entry for the Level Design Contest 11

All Around the World by Proxima
Entry for the Level Design Contest 4. Included in the lemforum pack of the main release.

A Necklace of Raindrops by Proxima
Entry for the Level Design Contest 10. Included in the lemforum pack of the main release.

Tailor-made for athletes by Proxima
Entry for the Level Design Contest 10

Oh No! More Tame Levels (V3) by Proxima
Entry for the Level Design Contest 13

Turnabout Sisters by Proxima
Entry for the Level Design Contest 15.

Eyesis (Part I) by Ramon
Entry for the Lix Double-Level Contest 2014.

Eyesis (Part II) by Ramon
Entry for the Lix Double-Level Contest 2014.

Waiting For The Answer (V5) by Rubix
Entry for the Level Design Contest 9

Palmtree Pile-up (V1.2) by Simon
Entry for the Level Design Contest 5. Uses an outdated tile.

Long Division (V25) by Simon
Entry for the Level Design Contest 10

Flying Squirrels (V2) by Simon
Entry for the Level Design Contest 11

Key to the Mini Kingdom (V9) by Simon
Entry for the Level Design Contest 13

-- Simon

23
Lix Main / Re: Progress to next level without getting back to menu
« on: June 11, 2020, 04:04:12 pm »
Quote
elaborate end-of-level dialog, e.g., with preview of next level, we risk burying the button [to save replay of previous attempt] again.
A dedicated end-of-level screen would resolve this though, because it wouldn't have many other buttons - "Next Level", "Restart Level", "Go To Menu", "Save Replay". I'd think this is noticable enough?

Right, I now believe that the save-replay button in an end-of-level dialog will have enough visibility. Also, with mixed-end-of-level-into-menu, were the previous attempt clearly segregated from the menu, save-replay would have enough visibility.

It will merely be much easier to (clearly segregate previous attempt from next levels) when we don't have to conserve screen space.

We'll help it further by clearly segragating between previous attempt in top half of the end-of-level dialog, and putting progression in the bottom half (to next level, or to menu).

-- Simon

24
Lix Levels / Re: The original Lemmings 2-player maps
« on: June 10, 2020, 10:26:26 am »
Welcome to the forums!

Yes, Rubix should attach his 2-player L1-to-Lix conversions here.

-- Simon

25
General Discussion / Re: Simon blogs
« on: June 08, 2020, 12:26:42 pm »
is something that

If you're a person who doesn't like X, try Y.
If you don't like X, try Y.

This is something that I like.
I like this.
This, I like.

Try and see if you can jump over the gap.
Try to jump over the gap.
Jump over the gap.
Jump the gap.

Remember to go to bed by midnight.
I want to add that
It should be noted that

If it is isomething that can be cut, then cut, cut, cut.



Forewarning

If you don't know what X is, X is a platforming game.
X is a platforming game.

If you don't know X and X is a platforming game, then, very likely, X is also a platforming game when you already know X. The reader is smart enough to understand sentences that he already considers true.

You might believe that you're helpful with such forewarning ("If you don't know X") about introductions ("X is a platforming game") that a knowlegdeable reader may skip. But you don't achieve that unless you clearly mark where the introduction starts and stops. Few do that in English, sadly. Because so few writers do, the reader must still read everything, lest he skip important non-introduction.

For programmers:
  • Write for humans exactly like you're supposed to write high-level computer programs. There, we shall hide the repetitive bookkeeping, not bloat the call site. E.g., we prefer
        Optional<X> x = ...
        x.foo()

    to
        X* x = ...
        if x:
            x->foo()

And then here continue the essay with whatever remainder written for both for programmer and non-programmer.

-- Simon

26
General Discussion / Re: Lemmings Forums on Youtube
« on: June 08, 2020, 10:20:28 am »
Added Turrican to first post, thanks!

-- Simon

27
You've already given the argument why noop gadgets don't exist, right: You would introduce extra cognitive load, in every new tileset, for every yes-op gadget that doesn't immediately reveal its function.

Thus you need a really convincing argument for noop gadgets.

Quote
some people have expressed interest in trying to do this anyway

Who is some people? What kinds of design? Pictures, ideally?

Counterexample: The decorative fire in the Pieuw lamps (attachment). This fire is really a trap with only-on-terrain. This fire can be deadly, no problem, it's out of the way anyway, and it's still decorative. This was my main argument to ditch the fake flag.

Quote
(it's possible - but I'm not going to explain how, and I don't believe that person figured it out). This may be a case where it's better to implement it properly, at which point CPM can hide or appropriately label it, or even potentially an option can be added user-side to hide them (or make them not function).

I agree that proper implementation would be cleaner than such workarounds. The workarounds would be even more misleading in CPM. (And there is the third outcome, to have neither; thus first, we should look at the proposed level designs.)

-- Simon

28
Lix Multiplayer Dates / Re: Lix Multiplayer June 13 or 14
« on: June 05, 2020, 05:56:32 pm »
I'm happy to play next Sunday, June 14.

I propose 16:00 UTC, the same as last session. Table that converts UTC to other times

-- Simon

29
Lix Main / Re: Progress to next level without getting back to menu
« on: June 01, 2020, 02:28:03 pm »
Thanks.

Quote
Game just stops when the last lix dies but you haven't saved enough. The indication of what is going on is just a small text in the task bar, and I was confused

Yes, this is a visibility problem. I'm happy to point more egregiously to backstep and to restart. I'd like to avoid a dialog here.

Quote
The menu [singleplayer level browser] already has so much information that it [result of recent attempt] stands out less,

Right, this is the most serious push towards a dedicated end-of-level dialog. I'm contemplating to reintroduce a dialog already to avoid clutter, and still cleanly distinguish between finished attempt and player's record.

Quote
Data loss. If you don't have auto-saving enabled, the "Save replay" button is similarly hidden like the stats. Easy to miss and once you swap to a different level, your replay is lost.

This is hairy.
 
If we introduce an elaborate end-of-level dialog, e.g., with preview of next level, we risk burying the button again. On the other hand, since winning replays are autosaved by default, I'd rather not prompt with a second dialog for the data loss, nor make the single dialog small only for this.

-- Simon

30
There are really two problems here:
  • Internal representation while the replay is in RAM. We want to reorder cloners in the replay without the replay failing unrelated assignments. This internal representation I had in mind as target for the idea with the list of integers (= recursive tracking of sources plus the n-th time the source has produced a lemming).
  • Serialization to file. We don't necessarily have to touch the format definition; we might work around it and avoid a format change.
Maybe we can serialize the IDs to the classical integers (including their odd behavior, and future NL must remember 12.09's quirks of how it assigns IDs internally, to use that quirk for this serialization of list-of-integer to a single integer). When the replay gets loaded, the integer IDs convert to list-of-integer.

The problem is that this loading-and-converting seems to need a physical passthrough, or at least an interpretation of RR changes. Nasty nasty nasty, many little details to squish in mind. There is no clear good and bad here. :'(

-- Simon

Pages: 1 [2] 3 4 ... 207