How should the skill bar look like in windowed mode? [DISCUSSION]

Started by Nepster, March 08, 2017, 05:15:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nepster

NeoLemmix version 10.12.15 has a skill bar where one can switch between displaying the minimap and displaying additional buttons. It's base size (without any zoom) is 320x80.
In the experimental version 10.13.16, the skill bar is larger and always displays both the minimap and the additional buttons. Now the base size is 416x80.

In fullscreen mode, the new skill bar is very useful (at least on my wide laptop screen), as there is enough horizontal space to display the full enlarged skill bar.

But windowed mode is more problematic. The attached screenshots are taken in both version with window size of 960x600 and zoom factor of 3x. This ratio of 8:5 is precisely the one used in the menus and there are a lot of single-screen levels, so we should take a little care that everything works nicely in this situation. But with the new skill bar there are three problems:
1) The skill bar gets only zoomed to 2x, therefore the skill counts and RR numbers were 50% larger in V10.12.15 than they are now. As they are the most important parts, I prefer to display them larger. Similarly the buttons area is less than half of what it were before, which may inconvience players selecting skills via the mouse instead of using hotkeys.
2) Due to the different zoom factors, the minimap sizes aren't all that different. In V10.12.15 the minimap is 66 pixels high, while it uses 72 pixels in V10.13.16. However in the new minimap, a level of height 120 does not use the full height of the minimap. So the actual space used to display the level in the minimap is actually smaller than it was in V10.12.15.
3) In V10.13.16 there are black borders at the top and bottom 20 pixels high. This is pretty weird, because this means that for the vast majority of levels (namely those with standard height), the cursor is trapped in an area that is smaller than the actual screen size.

I was actually pretty happy with the skill bar of V10.12.15 and don't see any pressing reason to change it, especially as having larger buttons and numbers feel more important than having both the minimap and lots of other buttons. So I would like to propose the following:
Use the new skill bar in full-screen mode, but use the skill bar of V10.12.15 in windowed mode again.

IchoTolot

I don't use the window mode, but in fullscreen I highly prefer the experimental layout.

I'll leave the discussion on if to use the older switching layout for the windowed mode for the users that are actually using it most of the time :P   

But you have to remember: The window mode on a larger screen could also benefit from the new layout, so hard locking it to the older layout might not be optimal.

mobius

well since I don't use the new buttons at all (I just use their hotkey counterparts) I'd prefer the first example. I'd prefer the larger size of the buttons although; the smaller size is not too big of deal to me either.


This may be beside the point, but could somebody please explain to me why designing a program so that the cursor does not have trapped in the window is so difficult? NeoLemmix is like this, so is Lix, but Lemmini is not. <This right here; quite an annoying feature imo that'd I'd be overjoyed to see go bye-bye. Often I leave the game open while saving a replay; and going into another window to do stuff, make a post on the forum etc. So switching in and out is necessary.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


namida

The reason is because moving the mouse to the edge of the screen is perhaps the most common method of scrolling. Without trapping the mouse window, you need to either continue detecting the mouse position outside of the window (and then, do we know if the mouse being past the right edge is "I want to scroll right" or "I'm doing something in another program"?), or abandon this method of scrolling in favor of another one.

NL does allow configuring a hotkey to instantly release the mouse trap though, by default this is the ~ key. Alternatively, using any Windows method to switch to another program (Windows key, Alt-Tab, etc) will release the mouse as well.

