[SUG][Level Pack Format] Fully self-contained level packs.

Started by WillLem, February 24, 2020, 02:37:55 PM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

WillLem

Just a thought... at the moment, when installing a user-created level pack, music, sound, styles, levels etc must be unpacked to different folders which can be a bit messy, and some people don't bother to unpack music and sound files at all.

Could there be a level pack installation tool within the NeoLemmix player which shows a list of all available level packs, the player simply selects the packs they want and the installation tool unpacks everything to the relevant folders? It could be a two-way thing: level creators could upload a pack via the same tool, and it would then be available for other users to download.

If this seems a bit too radical, then could NL be made able to read music, styles, etc from within a level pack folder, so that all the creator needs to do is include everything in one parent folder? On the player's end, NeoLemmix would always choose to look in that folder first before looking in default folders for any music, spritesets, styles, or any customisable element.

Not sure if either of these things are possible/feasible, but since the online styles download already exists and does a fine job of keeping everything easily organised, could a similar idea be extended to level packs themselves?

namida

My advice is for creators to distribute their packs as one or more ZIP files, all of which would get extracted to NL's base dir. (So for example - the ZIP containing the levels, would have a "levels" folder, with a (as an example) "Lemmings_Plus_I" folder inside that.)

If any kind of pack downloading feature in NL comes in the future - and I would like that to happen - you can count on it expecting the packs to be in the above format, and quite possibly not accepting any alternatives. Having a pack downloader isn't too hard (the installer already does this to some extent), but allowing user-done uploads would require a fair bit of work, especially if we want to properly validate them (at the very least "does this really seem to be an NL pack, rather than some unrelated file?", but ideally it should also at least check the files are valid and in up-to-date formats; even better if it can enforce a "passing replay must be provided for every level / talisman" requirement).

Generally speaking, styles shouldn't be shipped with a pack. They should be submitted to be made auto-downloadable.
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

I'd like to add that for me at least, sticking with the default music rather than installing music packs is through choice, not laziness. It has just been my experience that most of the time, music packs are not to my taste and subtract rather than add to my enjoyment of the game.

So if pack downloading within NL becomes a feature, I would like to still be able to choose whether to install the music or not. I appreciate that it's not hugely important and I can just download the pack and then delete the music -- but that's still inconvenient, as well as drastically increasing the download size. (Just to give you an idea: Lemmings Redux's ZIP is 20% levels and 80% music. It has one custom track.)

namida

Personally, I'm not sure about including that as an officially supported feature. Many creators see their music choices as being just as important a part of their pack as any other content - indeed, this can even be the case in packs that use default music, as the creator may still have made a choice about which default track to use on which level. Even the fact that a pack uses a rotation instead of a per-level selection does not necesserially mean the creator hasn't put thought into this - perhaps the level order was chosen at least to some extent with the music in mind (this is true for many (but not all) levels in all Lemmings Plus packs that use rotation rather than per-level selection).

I absolutely am in favor of a setup where eg. the music does not have to be re-downloaded every time the pack is updated; and I have no intention to try and make it artifically difficult to avoid music packs in the way you suggest you'd like to - indeed, the push for using subfolders of "music" rather than dumping everything in the base folder would make this easier; but yeah - I'm not sure how comfortable I am with directly supporting it.
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

If my Redux example didn't convince you, I looked down the NL Levels forum and looked at the top four packs that have music.

PJW's Twenty Levels: can't get exact figures as the zip isn't even folder-separated, but the levels are about 70KB and the music accounts for the rest of the 18MB total.
Lemmings Destination: levels 238KB, music 55MB
Lemmings United: levels 528KB, music 157MB
SEB Lems: levels 417KB, music 234MB

In short, the music tends to be 99% or more of the download size. That is way too much to enforce on users who just want to play the levels.

namida

I look at this a different way from how you are: The music is part of those levels. Removing it / choosing to play without it, is the end-user making their own custom modification to that pack - a purely-cosmetic one, but still a modification that changes the pack from the author's original intent. It isn't much harder to fill in the rest from this: while it's one thing to not bother actively preventing it, NL should not actively support making user-side mods to other user-generated content (I'd be a bit more okay with such mods for the official content, though even that I feel is a bit unnecessary to directly support - just, "unnecessary", not "shouldn't be done on ethical grounds").

