[DISC] Improvements to Skill Panel | Screen Sizing

Started by WillLem, February 06, 2023, 05:55:56 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

WillLem

It's just occurred to me that doubling the panel up vertically might not be so terrible, allowing all 21 skills to be displayed in full glory with full-sized numbers, and allowing more features to be implemented as panel buttons. Here's a mockup:



Note that the purpose of this mockup is, at this point, to preserve the current NeoLemmix layout whilst adding in all skills. It's very likely that the above layout would be revised and perfected. More buttons could be added, bringing the total of buttons as high as 38 (equal to the current width of the NeoLemmix panel) or 40 (increasing the current width by a single button).

Furthermore, if the ability was added for players to fully customise their panel buttons, they could decide for themselves whether they want to make use of all (30/38/40) buttons, or condense down to (15/19/20) for a single-line layout. In fairness though, there probably wouldn't be much point in doing this, since the minimap is already the height of 2 buttons (in the above mockup, that is).




Since Stoners rarely get much love, here's a simple level demonstrating a scenario which would only be possible if they were kept in the game!

WillLem

#1
A quick mockup of how the panel could look with different coloured buttons for RR, Skills and Utilities (Note also the different coloured numbers for RR, to further distinguish it from the skill numbers).

I've also added in a button for the Grenader skill, since if SuperLemmix ever exists, it will be with this added back in. This brings the total number of skills to 22, meaning an even number of buttons for the 'skills' part of the panel. There is also now a button for CPM/Toggle Skill Shadows and another for Load/Save Replay.

It's not perfect, but it seems to be a step in the right direction:


WillLem

#2
Another new panel mockup.

This extends the number of skills displayed to 16 whilst removing the restart button, which is arguably unnecessary due to hotkeys. Meanwhile, the CPM / skill shadows / load & save replay buttons have been made into smaller circular buttons in the top left of the panel. The text has been condensed slightly, and I've use a smaller version of the font from SuperLemmini.

Much happier with this panel tbh, I think it looks way better than stacking the buttons. 16 seems a better number of skills to allow per level as well; allowing all 22 could potentially cause some horrendously messy levels!

This seems to be the way forward, I'll concentrate on making this one:



As for customisation, I think the above panel is simple enough that a compact version won't be necessary. The small circular buttons would be made optional, and would not be displayed when in Classic Mode.




Where I'm up to with this:

:tal-gold: I've added the extra skill buttons, bringing the total displayed up to 16. Ran a test level and all 16 skills are indeed usable! I've had to resize the minimap somewhat to fit the extra buttons on.

:tal-gold: The Level Select screen can now also display 16 skills. SuperLemmix is now fully test-ready for 16-skill levels!

:tal-silver: Put the new panel graphics in, including the squiggle! The font still needs further tweaks. Not bothered about having different coloured buttons tbh, the panel is looking good enough the way it is.

:tal-gold: I've successfully removed all code for the compact skill panel.

:tal-gold: Panel text is now in the correct position to allow for the small circular buttons. EDIT: I've since decided against doing the small buttons, I like the way the panel looks without them. I could either move the panel text back where it was or leave it as-is.

WillLem



Here's how the panel is looking now. Shrunk the minimap a touch to get the FF button back on. The purple squiggle does nothing at the moment, but I can make it be a CPM on/off button. Thoughts?

Proxima

How come nuke and fast-forward are switched?

WillLem

#5
Quote from: Proxima on February 28, 2023, 06:54:29 AM
How come nuke and fast-forward are switched?

Because Pause and FF are both game-speeds, whereas Nuke and Restart are game-finishers (in that a player tends to reach for these when they want to either finish the level or try again form the start). It just made sense for them to be grouped this way.

I suppose Restart and Nuke could be swapped, actually, since Restart is more like an "instant-backwards" than an actual game finisher. That might make the most sense. It would also keep the buttons with the green symbols together, as well.

EDIT: I've now done this, it looks better. Also, the Squiggle is now a CPM button :lemcat:



Also, at the moment, Nuke and Restart aren't "selected" in the same way that the other buttons are, but I would like to look at making this happen at some point.

WillLem


Simon

It might be worthwhile to ask about specific minimap use.

