SuperLemminiToo v1.51

Started by Charles, October 08, 2021, 05:32:45 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

jkapp76

Charles: I don't mind if you use any part of my work. I submit it all to be used freely, in any way anyone chooses.
...Jeremy Kapp

Charles

Quote from: WillLem on November 20, 2021, 10:18:49 PM
Out of curiosity, how will renaming the icons help with mods being able to support both? Am I correct in guessing that a mod will be able to contain icon sets for both the un-enhanced and the enhanced style, and whichever is relevant will be selected?

Not exactly...

To support the larger "enhanced" iconbar, I needed to rewrite the entire iconbar drawing routines... for both standard and enhanced.  The last thing I wanted to do was support two full sets of art assets for the two sizes of icon bars. So I rewrote the iconbar drawing code to layer images on top of each other.  That way I can simply create a single set of all the icons with transparent backgrounds, and 1 of each of the standard sized and larger-sized empty button icons.  Then let the game paste the icons onto the right sized background for the iconbar enabled.

You can see this in your Leminas levels with the enhanced iconbar...

It's drawing the oversized empty brown button first, then the blue button over top (and lastly the label over top of that).

It's doing the same thing in standard mode too, only the blue Leminas icon is the same size as the empty brown button in that case, so you can't see any brown peeking through.

The trouble is that as an icon designer you have to decide: am I supporting SuperLemmini or SuperLemminiToo... if you support SuperLemmini, then the "Enhanced" icons look broken, as with Leminas...  if you support SuperLemminiToo, then if you load the icons in SuperLemmini you'll see the icon over a black background, because the older engine is only drawing the single icon.

The plus side of doing it this way is as I'd said above -- you only need to create one set of icons, and a single empty button for each size you want to support.  In fact, if you're only changing the background and not the icons, you only need to replace 1 image (2 if you want enhanced and standard iconbars).

Which brings me to why changing the filename will help support both.  The existing icon_<name>.png should be an icon with background, and a new ticon_<name>.png could be the transparent icon.  So if an author wants to support only one engine or the other, they would only need to put one set of images in... if they want to support both they can put both... and then SuperLemminiToo could detect which icons are present and apply them appropriately.

WillLem

#47
Transparent icons are definitely a much better way of handling the panel PNGs :thumbsup:

Quote from: Charles on November 21, 2021, 05:02:45 AM
The trouble is that as an icon designer you have to decide: am I supporting SuperLemmini or SuperLemminiToo...

It is in fact currently possible for a mod to handle both, as long as the mod creator provides a gfx/iconbar folder with anim_(name) versions of each icon (plus an icon_empty_large). Here's a quick fix for the Lemminas mod using this method which I'll finalise once the update's out:



NOTE: It's also necessary to place PNGs for the large minimap in the gfx/misc folder - I haven't done that, as you can see it still displays the default brown minimap.




Meanwhile, I've finished a full set of animated icons, plus I've touched up the colours on some of the others. Blue seems better than red for the restart button, and I've "de-neoned" the green buttons to make them look more synonymous with the in-game colours.

I played around with a few different colour schemes for the pause button and settled on a dark red-pink colour, so that this shade still has some representation in the icon bar (which now contains mostly greens and blues). Of course, if this isn't to your liking please feel free to recolour it.

Finally, after giving the icon layout some more thought, I wondered if it might be possible to simply further increase the size of the buttons. I made a mockup panel which has the button at 58 x 40 (from 54 x 36) - this might seem quite large, but I actually think it could go even bigger. Here's how it looks, complete with newly-coloured icons:



And again, but showing the space for the numbers and labels:



As shown, this allows the icons to all be more or less aligned in the centre of the button, and the labels to be in line with each other at the base. This seems to be a decent enough solution, but obvously you'll know whether the buttons can be upsized any further or not.

See the attached icons below; I'll try to get the xmas ones done sometime this week.

NOTE: The icons attached below can be used in your copy of SuperLemminiToo by placing them into your original SuperLemmini directory in gfx/icons and gfx/iconbar. Please remove icon_empty_large from the iconbar folder if you intend to use these, as this tile is an oversized version of the button icon for demo purposes only, and will not display properly in SuperLemminiToo at present.

WillLem

Here's the xmas mod so far. All I've had time to do is recolour the tunics, add the white trim and resize the stone-grey buttons:



I'll aim to add red and white bobble hats if I get time over the next week, but at least we have something for now if that doesn't end up getting done in time for Christmas this year.

Charles

Those look fantastic, WillLem!

WillLem

Quote from: Charles on November 28, 2021, 05:30:17 PM
Those look fantastic, WillLem!

Thanks! Just wondered, what are your thoughts on the idea put forward in this post - i.e. might this be a decent solution to the new panel layout issues?

Charles

#51
new release v1.45
This is a bit of an unplanned release... I have a rough roadmap in my head, and I haven't done enough for what I consider v1.50, so this is a halfway step... v1.45.

