Level select menu

Started by namida, May 30, 2017, 12:14:07 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

namida

So, I'm working on a level select menu in a similar vein to those of Lix, SuperLemmini or WinLemm; where you can choose from multiple packs.

Currently, it has a treeview taking up approximately the left half of the menu, with the right half being empty apart from small "OK" and "Cancel" buttons. If you'd like to see for yourself, try out the new-formats experimental I recently uploaded, and hit F2 on the title screen. (I felt a treeview was optimal, especially due to that NeoLemmix now allows, for example, for a rank itself to be split into multiple smaller ranks.)

I'm interested to know, what kind of preview details would people like to see on that screen? The full level info? Just a title and image? Somewhere inbetween? How about previous records for lemmings saved and time taken? Talismans, where applicable?
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

So far, I've got it displaying some basic details.

It'll display the name of the selected rank / level, the author (if known), and its position (eg: "It's Hero Time" would display "Level 3 of Mayhem", while Mayhem itself would display "Rank 4 of Lemmings"). I'll wait for feedback before adding anything further.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

IchoTolot

Maybe adding the skillcount, the details of the preview, the used tileset or maybe the detailed minimap view of the level is a good addition. As the text is waay smaller than in the preview-screen. This needs to be tested though.

I really want to be able to JUST select the pack though. Now you have to choose a level which takes you directly to the preview. I want to be able just switch packs while staying at the main menu with just loading the main menu layout + rank signs of the pack --- maybe via a double click / clicking OK on the pack in the list.
Maybe level select should be renamed to level/pack select. ???

Also the default pack can be the last pack you played instead of the first in the list.

namida

Selecting a pack should currently take you to the first unsolved level within the pack. This might not be working correctly, though. If people would prefer to go to the title screen with that pack loaded, I can implement that.

Default pack being the last one you played is on my todo list.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Nepster

1) I agree, that whole packs and ranks should be selectable (currently only ranks are). I would prefer that they go to the main menu of the pack, not directly to the first unsolved level. Only when one starts a level, the preview screen of the first unsolved level of the pack resp. rank appears.

2) I would prefer lazy loading of pack infos: Only load the packs upon opening the level selection menu. Only when viewing ranks or single levels, they are loaded. Currently it takes several seconds until the level selection menu appears. At first I thought it wouldn't do anything...

3) The default pack should not only being the last one played, but even the rank and current level should be opened already, as changing this will probably occur much more often than changing packs.

4) I very much like your key layout for the level selection menu. But I would like to be able to select packs/levels by double-clicking on them or pressing Enter. Currently one has to click on the "Ok" button (or tab to there). Moreover I would expect that one first tabs to the "OK" button, and then to the "Cancel" button, not the other way around.

5) Probably already on your to-do list: I would like to have the check-marks for solved levels, again.

6) Regarding what to display as an info: A minimap view would be the best, but only if it doesn't take too long to produce. When moving through the level list, I don't want to wait a second every time I go to a new level. Otherwise I would like the following info:
- Pack name, rank name and title again.
- Number lemmings, save requirement and max saved lemmings of previous attempts.
- Time limit or infinite time.
- Some small talisman icons, if there is one. But not the actual talisman description.
I am not sure how useful the skill count would be, as they are not something I tend to remember. The used tileset may be confusing for levels that mix styles or that have selected a completely different main style for some weird reason.

7) Perhaps we should display some infos regarding packs, too? Like their ranks and number of levels within the ranks. Number of already solved levels in the rank?

namida

2 is on my to-do list, along with some kind of caching of this data between sessions (currently it will cache it within one session, but this is lost when exiting NL). And as you guessed, so is 5, additionally with an icon to represent "attempted but not completed".
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

GigaLem

2 things I want to know

1.Can there be a "Classic Preview" button where you can view the level way you can right now or the way before? (Post and Preview texts still included)

and

2.Will stuff like this still be possible? (Big image)
Spoiler

namida

Quote from: GigaLem on May 31, 2017, 04:21:28 AM
2 things I want to know

1.Can there be a "Classic Preview" button where you can view the level way you can right now or the way before? (Post and Preview texts still included)

and

2.Will stuff like this still be possible? (Big image)
Spoiler

Yes and yes.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)


namida

Here's a picture of the level select menu in it's current state, with progression marks visible. :)

The tick is for completed, the cross is attempted but not completed, the bar is not attempted. There's also a fourth icon (which support for isn't fully implemented yet), to mark a level as "completed, but on an older version of the level". I haven't yet decided how exactly to handle detecting this.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

And now, for some more detailed feedback to Nepster's post.

Quote from: Nepster on May 30, 2017, 03:45:56 PM
1) I agree, that whole packs and ranks should be selectable (currently only ranks are). I would prefer that they go to the main menu of the pack, not directly to the first unsolved level. Only when one starts a level, the preview screen of the first unsolved level of the pack resp. rank appears.

I can see the logic behind this for selecting the pack as a whole (in fact, I had been considering this already and simply hadn't implemented it yet), but are we sure we want it for ranks too? I'd think first unsolved level makes more sense here.

Quote2) I would prefer lazy loading of pack infos: Only load the packs upon opening the level selection menu. Only when viewing ranks or single levels, they are loaded. Currently it takes several seconds until the level selection menu appears. At first I thought it wouldn't do anything...

As mentioned, this is on my todo list. There's already some backend support for this; for example, in the level pack manager, data from the level file (such as title, level ID, etc) isn't loaded until it's needed; and when it is needed, all such data is loaded at once rather than having to load the file multiple times.

Quote3) The default pack should not only being the last one played, but even the rank and current level should be opened already, as changing this will probably occur much more often than changing packs.

This makes perfect sense to me.