I never look at the minimap, and I never click on it. But I also complain about NL's failure to preserve mouse-on-map while zooming, and nobody else seems to zoom that much to be bothered by NL's failure to preserve mouse-on-map.

-- Simon

jkapp76

#8
Here's a few icons that I enhanced for NL. The + and - and pause I took from Lemmings 95 and recolored.

I have a LOT more of these, but I think these represent the best standard style. I use a different crosshairs cursor and so on...

The NUKE is clearly improved.
...Jeremy Kapp

WillLem

Quote from: Simon on March 01, 2023, 01:43:29 AM
mouse-on-map

Hmm, what's this? Is namida already looking into it for NL?

Quote from: jkapp76 on March 01, 2023, 01:57:34 AM
Here's a few icons that I enhanced for NL

Thanks for these, Jeremy. The CPM/Load Replay button you have is actually based on the one I created ;P Meanwhile, I'll be happy to get that Nuke button in if it isn't different to the one I have already (looks like it might be the same...?) and I'll take a look at the others as well. I prefer my black and white Paws button though, that's one's staying as it is!




OK, the poll votes seem to be spread fairly evenly between wanting more skills, better minimap functionality and more function buttons. The best balance seems to be to reduce the skills to 14, keep all 4 buttons (and the squiggle!), and stretch the minimap back to a reasonable size. Here's the result:



Much more in love with this tbh, I think this hits the sweet spot. In reality, 16 skills per level is a lot to keep track of, especially on a horizontally-oriented panel. 14 is still a lot, as I'm sure Lix players already know!

I could still change my mind on this one, but I think the initial release will feature this version. If enough people want to see 16 skills, I'd be happy to re-implement it at the cost of minimap space and 1 button (maybe the squiggle, which is currently a CPM toggle!).

jkapp76

Yes, my nuke is improved over that standard one.

I like my green pause because it stands out, uses the same green shades, and comes from lemm95.

I use the theme below. I prefer this purple, but I made the same theme in a few colors. Only other thing is the crosshair selector and also those big red arrows, I made them less round and more like they're pointing.

Use whatever you want and leave out the rest.
...Jeremy Kapp

Simon

#11
Quote from: WillLem on March 01, 2023, 02:13:21 AM
Quote from: Simon on March 01, 2023, 01:43:29 AM
mouse-on-map

Hmm, what's this? Is namida already looking into it for NL?

NL bug: Zooming into the map should preserve mouse-on-land.

namida hasn't replied to that.

The point is that nobody else is complaining about this, even though it absolutely breaks my habits until I ragequit. Thus, I assume people have other habits (regarding zooming and scrolling) than I have. Since the minimap allows you to scroll the main map, you might be interested in how people get around the map before you keep/ditch minimap.

-- Simon

WillLem

Replied to the zoom bug in-topic. I'm happy to help look at it, for sure, but might struggle if I'm tackling it on my own at this stage.

Meanwhile, yes, good point: anyone want to give some input as to how they use the minimap?

I tend to use it to "jump" from one place to another (so, bigger is better really); the edge scrolling is more than adequate for moving around a level in a smooth motion, so I very rarely use the minimap this way.

WillLem

#13
From a discussion on Discord:

It's been mentioned that 16:9 is something of a standard for Desktop apps, since most screens are in that ratio. It works great for NeoLemmix/SuperLemmix when in FullScreen mode, but Windowed mode currently leaves something to be desired.

I would strongly recommend a 1780 x 900 window size. This fits the panel at 2x zoom and levels at 2x zoom, with an increased amount of width for the wider levels. It may not be ideal for recording or streaming, but you can always "Widescreen" out the top and bottom of the screen with black borders if needs be (it's what I've always tended to do when recording a NeoLemmix LP); most desktop recording apps make it relatively easy to do this.