My feelings on this subject are very strong - almost to the point where I want to say this should even apply as far as which versions of official tracks a pack uses. The only compromise I'd be willing to consider, unless there is an overwhelming (not just "slight majority") community opinion disagreeing with me, is having such a feature but only allowing the use of it on packs where the author has specifically chosen to allow it.

(I'll also note, I couldn't help thinking of a comparison to your reaction to orig_dirt_md possibly getting removed - don't you feel removing an author's music choices is even more severe?)
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)

ccexplore

That feels a little dictatorial to me.  In the end, the user can always just mute NeoLemmix and (if needed) run a media player in the background playing their own music.  Sure, the music no longer syncs directly to the entering and exiting of the level, but if the level's music is bothersome enough, mute + media player would then be the one and only choice left as far as user is concerned, for better or worse.  I'm also pretty sure some people play other video games like that too (I don't, but I've heard of this being done.)

The size of the music is not something to be dismissed either, looking at the examples cited by Proxima.  I don't think it's that unreasonable that a user would rather being able to start playing the levels sooner than waiting for music that they might mute out anyway.  At the very least, it also isn't crazy to imagine a user willing to start playing the levels before the music finishes downloading, even if they don't hate the music per se, and is happy to let it continue downloading in the background while playing the level, and to start being played once the download finishes (and probably after exiting and reloading the level).

That said, if it's not too hard for a user to mod the music, maybe that's enough and we don't necessarily need additional feature implementation to make that easier or more exposed.  It's not like most other games have option to selectively not download/install their music either (though that analogy breaks down because it is far more common for graphics [and more commonly, videos like for cutscenes] to take up more storage than music in many games, plus many games don't have such a rich selection of user-created content that potentially come with many more additional music).

WillLem

My suggestion here isn't so much about making it so that players must have a level pack's music, it's more about the method of delivery: at the moment everything is scattered across several download folders. I'm just thinking it would be easier to be able to download all of a pack's content: levels, music & sound, maybe even styles, in one click.

To address the issue of filesize, maybe something like this would work:



In this example, 'checking' a level pack would open a further drop down which gives the player options as to which content they wish to download. It could even be that levels & graphics are pre-checked and greyed-out, since the pack wouldn't work without them; this would then simply be a "do you want the music & sound as well?" menu.

WillLem


WillLem

Just giving this topic another bump.

I'm thinking it will make updating level packs so much easier: similar to styles, any changes that are made to packs you already have downloaded will be automatically/manually updated via the interface, rather than having to download entire packs again/deal with messy one-off fix releases that users can and probably will miss.

I almost never go back to a level pack's topic page to check for updates: this would be a way to get around that, as well as being an easier way to download packs.

Proxima

There's an obvious problem with this: what if version 1 of a pack contains a certain level file, and version 2 is intended to have no file with that name and location? This could happen if a level is renamed, or replaced by a brand new level, or moved from one rank to another. Then if the user downloads the new pack on top of the old one, they will still have the file from version 1.

(This is, of course, still a problem with manual updating; it's just that when updating manually, the user is in a position to do something about it.)

WillLem

Quote from: Proxima on March 09, 2020, 04:06:46 PM
There's an obvious problem with this: what if version 1 of a pack contains a certain level file, and version 2 is intended to have no file with that name and location? This could happen if a level is renamed, or replaced by a brand new level, or moved from one rank to another. Then if the user downloads the new pack on top of the old one, they will still have the file from version 1.

Good point. Could a levelpack updater not locate any unnecessary files in the existing version and remove them? Or, just wipe the existing version completely and replace it with the new one?