I dont' know if we should continue to assume 160px tall as a standard, even if it is the default value and the majority of existing levels so far have used it. While not too many levels taller than that have been created, I don't know if this will change now that 160px is no longer the minimum value (the new minimum is 1px, which is of course impractical in and of itself, but there's much less reason why someone couldn't make a level that's, say 80px or 100px tall) and even more so that levels that aren't 160px tall could still possibly fit on a single screen, thanks to variable display areas and in-game zooming.

Personally, I don't really have a preference either way about the extra buttons beyond "they'll help new players discover these features", but I do very much like the taller minimap.
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 March 09, 2017, 04:11:23 AM
NL does allow configuring a hotkey to instantly release the mouse trap though, by default this is the ~ key. Alternatively, using any Windows method to switch to another program (Windows key, Alt-Tab, etc) will release the mouse as well.
Alt-Tab only removes the focus from NeoLemmix, but the mouse is still trapped in the NeoLemmix screen rectangle.

Quote from: namida on March 09, 2017, 04:11:23 AM
I dont' know if we should continue to assume 160px tall as a standard,...
Lix has allowed variable height for a long time with a minimum that is smaller than the default. Still the lemforum pack has only 25 of 240 levels with custom height, all of them larger than the default. It has lots of small levels which would fit well in a smaller space, but level designers seem to prefer to add decoration instead of reducing the level size.

Quote from: namida on March 09, 2017, 04:11:23 AM
Personally, I don't really have a preference either way about the extra buttons beyond "they'll help new players discover these features", but I do very much like the taller minimap.
I totally agree that the larger minimap in fullscreen mode is nice, but as I explained above the minimap is not really larger in windowed mode due to the smaller zoom factor used.

namida

QuoteAlt-Tab only removes the focus from NeoLemmix, but the mouse is still trapped in the NeoLemmix screen rectangle.

This may be OS dependant. For me (Windows 10 Home), Alt-Tab releases the mouse, whether in fullscreen or windowed mode.

QuoteI totally agree that the larger minimap in fullscreen mode is nice, but as I explained above the minimap is not really larger in windowed mode due to the smaller zoom factor used.

It is larger, in the sense of "it displays more of the level", either way - at least if we were to compare the old minimap region to the new one, while basing this comparison off the same minimap rendering code. (In practice, there hasn't been a version that uses the new rendering code with the old area size.) The old minimap will display up to 888x160 of level area, while the new one will display up to 888x304. It goes without saying that if support for the older minimap size were to be re-implemented, it would still be based on the new rendering code, not the old one (which would've allowed the same vertically, but double horizontally, due to it using a disproportionate stretching - 1/16th scale horizontally, but 1/8th vertically; whereas the new code uses 1/8th for both). The minimap does not display more of the level area depending on its zoom - although actually, the new minimap rendering code would make it relatively easy to implement such a feature if there was interest, now that the idea has come up. The trickiest part would be how to implement configuration of (or interaction with) such zoom features.
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)

mobius

I should mention I never use full screen mode. I also never use the sides of the level to scroll and actually find it annoying that this is a feature. I often get my mouse too close to the edge by accident and scroll when I don't want to. I like Lixe's feature of holding down a button which enables mouse movement to scroll. [what is called "torus scrolling"?] In NL I use the minimap to do all my scrolling

here's a radical idea regarding thoughts on the minimap: pressing a button displays the whole level zoomed out so the whole level fits on screen (regardless of size). (Doesn't Lix have this feature? or something similar). Not sure if I'm suggesting this as another feature or replacement for the minimap or what.
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


namida

NeoLemmix does not currently have the capability to change to a zoom lower than 1x (it could be implemented, but would likely either be (a) poor quality, or (b) very CPU-intensive and probably still not the best quality). For very large levels, it might not be possible to fit them all on one screen even at a 1x zoom, especially on lower-resolution displays. (At least among my own levels, I can't find any that don't fit on the screen at a 1x zoom on a 1080p display, but there are some that wouldn't on a 720p or 1366x768 screen, eg. the two "Drop Them Lems" levels, LPO's final level, "USS Lemterprise".)
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)

mobius

Well I just discovered that moving the mouse wheel zooms in and out! This basically negates the point of my suggestion
everything by me: https://www.lemmingsforums.net/index.php?topic=5982.msg96035#msg96035

"Not knowing how near the truth is, we seek it far away."
-Hakuin Ekaku

"I have seen a heap of trouble in my life, and most of it has never come to pass" - Mark Twain


namida

Indeed.

By default, there is no keyboard key that performs this function, but you can manually reconfigure the hotkeys to add one. Similarly, mousewheel scroll can also be assigned to other functions, though I haven't tested how well all of them work (in particular, it probably won't work well with functions that require holding a key rather than just pressing one).
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

Are there any more people who would like to have the option of using the old skill panel layout? I'll work on re-implementing it if there's enough interest, but two people (one of whom doesn't seem overly worried about it) is not really enough, especially since this would be quite complicated (and somewhat contrary to the push for culling less-used options).

Unlike the original suggestion, this would not be locked to "new style in fullscreen, old style in windowed" but would be a seperate option altogether.
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)