In the meantime, I'll look at ways to reduce the panel size a bit; even getting it down to 1700 * 900 might be something of an improvement for those who prefer less width in Windowed mode. I don't really want to lose more skills (if anything, I'm still considering bringing skills back up to 16!), but I might have to forego the squiggle or nerf the minimap.

I'd like a bit more feedback on this before making any decisions though. In particular:

What zoom settings do you normally use for NeoLemmix?

Do you have your display full screen or windowed, and if windowed, exactly what size do you prefer? (you can find this out by looking in the NeoLemmix/settings/settings.ini file, look for WindowWidth= / WindowHeight= )

What do you think of the new wider panel in SuperLemmix? Too big? Just right? Or is there room to add even more, in your opinion?

Have you tried the recommended Width & Height settings? (i.e. 1780 x 900) What are your thoughts on this?

If you want to remove all wasted vertical space, you could even try 1780 x 860 and 2x zoom for level and panel. This nerfs the menu screens, but is great whilst in-game ;P

Proxima

Went over this in discord, but in case it helps to have everyone's responses in the same place:

* 2x game and 2x panel (with hi-res)
* Windowed, 1600 x 900
* Too wide
* The problem with 1780 x 900 is that it's even wider than 16:9, so for video recording / streaming, you get empty space above and below, and you have to shrink the Lemmings window further (leading to more empty space) if you want to add facecam, livesplit or anything like that.

Dullstar

In case it is helpful: The Lix default for windowed mode is 1280 x 720. This size seems pretty reasonable for a windowed mode; would recommend trying to make the panel work at this size if at all possible.

Lix doesn't have a minimap though, which probably helps a lot to make everything fit.

I agree you probably don't want to deviate much from the standard aspect ratio if at all possible. Ideally, windowed mode is just like fullscreen mode, but smaller.

Dullstar

#16
For what it's worth: I use the minimap sometimes, but thanks to the fact that Lix doesn't have one, I know that I'm really not at all attached to it - if it were hypothetically completely removed, it wouldn't take me long to adapt to its removal. That said, it may be more useful to classic mode players who can't just rewind when they miss something.

That said, it should be noted that many people use the minimap for quick scrolling, so it's important that you have a good alternative to it if you ditch the minimap. One possible alternative method that works in Lix is zooming (you zoom out, point at the new spot, then zoom in, though of course this wouldn't work very well without a scroll wheel, but those have been standard on mice for quite some time and I doubt there's many people trying to play the game on a laptop trackpad). This does not work well in NeoLemmix (as Simon has pointed out, not many people have complained about this, and it seems quite likely that a reason for that is just that you can use the minimap instead, and the minimap predates the zoom function).

Many levels these days break the minimap anyway; it doesn't function well on levels that are too tall: a minimap that can't fit the whole play area is unable to fulfill its role in helping to see what's happening offscreen.

Proxima

Quote from: Dullstar on March 02, 2023, 07:29:33 AMIn case it is helpful: The Lix default for windowed mode is 1280 x 720. This size seems pretty reasonable for a windowed mode; would recommend trying to make the panel work at this size if at all possible.

The problem with that is that all levels of the original Lemmings games are 160 pixels high, which becomes 320 in high-res. This is also by far the most common height for NeoLemmix levels, because of tradition and the number of direct imports of older content. It's true that SuperLemmix is a new engine, but it's carrying on the Lemmix - NeoLemmix tradition, and especially in the early days, most of its content will be imported. So we can expect 320 to continue to be the default level height.

Add on 40 pixels for the skillbar (80 high-res), and you have 400. So a window 720 pixels tall means the maximum zoom is 1x and you have a lot of wasted space.

The obvious height to aim for, then, is 800, the minimum possible to support both the level and skillbar at 2x zoom.

A possible window size would be 1424 x 800, but then of course you have the problem that WillLem wants to have more than NL's maximum number of skills per level, which either requires a wider skillbar or shrinking the individual panels or dropping the minimap (or giving up on that idea).

WillLem

#18
OK, had a chance to sleep on this and have another look at the poll results and comments so far. There's also been discussion here around the default window size, which currently needs to be horizontally stretched t0 at least 1776px to fit the panel at 2x zoom. Clearly, something needs to give.

Of the 7 votes, only 1 of them explicitly favours the minimap, and another 2 soft-prefer it at the expense of function buttons. We have 4 votes favouring skills and function buttons over minimap functionality, so... maybe it's time to see if we can live without it.

If 1600px width is the standerd we need to be aiming for, that allows 400px for the panel area at 2x zoom (to also account for hi-res). At the moment, the panel is a whopping 444px wide, so we need to lose 44px somewhere.

If we go for buttons, these and the colourful squiggle cost 16px each, so we'd need to lose 3 of them. We could drop FF, Restart and the Squiggle; this would allow us to keep 14 skills, -/+ RR, Paws and Nuke, and the minimap at its current SuperLemmix size (it could even be 4px wider).

However, I'm not sure if I like the idea of dropping panel buttons for the sake of a feature which is arguably becoming more and more obsolete. As well as taking up valuable panel space, the minimap is also a huge drain on graphical resources, being partly responsible for lag on the FF speed (and the proposed upcoming Superlemming speed). Fast edge scrolling is a thing, as it zooming in and out of a level quickly in order to jump to a different area, and if we fix this bug, it'll probably be the final push as far as the minimap is concerned.

So, for the next update I'll comment out the minimap code (so it can easily be brought back if needs be) and we'll see how it goes without it for a bit. I'm not sure exactly how big it is at the moment, but if dropping it adds space for an extra button or two then I'll either bring back an extra skill or add another function button.




EDIT: Dullstar spoted in Discord with some number crunching which showed that we can have a double-stacked panel + level fit neatly into a 16:9 aspect.

The stacked panel was originally what I wanted to do weeks ago but I abandoned the idea when I realised how difficult it would be to try to crowbar it into the existing code. @Dullstar, if you're happy to help me with this side of things, we can absolutely look at making this happen and giving it a test run. There will eventually be 24 skills, so your mockup on Discord more than allows for every single skill to be on the panel at once (along with 12 full-sized function buttons).

MONSTER LEVELS!

WillLem

Looking at shrinking the panel to bring the width of windowed SuperLemmix in line with its FullScreen counterpart, principally by dropping the minimap.

Dullstar

I thought of a possible problem with my number crunching that may affect you that I didn't think of: because I prefer the original pixel art graphics, I completely forgot about high-res mode, which could affect what zoom levels look good. (I can probably still make that many buttons work, but I might have to redo the overall sizes if e.g. x3 or x5 zoom levels look bad when using that mode: if you use high-res mode, it would be helpful if you could give an opinion on how those zoom levels look -- assuming high res mode doesn't just not allow those levels).