Quote4) I very much like your key layout for the level selection menu. But I would like to be able to select packs/levels by double-clicking on them or pressing Enter. Currently one has to click on the "Ok" button (or tab to there). Moreover I would expect that one first tabs to the "OK" button, and then to the "Cancel" button, not the other way around.

Actually, I haven't done anything keyboard-wise there. It's just inherent properties of the controls in use. I'll look into making enter / doubleclick work.

Quote5) Probably already on your to-do list: I would like to have the check-marks for solved levels, again.

Just pushed a commit now that implements this. It even applies to ranks and packs, rather than just levels. Do note, however, this data is currently not saved between sessions.

Quote6) Regarding what to display as an info: A minimap view would be the best, but only if it doesn't take too long to produce. When moving through the level list, I don't want to wait a second every time I go to a new level. Otherwise I would like the following info:
- Pack name, rank name and title again.
- Number lemmings, save requirement and max saved lemmings of previous attempts.
- Time limit or infinite time.
- Some small talisman icons, if there is one. But not the actual talisman description.
I am not sure how useful the skill count would be, as they are not something I tend to remember. The used tileset may be confusing for levels that mix styles or that have selected a completely different main style for some weird reason.

I thought about this. A preview image will take a while to display, but would be nice to have. It could probably be saved somewhere when it's generated, so that next time, it can check the modified date of the NXLV file against the modified date of the saved image, and if the image is still newer, it just uses the saved image rather than rendering it again.

I find it interesting that you want the presence of a talisman to be displayed, but not what the talisman is actually for. May I ask why this is, and what method you'd propose for finding the talisman information from the level select menu - maybe displaying this information on the preview screen itself?

Quote7) Perhaps we should display some infos regarding packs, too? Like their ranks and number of levels within the ranks. Number of already solved levels in the rank?

Yes, great ideas.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Nepster

Quote from: namida on May 31, 2017, 05:46:42 AM
I can see the logic behind this for selecting the pack as a whole (in fact, I had been considering this already and simply hadn't implemented it yet), but are we sure we want it for ranks too? I'd think first unsolved level makes more sense here.
My gut reaction was going to the main menu after selecting a rank, but I cannot give a compelling reason for this. So going directly to the level might work, too.

Quote from: namida on May 31, 2017, 05:46:42 AM
I thought about this. A preview image will take a while to display, but would be nice to have. It could probably be saved somewhere when it's generated, so that next time, it can check the modified date of the NXLV file against the modified date of the saved image, and if the image is still newer, it just uses the saved image rather than rendering it again.
I think ideally the FlexiToolkit and the NXPConverter would already produce small preview images of all levels, and put combine them into one big png file. Then the NL player just has to load this one image and display it after cropping it correctly.
Disadvantage of this is, that both tools require knowledge of the terrain rendering code and of all terrain pieces.

Quote from: namida on May 31, 2017, 05:46:42 AM
I find it interesting that you want the presence of a talisman to be displayed, but not what the talisman is actually for. May I ask why this is, [...]
Where to display this info is a good question, but I doubt the place is the level selection menu.
1) If you play through a pack, checking at the level selection menu for talismans isn't something intuitive.
2) Talismans (especially multiple ones) would produce lots of text on the level selection menu. But in my opinion the main purpose of the level selection info is to recognize the level one intends to play, not to check actual level properties. So the info, that there exists a talisman is probably sufficient for the level selection menu.

Quote from: namida on May 31, 2017, 05:46:42 AM
[...] and what method you'd propose for finding the talisman information from the level select menu - maybe displaying this information on the preview screen itself?
If there is enough space on the preview screen, then this would be perfect. Alternatively add something like "Click here for talisman description" to the preview screen that goes to a separate page with the talisman description and starts the level afterwards. Or perhaps even display the talisman info like the custom pre-level text.
I am still undecided what of all of this would be the best solution. So the above is just me throwing ideas around to see what sticks. ;)

namida

Your idea about Flexi generating the images would have worked well (if it weren't for lack of knowledge of rendering) for the current version. Not so much for the new loose-files version, where someone may have modified the level since (and there is still the issue of it inflating the download size, which is a concern to me if I plan to eventually allow all content to be hosted on the NL website since costs are determined based on storage and bandwidth used, not a fixed monthly rate).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

Nepster

Quote from: namida on May 31, 2017, 11:03:59 PM
Your idea about Flexi generating the images would have worked well (if it weren't for lack of knowledge of rendering) for the current version. Not so much for the new loose-files version, where someone may have modified the level since
Yes, good point. Still I would prefer that the level selection menu displays all other level info together with a placeholder first and remains fully functional, then renders the level internally and when it is finished adds the preview image to the level selection menu. And if the user moves to the next level, the player aborts it's previous try at rendering the level and starts with rendering the new level.

Quote from: namida on May 31, 2017, 11:03:59 PM
(and there is still the issue of it inflating the download size, which is a concern to me if I plan to eventually allow all content to be hosted on the NL website since costs are determined based on storage and bandwidth used, not a fixed monthly rate).
That's actually not so bad. The preview images will probably be roughly 333x160 pixels. If you have 5 ranks with 30 levels each, this makes for a 10000x800 image. When I tested this, it required rougly 2MB. In my experience, png files do a pretty good job on compressing images, if they are very wide but not high.

QuoteHere's a picture of the level select menu in it's current state, with progression marks visible.
I like the progression marks for solved and tried-but-unsolved. I am not so much of a fan of the dirty brown icon for non-tried, especially if there are lots of them around. How about a dark blue circle instead?


Proxima

Can we not have an indicator for tried-but-not-completed levels? That's just an irritant. The player should be rewarded for success, not discouraged for failure.