[SUGGESTION] [PLAYER] [SEMI-ADDED] Option: Play random music if .ogg not found

Started by Nepster, February 06, 2016, 09:33:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Nepster

Status: Haven't quite gone as far as implementing the suggestion in full. Made the following changes:

1. Failure is silent; it just results in no music on that level.
2. In the case that the level specifies a music, which cannot be found, NeoLemmix first attempts to use the regular rotation as a backup plan, instead of immediately failling.

Nepster

If you use (semi-)descriptive file names for your .ogg-files, chances are high, that there are no internally stored music files with the same name. Once you then miss the music pack .dat, the game starts to complain every level about missing music files.
One solution is to rename the internally stored .it-files according to the custom names and add them under the new names again. However this is an unnecessary doubling of content (and more work for the pack creator).
So it would be nice to have an option: Play a random internally stored music track, if the player wants to have music, but misses the specific music pack.

namida

One potential problem I can see here is that an error message is much more noticable than the use of a random music; and additionally, presents itself much sooner. This can be important while testing one's own pack. If this downside can be accounted for (which it probably can, but not quite awake enough yet to think about how), then I'd be quite happy to implement this idea.

Also, I've reclassified this as a suggestion for the Player, as that's where the change would actually have to be made.
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

I thought that the Issue Checker in the Toolkit already gives warnings in cases of mistyped music file names?

If you don't think this is enough, you can add an additional option in the Toolkit: While testing level packs, this option would be disabled to see the error messages. Then for the final level pack, one would select this option to display less warnings to other players.

namida

That's true, the issue checker should pick up on it. Also possible is to only display the warning once per run, and adding a note that the player may be missing an associated music pack for the game they're playing (as while the recommendation is to include low-quality versions of all musics and use a music pack for higher quality; the toolkit does not actually prevent including musics solely in a music pack - this still offers the advantage of not having to redownload the music pack when downloading an update to the game).
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 February 07, 2016, 04:29:20 PM
Also possible is to only display the warning once per run, and adding a note that the player may be missing an associated music pack for the game they're playing ...
Are you talking about the test phase or about people playing the final level pack?
For testing purposes, people can use the issue checked as mentioned before.
And players of the final level pack should most certainly not be given a pop-up warning message that has to be clicked away. Such warnings are terribly annoying and should only be used for much more serious issues, errors, ... If I deliberately deleted the music pack, because I didn't like the selected music, please do not annoy me with useless warnings - not even once!
I have nothing against putting somewhere a warning in text form (not as a pop-up message), that a music pack is missing, but this should be done really unobtrusive and not hinder playing levels at all. Music (even custom one) isn't that important.

Quote from: namida on February 07, 2016, 04:29:20 PM
...as while the recommendation is to include low-quality versions of all musics and use a music pack for higher quality...
That recommendation is nice, but the big problem remains how to get such low-quality versions. Programs like Audacity cannot export to .it (at least not that I know of) and not everything is already available as an .it.

namida

I haven't quite gone as far as to use a random internal music. Instead, what I've done is made it so that if it can't find the music outright specified by the level, it will treat it as if the level didn't specify a custom music (ie: use the normal rotation). If no rotation is specified for the pack, or if that fails too, it plays no music (without any popup message).

If a pack somehow manages to fail to the point where no music actually happens, then that is a result of either a "music pack is required" setup (possible but not overly recommended in the first place), or a design error by the creator that should've been picked up both by the issue checker and during testing (if any).

QuoteThat recommendation is nice, but the big problem remains how to get such low-quality versions. Programs like Audacity cannot export to .it (at least not that I know of) and not everything is already available as an .it.

Lower-quality and/or shorter OGGs is also a possibility (this will generate a warning but will not in any way fail to build - I'm not sure if it's easily possible to check the quality of them and only show the warning if they're high-quality - perhaps checking the file size is a better, albeit not-as-accurate, possibility); as is simply using other tracks - all that matters is that the names match, NeoLemmix couldn't care less (or indeed, even know) that they're not actually different versions of the same piece.

I don't know that I want to go further than this, partly becaue this is something that content creators should be addressing rather than expecting the engine to fill in the gaps, and partly because, in all honesty, it would be a hassle to implement for very little gain.
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)