WillLem

#21
In hi-res, everything stays relatively the same size but actually uses a bigger graphic, so 40px for the panel becomes 80px for the panel.

My maths will be nowhere near as good as yours, but if it helps I usually have the level at 2x zoom and the panel at 2x zoom in a 1800ish x 900ish window (I actually resize my window quite a lot depending on what I'm doing, but that figure is the standard for when I'm settling in to play some Lemmings).

The above gives me the larger panel, stretched across the full width of the window, and the level looks a decent size but with some empty vertical space above it. I'll screenshot and post it in Discord.

Proxima

Quote from: Dullstar on March 02, 2023, 07:37:21 PMI can probably still make that many buttons work, but I might have to redo the overall sizes if e.g. x3 or x5 zoom levels look bad when using that mode: if you use high-res mode, it would be helpful if you could give an opinion on how those zoom levels look -- assuming high res mode doesn't just not allow those levels.

It doesn't. Or more precisely, high-res allows 1x, 2x, 3x zoom but these now refer to how many screen pixels per high-res pixel, so high-res 2x zoom is the same as low-res 4x, and so on.

WillLem

#23
This post may contain mathematical/logical errors, so please bear with me!

OK, let's start over with this.

NeoLemmix currently has a minimum size of 832 x 400 in Hi-res (and, a teeny tiny 416 x 200 in Low-res!), which is about 19:9 aspect. It doesn't let you shrink the screen below the standard level height (160px) + panel height (40px), and actual panel width (416px altogether).