Proxima

Yes, I think it should be an option. Like Nepster, I have a wide laptop screen, so fullscreen looks great for me with the new skillbar. But it doesn't look good in windowed mode -- it sits awkwardly in the available space with a black border around it. And while I like having the framestepping buttons, I'm with Nepster in that I value larger buttons higher for usability. And I feel these problems would apply also to fullscreen mode for users with different screen proportions.

Nepster

Quote from: namida on March 30, 2017, 11:27:06 AM
Are there any more people who would like to have the option of using the old skill panel layout? I'll work on re-implementing it if there's enough interest, but two people (one of whom doesn't seem overly worried about it) is not really enough, [...]
This is all a matter of point of view. One could equally well say, that everyone who has voiced their opinion prefers my suggestion of using the wider skill panel only in full-screen mode. So extrapolating this, the whole lemmingsforums supports my suggestion :P
The main problem is that only few people tried out the experimental version and therefore we will never get a large number of people chiming in with feedback.

Quote from: namida on March 30, 2017, 11:27:06 AM
[...] especially since this would be quite complicated [...]
We have the code for the old skill panel in source control, so the change should be as simple as copying this code into the current version and then calling the correct method for drawing the skill panel depending on the window size. What problems with the skill panel am I missing here?

Quote from: namida on March 30, 2017, 11:27:06 AM
[...](and somewhat contrary to the push for culling less-used options)

Unlike the original suggestion, this would not be locked to "new style in fullscreen, old style in windowed" but would be a seperate option altogether.
1) I find it quite curious that you first change my suggestion to "add option" and then continue arguing against it by citing my desire for having fewer options :-\. Still it would be much better to have this option than being forced to use the wider skill panel even in windowed mode.
2) The comparison is not really fair: This change affects every second of game-play, while the other options to be culled only affect very specific actions or situations. So this option has arguably a much greater impact than the other ones, hence deserves much greater attention.
3) We cull the unused options and make the used ones the default. But here you keep suggesting culling the (will-be-)used one and keeping the (will-be-)unused one for windowed mode. Note that I completely distinguish full-screen and windowed mode here, as the available space is completely different and therefore what is best in one situation needs not to be the best solution in the other one. So far the only argument you gave to use the same layout in both cases is ease of coding, which I still don't understand (cf. above).
4) Finally options like the "cancel replay on backwards frameskip" are used by only two people, too, and we keep them.

namida

QuoteWe have the code for the old skill panel in source control, so the change should be as simple as copying this code into the current version and then calling the correct method for drawing the skill panel depending on the window size. What problems with the skill panel am I missing here?

Firstly, that the minimap code - including some parts that are not handled by the skill panel unit itself, but rather by the renderer or TGameWindow - has been almost completely replaced. The counter-argument here, would be that the new minimap code is much more versatile and shouldn't be too hard to adapt to a smaller region, it may not even need any changes beyond acknowledging the different size and position.
Secondly, the earlier code for switching between extra buttons and minimap is quite kludgy. This is partly because I felt (and still somewhat do) that the TGameWindow and TSkillPanel code needs a significant overhauling anyway, so I didn't bother to make sure the code was optimal, just that it worked - the same is also true to some extent for the current code, aside from the minimap parts (even that has room for improvement, but I do feel it's up to a much higher standard than the rest of the TGameWindow / TSkillPanel code). Counter-argument could be that there's no need to bring back the switching, and instead the smaller skill panel would simply lack the extra buttons.
Thirdly, while indeed we can recover the old code and probably use a lot of it, it still needs to be integrated with the current code in such a way that either could be used. Doing it so that the single TSkillPanel class handles both will be nearly as much work (possibly even more work than) just writing code to give an old-style panel again, while doing it as a seperate class (and then having TGameWindow select one as applicable) would mean a lot of code duplication, also nessecitating fixing both if a bug were to be found.