I've finalized the filenames for the enhanced iconbar images, to properly support cross-compatibility between SuperLemminiToo and SuperLemmini.  WillLem, you'll need to make some minor adjustments to your updated mods, which is why I wanted to get this release out there as quick as I could, so you and other mod makers don't have a moving target to support.

The big changes:
* I've moved all the new images for the IconBar into the /gfx/iconbar/ folder.  (this includes iconbar_filler.png, and the 3 large_minimap_xxx.png images
* I've also moved and renamed the transparent skill icons, into the same /gfx/iconbar/ and prefaced them with ticon.
So, /gfx/iconbar/ now has: icon_empty_large.png, iconbar_filler.png, 3 large_minimap_xxx.png images, 15 ticon_<skill>.png transparent static images, 15 anim_<skill>.png animated images.

The way it works is like this... SuperLemminiToo will first check if there are any icons at all in the /gfx/iconbar/ folder.  If there isn't, then it assumes the mod does not have support for SuperLemminiToo, and will apply whatever icons it does find, even if they look ugly.  That's pretty much the behaviour v1.40 an earlier did. If there *is* a /gfx/iconbar/ folder, then it will ignore the icons in the gfx/icons folder. 

In that case, it will check for an animated icon in the mod first, then a static transparent icon in the mod, then an animated icon in the root, then a static transparent icon in the root.

So to support both SuperLemminiToo and SuperLemmini, as a mod maker, you should create the icons with background in the /gfx/icons/ folder, and transparent icons in the /gfx/iconbar/ folder (and animated icons too).  You should also use a minimalist philosophy... if your custom icon isn't any different from the default icon, don't include it -- remember the default icon will be applied over-top of your custom icon background now. So if you're only modifying the skill icons and the empty icon, all the others will get updated for free because they'll get auto-composited on top of the new empty icon.

WillLem, I haven't included your newly coloured animated icons in this update, because I just wanted to focus on locking down the filenames.  I also looked at adjusting the size of the icons further, like you'd suggested but ultimately, I'm satisfied with them as they are.  I'm considering these sizes locked in: 32x40 for the standard iconbar, and 34x54 for the enhanced icon bar. (EDIT: NOTE: The animated icons, and transparent icons are still only 32x40, but are composited into the larger background). I did move the labels down to the bottom though, for all of them.  I think I'll play around later with giving them some drop-shadow or something, so the white doesn't get so lost on all the icons, but I do like how it's more consistent across the board.

WillLem

#52
Thanks for the update, Charles. The labels are definitely in a better position now and the PNGs are much better set-up for modding, which is great :thumbsup:

The icons are still looking a bit too far down (and they now overlap with the repositioned labels). If the buttons aren't going to be resized, then simply moving the icons up about 6-8px each should do the trick to fix this. I tried resizing the animations themselves by adding a few pixels to each frame, but this didn't work; the frame size seems to be baked into the code rather than read from the PNG file itself. That being the case, it does need to be fixed code-side.

If I get some time I might have a look at this myself to save you a job. Ultimately, it is definitely worth getting this feature just right.

Meanwhile, I'll have another look at getting those Christmas hats animated. I'm trying to strike a balance so that they still looking like lemmings (i.e. some green hair still showing), and it's proving to be quite difficult. I'll keep coming back to it though, it will happen eventually.

WillLem

#53
Quote from: WillLem on December 02, 2021, 01:43:59 PM
I tried resizing the animations themselves by adding a few pixels to each frame, but this didn't work

Scratch that, I've managed to sort it out from within the PNG files. Some of them had a bit more room to manoevre than others, the only problematic ones were the Bomber and Pause icons.

Here's a fully fixed set. They look like this without labels:



And with labels:



Note that each icon needed its own amount of tweaking to get it into the optimal position; some were moved by as much as 7px, others only 2 or 3px. If you want to sort this out code-side instead, let me know and I'll provide a list of how much movement each icon needs.

Note: I've also attached the xmas mod with the same fixes, plus large_minimap PNGs.

Place the attachments into gfx/iconbar and mods/xmas in your SuperLemmini resources directory if you want to use them.

Charles

I've struggled with the icon bar a lot.  I really wanted to stick to the original animated icons as much as possible, which is why I settled on as large a size as I did. The animated icons from Lemmings 95 are 32x40 pixels, so to put that in a button I need to add a 1 pixel border all around, bringing me to 34x42. Then to bring in the skill counters, I needed to add 9 pixels (34x51), then add some padding so they're not touching the edge of their black background, nor the (theoretical) top of the icons. Thus 34x54.

But, if I look at the animated icons themselves, there's only 2 frame of 1 icon that actually maxes out the full 32x40 size... the bomb, when it's exploded.  All the other icons have a fairly large blank space at the top, almost as if they're expecting to accommodate a skill counter already.

It was my trying to fit each icon to the fullest that caused them to be really badly weighted on the buttons.

I've decided to change my stance a bit... There's no reason to keep all the icons on the floor all for the sake of 2 frames of an explosion not being covered by the skill counter. I'm moving all the icons up 5 pixels in code to better center them, but I'm leaving the actual icons as they are -- sorry for making you make so many changes to your icons, WillLem.