It just so happens that my own personal preference for both NeoLemmix and Lix seems to hover around 1800:900, or no less than about 40px smaller on either edge. Since NeoLemmix (and indeed SuperLemmix) currently has a native 19:9 resolution when in-game (i.e. only the menu screens are actually 16:9 - I'd ideally like to tile the background image if at all possible), I see no real reason to thwart that for the sake of meeting an arbitrary standard.

However, if we really do want to make windowed mode 16:9 as standard, then I'd like to start not by shrinking the panel, but by enlarging it to make "1x zoom" bigger as standard, and therefore not allowing the screen to be dynamically shrunk past that point widthways (so, no more having a teeny tiny panel until you stretch the screen out to the right point; it wouldn't allow you to shrink the screen below the panel's actual width, which is already current behaviour). Essentially, that means that the 2x zoom hi-res panel would become the new 1x zoom panel for both resolutions, filling as much of the available 1600px as possible.

With this in mind, I wonder whether the panel could be designed without the minimap to fill a good amount of space within the 1600px - let's say we make it 1200px wide, for the sake of discussion. Then, if someone like me does want to extend their window out to 1800px or more, they get the minimap!

Since most screens are now 1920 x 1080 minimum, the FullScreen panel would of course include the minimap as well.

With all this said, we're assuming that users have a minimum 1600 x 900 screen if we go ahead with this, but I'd say it's a safe bet nowadays with screen resolutions being sometimes 4x that amount.

Dullstar

For what it's worth, I think there's a strong argument for 16:9 as the standard aspect ratio, *but* I don't think it makes sense to force 16:9 as long as the panel physically fits at x1 zoom for the currently selected resolution (as in high-res vs. low-res graphics). I don't think you're implying that you would do that, but I wanted to state it explicitly.

Because the 160 pixel level height is so common, I think it's a good reference point for the level size. It's kind of arbitrary, but I figure there's enough existing content that there's a strong argument for keeping the tradition unless we can really clean up the layout by making the default something else (I feel like it looks nice when the default height fits exactly, personally).

WillLem

BOOSH! Got it!

In low res, 3x panel zoom is perfect: 1332px wide, without having to change anything (in fact, we could add stuff to bring it up to a nice even 1400px).

So... the new form factor for low res can be as much as 700px, bringing the hi-res 1x zoom to 1400px. Perfect!

(I might have all of this drastically wrong, but I hope not!)

Proxima

Quote from: WillLem on March 03, 2023, 06:05:06 AMIn low res, 3x panel zoom is perfect: 1332px wide, without having to change anything (in fact, we could add stuff to bring it up to a nice even 1400px).

1400 isn't a nice even multiple of 16. You could consider aiming for 1424 x 800 -- in fact, that's what I have my NL installation set to now, after the present discussion made me re-examine my choices :)

WillLem

Quote from: Proxima on March 03, 2023, 06:29:53 AM
1400 isn't a nice even multiple of 16. You could consider aiming for 1424 x 800

The idea isn't necessarily to make the panel fill all the available space, just to definitely fit within a 1600px-wide window. And, I'd much rather err on the side of it being larger rather than smaller, due to (a) ease of reading and (b) the added features (more skills, etc)

jkapp76

one of the reasons I modified your CPM replay icon is because the NeoLemmix introduction pack mentions this button as grey and pink.
...Jeremy Kapp

namida

The other issue to keep in mind with 800px tall, is that some displays - lower-end laptops in particular - have a resolution of 1366x768 and thus an 800px tall window will not fit on the screen.
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)

WillLem

#30
My maths is getting away from me with all this panel stuff tbh.

I keep thinking I've found a solution, but then I'm forgetting how tall things need to be. Is the panel 40px or 80px? Does this change as we zoom in? And what about the resolution? I very quickly get lost.

Ideally, we'd have a window that fits nicely on a 1366 x 768 screen with room at the side for streaming/speedrunning purposes. The same window should, ideally, also be proportionally about the same on a 1920 x 1080 screen.

And, the panel should have about 1-2cm of blank space either side of it when in fullscreen (as it currently does); this is my own personal preference, I'd like it if we can make this happen alongside the above (this is because I prefer to stretch the window edges almost all the way out to the side when I'm playing in windowed mode).

If better methematicians than me are happy to crunch the numbers, I'd be more than happy to look at a graphical redesign of the panel, if needs be.

In the meantime, the next release of SuperLemmix will continue with the panel the same size as it is now and the window will default to 1776 x 800*, with my apologies if you have a 720p display or prefer a 16 * 9 aspect in windowed mode. As a compromise, I'll look at tiling the background image in menus so it doesn't look so bad.