Quote1) I find it quite curious that you first change my suggestion to "add option" and then continue arguing against it by citing my desire for having fewer options :-\. Still it would be much better to have this option than being forced to use the wider skill panel even in windowed mode.
If we have both skill panels, why should people be forced to use the old one in windowed mode if they prefer the new (they may use a roughly 16:9 window size rather than a roughly 4:3 one, after all). And by the same token, why should they be forced to use the new one in fullscreen mode (they might still have a 4:3 screen - I believe Simon does? - or, similar to how you do in windowed mode, simply prefer a larger size over more stuff - eg. on a 1920x1080 display, a 320x160 (or not much larger) level easily fits on-screen in 5x zoom, but the skill panel can only go up to a 4x zoom).
Furthermore, making this a seperate option rather than a side effect of the full screen option is a matter of a few lines of code difference. Actually implementing both options, regardless of whether it's tied to the fullscreen setting or a seperate option, is going to cause far more complications to the code than adding an extra option for this will - the changes to make it a seperate option are an extra checkbox on the config screen (which is a matter of two extra lines in FNeoLemmixConfig.pas and adding the checkbox itself in the form designer), adding support in GameControl.pas to remember this option (four extra lines - an extra value in the MiscOptions list, an extra property to read and write this, and one line each for saving and loading the setting), and changing the code that picks which panel to draw to base it off this extra setting rather than the fullscreen setting.

Quote2) The comparison is not really fair: This change affects every second of game-play, while the other options to be culled only affect very specific actions or situations. So this option has arguably a much greater impact than the other ones, hence deserves much greater attention.
Fair point.

Quote3) We cull the unused options and make the used ones the default. But here you keep suggesting culling the (will-be-)used one and keeping the (will-be-)unused one for windowed mode. Note that I completely distinguish full-screen and windowed mode here, as the available space is completely different and therefore what is best in one situation needs not to be the best solution in the other one. So far the only argument you gave to use the same layout in both cases is ease of coding, which I still don't understand (cf. above).
Again, you are assuming everyone uses a roughly 4:3 window size, which may not always be the case. NeoLemmix allows almost completely arbitrary window sizes nowdays (there's a minimum, which IIRC is 416x80, but there's no requirement to have any specific proportions). Likewise, not everyone has a 16:9 screen.

Quote4) Finally options like the "cancel replay on backwards frameskip" are used by only two people, too, and we keep them.
Those options are already there. Keeping them involves zero effort, aside from maybe fixing the occasional bug. Adding this one - again, whether it's as an option or just tied to fullscreen vs windowed - does involve a significant effort. Generally, I would want more support for adding something (especially something relatively complex) than I would for simply keeping an existing feature.

QuoteThe main problem is that only few people tried out the experimental version and therefore we will never get a large number of people chiming in with feedback.
I think the amount may be a bit higher than feedback would indicate. The new NeoLemmix site keeps track of how many times each file is downloaded, and while it can't be ruled out that some people are just downloading it more than once; nor can it be ruled out that some people who don't participate in the forums are downloading it (no information at all is tracked about who is downloading it, it's just a simple "how many times has this file been downloaded" count); the experimental builds are getting a few more downloads than feedback would suggest.
But this could also be a reason to not implement this option at least for the V10.13.16 release. And then if enough people, after a stable update including the new panel, say they want the old one back, we can look at implementing it again in the following update.
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

Although demand for it is somewhat low, due to how strongly some people feel about this I've gone ahead and implemented a "Compact Skill Panel" option which gives a skill panel the same size as the old one.

There are a few differences from the old skill panel:
- No switching between minimap or extra buttons, it just always has the minimap. (There was still space for one extra button, so you still get a Fast Forward button.)
- It still uses the new skill panel's minimap code, just with a smaller area. So you still get the improved click-drag, and the option of using a high quality minimap.
- There's a small space between the last digit of the time limit and the right edge of the panel. This is because the new panel has one less character worth of space above the buttons, and I did not see it as worth the effort to add extra code to adjust for this when using the compact skill panel option.

Attached screenshot shows a 1920x1080 fullscreen shot with the compact panel, level at 7x zoom, panel at 5x zoom. (Capping at 5x is a bug which I fixed since taking this screenshot - a 1920x1080 window / screen should allow the panel to go up to 6x zoom when using the compact panel.) Level in screenshot is Sharp 11 "Lem 51" from Lemmings Plus Omega II.
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)