I've also taken another look at the colours. I appreciate the efforts you've gone through to recolour the icons away from the outdated 16-colours.  I personally think they look a bit dark. I know they match the original static icons very well, but I'm leaning to something a bit brighter, and that fits more in line with the actual lemming sprites themselves.  So I've also recoloured the animated icons myself, basing them around the lemming sprites... I haven't matched the colours exactly, but I have tried to make them at least resemble the sprite colours, while retaining a certain "pop" with their brightness.  Tastes will vary, but I like the look of them.  I also chose to keep the restart icon Red.  I like the urgency/danger that red denotes.  Restarting the level is a non-reversable process, and isn't for casual clicking.

I'll publish that update shortly -- v1.46.  And after that I don't plan on doing any work on the iconbar for a while -- there are many other interesting areas I'd like to touch up next.

Charles

Updated release: v1.46
- updated animated icons to 256-color from 16-color.
- moved enhanced iconbar icons up 5 pixels.

WillLem

#56
Quote from: Charles on December 03, 2021, 06:13:43 PM
sorry for making you make so many changes to your icons, WillLem

Oh hey, that's no problem at all. Make no mistake - playing around with the graphics is something I enjoy, and would almost certainly do anyway. My copy of SL has always been modded to my own personal preferences, and SL2 will almost certainly follow suit.

All I'm really doing is suggesting that my inevitable mods might be preferable to others as well (although, if they're as bothered about graphics as I am, they likely have their own preferences anyway ;P). The great thing about all of the Lemmings clones (NL, SL and Lix) is that they allow this extent of user-customisability. As long as they remain that way, it's all fine by me :thumbsup:

I've had a look at the iconbar for 1.46 and it looks great, the positioning is now much better (probably even better than mine, tbh!) I'll still likely recolour them to my own prefs, but the current default is a winner, for sure. Great work!

WillLem

Regarding the Timed Bomber option:

Is there any way this feature can be enabled/disabled per-pack (or per level), i.e. from within the levelpack.ini file (or level file), thus overriding the user-selected option?

This would be a very useful way for pack authors to at least indicate whether or not their pack (or level) is supposed to be played with or without Timed Bombers, and thus give players the best chance of solving it. Of course, users can always override this by editing the levelpack.ini (or the level file) if they wish.

Since it may be required to assign a Bomber within the first 5 seconds of the level, or (in the case of my SUPERLEMMINGS packs) be nigh on impossible to solve the levels using Timed Bombers at all, it's definitely worth allowing this option to be author-led if possible.

Of course, if a pack specifies neither then the user-selected option would take precedence.

If you don't like this idea, then maybe another way around it would be to allow a pop-up indicating that the option should be turned on or off in order to play the pack/level (this would only appear in the event of a conflict). The user then has the choice of whether to take or ignore the advice.

I'm suggesting this mainly to potentially save players a lot of time. This is one of the unfortunate consequences of having an option which necessarily affects gameplay, and conflicts with a previous standard. I'm all for Timed Bombers and have been very vocal in my support for them returning to SuperLemmini, but this is something which could do with at least a quick look now that they have been re-implemented alongside their Untimed counterparts.

Charles

Quote from: WillLem on December 13, 2021, 06:37:33 AM
Regarding the Timed Bomber option:

Is there any way this feature can be enabled/disabled per-pack (or per level), i.e. from within the levelpack.ini file (or level file), thus overriding the user-selected option?

Yeah, absolutely. That's part of my plans for sometime in the next couple of versions.

I'm going to change the options toggle into a timed bomber override, as a trinary toggle, with on being yes timed bombers, off being no timed bombers, and maybe being use level specified setting.
If the level doesn't specify, it will be no timed bombers (as that seems likely to be the most compatible with how the state of the Lemmings fan communities are today).

I'll also update all the levels included with SuperLemminiToo to specify timed bombers are enabled.

WillLem

#59
Quote from: Charles on December 13, 2021, 03:02:49 PM
I'm going to change the options toggle into a timed bomber override, as a trinary toggle, with on being yes timed bombers, off being no timed bombers, and maybe being use level specified setting

That's great that you plan for SuperLemminiToo to account for this, but I'm still concerned that some users will toggle Timed Bombers on and end up seeing a level which is meant to have Untimed Bombers. In some cases, this will make the level impossible/unplayable.

I'd strongly suggest keeping the binary option and allowing the level to override the user option if (the level) specifies either. Or, at least allow Untimed Bombers (if specified) to override Timed Bombers; the other way around seems less problematic and so no override would be necessary in that case.

If you're set on going with what you've suggested (a trinary option), which admittedly is far better than nothing, then I'd definitely suggest having the option switched to Untimed by default. That way, if a complete beginner discovers SuperLemminiToo somehow, they shouldn't run into trouble. The only issue with this is that they might never experience playing with Timed Bombers, which is what SL2 promotes in the first place.