*FWIW, this is no arbitrary figure. It allows 2x zoom in hi-res (4x in low-res) for both level and panel, with no wasted vertical space on standard-height levels. It also fits very nicely within the centre of the screen on a 1080p laptop, with plenty of space at the bottom for the Windows taskbar, and at the top to access the menu bars of other applications/internet browser/desktop files/etc.




EDIT: 1332 x 600 would be the equivalent of my own preferred window size on a 720p display. Just making a note of that here in case it comes in useful later.

It's looking like we're going to have to go down the Lix route of having different panel graphics per resolution. This might not necessarily be a bad thing, though. Maybe it's long overdue. I'm happy to do the legwork to get the images we'd need.

WillLem

Quote from: jkapp76 on March 03, 2023, 04:46:06 PM
one of the reasons I modified your CPM replay icon is because the NeoLemmix introduction pack mentions this button as grey and pink.

Cool! It looks great :thumbsup: I found a folder yesterday with a bunch of your panel icons and other graphics in as well, you've really done some great work. If you want to help with a new panel design, your input would be very welcome.

For a start, do you by any chance want to help me work on a new panel font? I'm looking at increasing the available width-per-digit from 7px (current font in SuperLemmix) to 10px (also reducing the height of each character a bit would be best as well). If you have time and want to try out a few different fonts, I'll have a look at trialling them in the next RC.

The red and blue R, icons for hatch, lems out, goal and time limit can also each be increased to 10px width, so there may be some room for improvement with those as well.

Silken Healer

If all skills end up being possible in the skill panel at once, will you show all skills even if they're not used and set it to "0" or blank like the original Lemmings? Even if just for classic mode?

WillLem

Quote from: Silken Healer on March 04, 2023, 03:41:17 PM
If all skills end up being possible in the skill panel at once, will you show all skills even if they're not used and set it to "0" or blank like the original Lemmings?

Yes, definitely. It would be way better than having a bunch of blank panels. I'd probably just not display a number at all if the skill isn't used in the level, to make panel browsing easier.

Silken Healer

Yes. I checked and it was blank not zero :)

jkapp76

#35
I'm not completely sure if this Font will work with the height, but it's my favorite so far.

Every number is square and symetrical. No odd-shaped 6 or any off-height characters like some fonts. And it's a clean, narrow look that can be read quickly.
...Jeremy Kapp

WillLem

Quote from: jkapp76 on March 04, 2023, 10:16:39 PM
I'm not completely sure if this Font will work with the height, but it's my favorite so far.

Every number is even. No odd 6's or any off-height characters like some fonts. And it's a clean, narrow look that can be read quickly.

Nice! Very clean-looking. Do you have any others?

I'm currently experimenting with an old computer-style font which I quite like. I like the idea of keeping it stylish and cartoony.

jkapp76

I've been through a few hundred. Most fonts look bad that small or won't get narrow enough.
Here's the only other one I like so far. I aimed for a more comic style with The Lemming font in mind too.
...Jeremy Kapp

jkapp76

Also, since you seem to have an issue with the minimap, how about swapping it for a good old fashioned "Pan Screen" slider?
...Jeremy Kapp

Proxima

I made this suggestion to WillLem in discord, but I'm reposting it here so that it becomes part of the public discussion.

The desire for more skills in the panel has made the panel wider than NeoLemmix's, so the width:height ratio is becoming a problem. To counter this, WillLem has suggested 4x zoom for the level and 3x zoom for the panel (as the default; users would still be able to set their own preferences). That doesn't work nicely for hi-res, so the proposal is to make a new hi-res panel that's 50% larger than before (i.e. 1332 x 120).

But then we have different window proportions in hi-res and low-res.

So, my suggestion is that both the hi-res and low-res panels should be 50% larger than before. In other words:

* The low-res panel is now 666 x 60. That means there is a lot more space available for the text.
* The level would have a minimum of 2x zoom, in other words, old 2x becomes the new 1x. That means the level area can be the same in low-res and hi-res, so we don't have to worry about making things work nicely in two different modes any more.
* The minimum level area is 666 x 320, slightly wider than the 640 x 320 "one-screen level" such as "Quote: That's a good level".
* The minimum overall window is 666 x 380, slightly smaller than a 16:9 ratio (which would be 676 x 380). Or we could bump it up to 676 x 380 by making the minimap slightly larger.
* Users with a 1366 x 768 screen can (just) fit the window at 2x zoom, if we're okay with only leaving 8 pixels for the title bar.

Quote from: jkapp76 on March 05, 2023, 01:48:25 AM
Also, since you seem to have an issue with the minimap, how about swapping it for a good old fashioned "Pan Screen" slider?

While a nice suggestion, that doesn't work for vertical scrolling levels.

WillLem

#40
Quote from: jkapp76 on March 05, 2023, 01:48:25 AM
Also, since you seem to have an issue with the minimap, how about swapping it for a good old fashioned "Pan Screen" slider?

I thought about this one, I'd probably do it as two large arrows either side of the panel. Maybe clicking and holding could fast-pan, whilst clicking and releasing could "jump" the screen a fixed amount (the amount could even be configurable to user's preferences)

Certainly, if we don't manage to get panel + minimap sorted and working is some format that we all think is decent, this idea could work.

Quote from: Proxima on March 05, 2023, 02:01:09 AM
So, my suggestion is that both the hi-res and low-res panels should be 50% larger than before.

Right, OK. So, the new low-res panel would be half of its current 3x zoom? (So, it's current 3x zoom would become its new 2x zoom) and the hi-res panel would be the low-res panel at 2x zoom anyway.

Yes, that could work. And it means we can look at rebuilding the panel from scratch, without the constraints of current graphics/proportions, etc. Tempting prospect, but a lot of work for a program that currently has a very small audience. SuperLemmix 1.1.1 has only had 2 downloads so far, and I'm pretty sure one of them was me!

Quote from: Proxima on March 05, 2023, 02:01:09 AM
Or we could bump it up to 676 x 380 by making the minimap slightly larger.

Yes, let's do this. Getting the 16*9 is worth it if it's as easy as making the minimap bigger.

Quote from: Proxima on March 05, 2023, 02:01:09 AM
Users with a 1366 x 768 screen can (just) fit the window at 2x zoom, if we're okay with only leaving 8 pixels for the title bar.

I'd suggest that if we're making a new panel, we should make one with slightly shorter buttons and/or a slightly shorter font, so this would allow more level area without compromising the title bar. If we're making the effort to sort all this out, we might as well make it fit nicely on the smallest standard screen size.

WillLem

OK, after a lot of thought about this, I've decided that the panel will be drawn to 450 x 40, doubling to 900 x 80, tripling to 1350 x 120, and quadrupling to 1800 x 160.

It will feature:

<<< :lemming: -/+ RR :lemming: 14 Skills :lemming: Paws, Rewind, FF, Restart, Nuke :lemming: Squiggle (hidden CPM button!) :lemming: Minimap :lemming: >>>

Instead of going off in-game resolution settings, the biggest possible panel will always be chosen based on the user's screen/window size, to allow for more dynamic resizing of the game window regardless of level resolution.

Rather than a "Panel Zoom" dropdown, I'll replace this with a "Window Size" dropdown to allow users to snap their window to the recommended settings for each panel (dynamic resizing will remain effective, of course).

OK, now to get cracking on it...

WillLem

#42
Working notes.

The new panel code will have to look something like this:

New function "ScaleFactor"

If window/screen <= 450, ScaleFactor = 1
If window/screen <= 900, ScaleFactor = 2
If window/screen <= 1350, ScaleFactor = 3

For ScaleFactor = 1, use panel450.png
For ScaleFactor = 2, use panel900.png
For ScaleFactor = 3, use panel1350.png

(each panel graphic will have the icons pre-drawn onto the graphic itself rather than overlayed; there will be an unused blank button graphic in gfx/panel to help users with designing their own buttons)

procedure DrawPanel;

Step 1: Lay down the panel.png
Step 2: Draw the correct skill icons
Step 3: Make clickable areas
Step 4: Assign functions to the clickable areas
Step 5: Draw the minimap
Step 6: (use existing Minimap code for functionality)

(All code for drawing the panel will be multiplied by the ScaleFactor)

---

(To further add to the confusion, I'm looking at getting RR/SI onto one button; if this proves too difficult/not worth it, then it will remain as 2 buttons)

Then, there will need to be code to multiply the (correct) panel if the screen is a certain size; not sure exactly how to do that yet but there probably is a magic formula for the purpose, maybe even in the existing code :)

WillLem

#43
Right, after letting this one sleep for a week, I've come to yet another decision about it.

Basically, I don't think it's worth the effort of managing 3 different sized panels. Bug potential and other programming headaches aside, it means that users who want to customise their panel have to do so 3 times. This is not very user-friendly, and undermines one of my favourite things about NL/SLX.

Meanwhile, whilst thinking about all of this, I noticed that the existing code can handle resizing graphics and clickable areas - in the menu screens!

So, I'd much rather go down the route of hard-baking a single-size panel to the bottom of the screen, and have it dynamically resize with the window. This way, the user can set the window size to whatever they like, and the panel will simply resize with it. From what I can see, NL has a minimum screen size which is smaller than the menu's background image, so it is absolutely capable of downscaling as well as upscaling. I wonder whether this code can be applied to the panel as well. If it can, then I'd say we have our solution.

Furthermore, given the multiple scaling solutions (namely zoom, bilinear filtering and pixel-art upscaling), I wonder if it would be possible to employ all 3 depending on how big the resizing is (so, if exactly double then zoom/pixelart, if somewhere in-between then bilinear). I also wonder if it would be possible to work in an even better scaling algorithm.

WillLem

#44
I'm a step closer to achieving what I originally set out to achieve with the panel; what do we think of the different coloured buttons for RR, Skills, and General Functions?

Rewind works, but is very buggy at the moment:



I'm currently locating all code which might be intertwined with the panel zoom; this will all need to be changed to allow it to dynamically resize with the window. Watch this space.

jkapp76

I like the different colors for the buttons. But now the grey looks out of place. Maybe swap the grey for green or something?
...Jeremy Kapp

WillLem

#46
Quote from: jkapp76 on March 23, 2023, 11:21:28 PM
Maybe swap the grey for green or something?



I went for a dark, leafy green (007F0E) so that the Lemmings' hair would stand out. Could probably go even darker tbh, the above is a quick fix to see what it could look like.

Thoughts? I'd be happy sticking with the grey, personally, but if people prefer green we can go this way with it, for sure.




I could also do with some help with the rewind button if anyone has any programming experience and doesn't mind giving me half an hour or so to help debug.

jkapp76

#47
I definitely prefer the green.

I color my own too, I think I posted them here somewhere, I prefer purple on mine. I think it pops like no other and the green hair looks great over it. I just wasn't sure if it was too bold to actually suggest.

P.S. Also notice my improved nuke icon.
...Jeremy Kapp

WillLem

Tried this shade* of purple today. Looks good, I probably prefer it to the green:






*Hue adjustment: 50, 110, -8 from Ocean Blue

jkapp76

I use Hue to get my colors too.

I prefer the purple. I like adding colors instead of reusing colors already present.

I miss the (framestepping) button on NeoLemmix. The black DOS background color could easily be a graphics setting.
...Jeremy Kapp

WillLem

Update on the progress of the new skill panel.

I haven't figured out how to make the panel dynamically resizable yet, still looking into this.

In the meantime, I have managed to implement a "Show Minimap" option in the Config menu. Unchecking this removes the squiggle/minimap from the panel and centers the remaining buttons/text. It also unchecks HQ Minimap, so there is no rendering lag*. This idea was inspired by reading through some old posts from when namida was culling features in NeoLemmix; I happened upon this reply from minim which sparked the idea to make the minimap optional.

This should be a good enough workaround for those who need a smaller window in the meantime (it could even be considered that shrinking the screen beyond its ability to display the minimap automatically triggers this behaviour, but I'd honestly rather spend my time looking at dynamic resizing than attempting to do this).

So, here's how to two options currently look:








*I went through all the minimap code I could find to try and disable any rendering at all when Show Minimap is unchecked. I kept finding that whenever HQ Minimap is checked, there is lag. Then I discovered some areas that HQ Minimap seems to play with independently of the actual drawing/rendering code, so this is likely what needs to be updated. If people like this feature, then I'll go ahead with a proper implementation. For now, hacking it via the checkboxes does the trick for testing purposes.