As far as I remember has Simon even tried to sort the better levels to the top of at least some of the folders.
But I agree, that one has to click through a big folder structure that is mainly sorted by the name of the creator.
So rearranging the structure could help to better find levels, e.g. sort them thematically or sort out the older levels in a legacy folder etc.
One thing that could lead to a wider range of maps being played is a possibility to draw a random map for a set player amount. But this would lead to get outdated unblanced maps as well, but I can imagine it being interesting.
Drawing a random map could be interesting if it was possible to implement :)
Just to clarify it for myself: I meant with drawing to pick a random map from the existing ones, but probably you already understood it that way. I confused myself with the wording. (Creating a random map is interesting too, though probably much harder to implement.)
Considering the old outdated maps that we sometimes choose to play, I feel like some randomly generated maps wouldn't be that much worse than those for the occasional round. NaOH was working on randomized maps at some point, at least a basic version of that shouldn't be too hard.
As for organizing the actual maps, if more custom content comes in (currently there's a lull, but who knows) it would probably better to come up with a scalable solution. One such thing could be the server collecting users' ratings of maps after a games, and/or statistics of how often a maps gets played, and the offer to browse maps by popularity or select a random map proportional to popularity. Of course that'd need quite a bit of extra infrastructure.
Tbh I tend to be able to find quite quickly the maps I'm looking for, so it doesn't seem like a big issue to me. And then there's also the search functionality, right?
For a first sorting, my category idea/suggestion would be: short play, long play, asymetric and races. It's few but maybe doable in reasonable time.
Rubix' attack-defense maps could fall under asymetric or be its own category. Would maps with no interactions fit to race maps?
In IRC there was the suggestion to handle the maps via tagging system.
I agree that this would be the best solution since one map could fit in multiple categories. But I don't know how hard it is to implement.
Yeah, better sorting and better presenting is important.
I've opened github issue #392, Organize multiplayer levels (https://github.com/SimonN/LixD/issues/392).
Finding the newest maps would be cool.
A tagging system sounds better than any hard directory structure. We order by player count, except that we also collect all races in a single extra directory. The existing directory structure is not consistent anymore, and levels feel like they belong in a widely-searchable database (thus the tagging system), not in a directory tree.
-- Simon
thought I'd get the ball rolling again on this by posting a list of potential tags I've come up with help from Simon
compression - level requires compression of Lix crowds to filter through traps and minimise trap casualties
swingy - from what I understand, this is more of an all or nothing type of level, downward reduction would be a good example of this.
multiple hatch - exactly what it says, it means each player has more than one hatch. Helps prewarn the player of this as well for the less observant.
disjoint union - I'm sure this is self explanatory but this means that parts of the level of entirely sealed off to other segments of the level. Like Synchronised Lemming from Oh No More Lemmings.
max SI - means that the level has the max release rate, another thing nice for the player to be forewarned of.
gimmick - probably a very limited use tag but it generally applies to a level idea which is very unique and unmemorable. Like Charity Drive by Arty.
classic - the level resembles classic Lemmings gameplay or the level is reminiscent of a classic Lemmings level (without actually being exactly like it which Simon doesn't want)
rescue - usually hand in hand with multiple hatch but one hatch is completely doomed without assistance from other hatches or even the enemy Lixes. An example is Down With Frogs by Flopsy.
fall survival - the level revolves around going down and the main obstacle is making the fall to the bottom safe.
crafty - a level where there is no unique approach that consistently works and how the level goes depends on how other players approach the level.
asymmetric - the level is not symmetrical to the point where some hatches have advantageous positions over other hatches. eg. The Great Lix in the Sky by Amanda or Lucky Sevens by Flopsy....
chaotic - the level has a high degree of difficulty and very close proximity to enemy Lix hatches, could apply to a lot of levels really so maybe not a defining enough tag?
difficult - the level does not have an obvious solution in itself, so on top of the opposing Lixes, you have to also find the solution.
ideas from earlier in the thread
short play/long play (mentioned by Forestidia) - possibly means that the maps are either very quick or very long haul games.
attack/defense (already categorised by Rubix) - the map has a disjoint union but each side has Lixes which need to be saved and the opposing Lixes which prevent this. There is a section for each colour to be saved. NaOH's Arc is a good example of this type of level.
I put this list up to start us off anyway and be added to or discarded from and scrutinised....
Thanks for the ideas! Especially "difficult" is important to know beforehand. Players should pick easier maps with beginners.
I associate "crafty" more with taxing-or-higher-difficulty route-building, and with lots of terrain to navigate in different possible hard ways, not necessarily with reacting to other players with different route building. But usually there is overlap; maps with hard route-building tend to have players react to other players via route choice.
I'm about to extend the level format in a backwards-compatible way to include tags, as follows.
Levels can contain zero or more tags. Each tag shall be a separate line in the textual level format; such a line starts with $TAG, then at least one space, then the tag name:
$TAG compression
$TAG difficult
$TAG rescue
I recommend that you put these lines before or after #INTENDED_NUMBER_OF_PLAYERS, but really, location in the file doesn't matter much. Some of my helper scripts rely on levels with first line $BUILT, so please don't start the file with $TAG.
Spelling: I encourage all-lowercase tag names. I discourage spaces in tag names; use - (dash) instead to combine multiple words. Digits in tag names should be okay. Not 100 % sure if I want the program to enforce such spelling rules or if I merely encourage to follow them.
Reason: I want tags to play nice with the search feature in the level browsers. The search is already case-insensitive, and it treats space-separated words as separate search terms. Therefore I'd like to avoid space in tags themselves because searching for an exact tag may become even more common than searching for an exact level name.
The existing Lix 0.9.40 and older will not care about the tags, and even delete them when you re-save a level that contains tags. Still, 0.9.40 will work with the remainder of the level just fine and interpret levels exactly the same; in particular, 0.9.40 can still netplay with 0.9.41 and newer.
Lix 0.9.41 and newer will read the tags from level files and write them back to the level file when you re-save. You won't be able edit tags within the game yet; you'll have to do it in a text editor. You can't search for tags yet; all this can come in future versions. 0.9.41 will merely be for Flopsy in case he wants to start putting tags in levels early. I'll release 0.9.41 in a few days.
-- Simon
Which tags are currently in use? I ask since tagged levels can already be found via search.
Thanks for the good rundown!
Yeah, Flopsy has added tags to a good chunk of levels. I believe nobody else has added any tags or thought of new meanings yet.
Here's a Unix pipeline to see all tags in use, and its output on 0.9.47:
ack -h TAG levels/ | sort -u
$TAG asymmetric
$TAG classic
$TAG compression
$TAG difficult
$TAG disjoint-union
$TAG fall-survival
$TAG few-skills
$TAG gimmick
$TAG long-play
$TAG max-si
$TAG multiple-hatch
$TAG rescue
$TAG short-play
Quote from: FlopsyEDIT: I'll try to get a list of what tags I assigned to what multi level. Be probably wise to use this topic to keep track of tags while we get through the backlog
That should also be doable with some Unix magic. Tell me when you need it, and what exacly: For each level, list the tags? Or for each tag, list all levels in which the tag appears? I'm busy this week, but maybe it'll be cute distraction. Edit: First try with
ack in loop aborts too quickly, will solve sometime else, ask me next week.
-- Simon
No race tag? Obviously I've been out of the loop for some years... do people just not play race levels any more?
Race maps are already distinguished because they're in a separate race directory. But yes, they should certainly get tags.
-- Simon
Here's a comprehensive list to the amount of work I've done on tagging so far.
Some tags I've found difficult to assign to any levels in particular such as swingy, I've only found Downward Reduction as a good example for this tag. Perhaps this tag will accumulate over time with more play.
Anyway, this is the part where the tags I've given can be scrutinised and discussed, I've published the tags I've given levels for the purpose of discussion.
I've done my best to give my opinion on what tags I think a level should have. A fair few levels have no tags at all.
List of level tags
[ ] = square brackets indicate what player number iterations exist for this level, can contain multiple numbers 2 to 8
$TAG asymmetric
$TAG classic
$TAG compression
$TAG difficult
$TAG disjoint-union
$TAG fall-survival
$TAG few-skills
$TAG gimmick
$TAG long-play
$TAG max-si
$TAG multiple-hatch
$TAG rescue
$TAG short-play
$TAG swingy
Arty's levels
Blow your top! [3,4,5,6,7,8] - gimmick, multiple-hatch
Charity Drive [8] - gimmick
Cowabunga on the beam! [8] - few-skills, max-si, short-play
Hammerhead Bridge [2] - attack-defense
In the attic [2]
Let Them Eat Cake [2,3,4,6,8]
Let Them Eat Cake (4p Alt)
Murder in a minute [8] - short-play
Origins and Lix [5] - classic
Pandemonium Box [8]
Pandemonium Box (cubers) [8]
Playtime [2,3,4,5,6,8] - beginner
Pyramid Scheme [6]
Pyramid Scheme (builders) [6]
Shaft of Chaos [2,3,4,5,6,7,8]
Showdown at Chainsaw Gap [2] - attack-defense
The nth Layer of Hell [2,3,4,5,6,7,8]
Amanda's levels
Another Lix in the Wall [2,3,4] - asymmetric
House of the Rising Lix [2] - few-skills
Knurl [2]
Mustn't Just Dig [2,3,4] - classic
Mustn't Just Dig (4p-b) [4] - classic
Snatched! [5,7] - asymmetric, long-play
Sympathy for the Lix [4,5,6,7,8] - difficult
Therapy [2,4,6] - few-skills
Gridlock [2,3]
Group Therapy [3,4,5,6] - few-skills
One For Me, One For You [2,3,4,5]
Pro Boxing [2,4] - attack-defense
The Cliffs of Insanity [2]
The Great Lix in the Sky [3,4,5] - asymmetric
Tumbler [6] - asymmetric
Turrets [4]
Clam's levels
A Typical Level [2,3,4,5,6] - max-si, gimmick
Attack of the 50ft Lix [2]
Can't Stop Me Now! [2,4]
Freezing Works [2,3,4,5,6,7,8]
Let's go mining (h) [2,3,4]
Let's go mining (v) [2,3,4]
Perilous Descent [2,3,4,5,6,7,8] - fall-survival
Play Bridge [2,3] - classic
Put it on the Line [2,3,4,5,6,7,8]
Pyramid Plunder [2,4]
Tapirmid Blunder [2,4]
Flopsy's levels
Back 2 Paradise [2] - long-play
13 Little Skulls [3,4,5,6,7,8]
28 [8] - asymmetric
Along the fabrics of your Clothing! [3,4,5,6,7,8]
A Pessimist is Never Disappointed [4,6,8]
A SpringYard would be helpful here [3,4,5,6,8]
Aphrodite (all variants) [4,6,8]
Backwards Reduction [2,3,4,5,6,7,8]
Beginner's Guide to Destroying the Moon [4,6]
Block Chaos (all variants) [4,5,6,7,8] - rescue, multiple-hatch
Cascade Squared [4,6,8] - classic, fall-survival, max-si
Check my Eyelids for Holes! [4,8] - multiple-hatch
ClusterFLOP [6,8] - short-play
Corkscrewed [4,6,8] - multiple-hatch
Down With Frogs! [3,4,5,6,7,8] - multiple-hatch, rescue
Dude! Where's my EXIT!? (All variants) [8] - gimmick, multiple-hatch
Everything Falls into Place [3,4,5,6,7,8]
Fire Escape [4,6,8]
Flopsy vs. The World [2,4,6,8]
Full Circle [2,3,4,5,6,7,8] - multiple-hatch
Funnel Cake [4,6,8] - multiple-hatch, rescue
Get On The Revolution [2]
Get Ready to Strike Out [4,5,6,7,8] - difficult, gimmick
Grey Will Fade [2,4,6,8]
Happy Hour [4,6,8] - long-play
Harden the Paint [4,6,8] - multiple-hatch, long-play
Hard for Flopsy MANIA [4,6,8] - fall-survival, max-si
Harpenden Square [2,4] - max-si, low-skill, short-play
Having A Blast [2,3,4,5,6,7,8] - difficult
Helter Skelter [3,4,5] - long-play, multiple-hatch, classic
Homewrecker (all variants) [4,6,8]
Huckerby's Field [4,8] (all variants) - short-play, classic
Hurry Up and Wait [8] - compression
I Know Enough (I don't get enough) [6]
I'm Only Happy When It Rains [2,3,4,5,6,7,8]
In The Mall [4,6] - fall-survival
It's All Good Man! (disjoint) [4,6,8] - classic, disjoint-union
It's All Good Man! (union) [4,6,8] - classic
It's All Good Man! [2] - classic
It's Already Over [4] - gimmick, multiple-hatch
Jack Names The Planets [8] - asymmetric
Jumping Across The Oil Ocean [2,3,4,6,8]
Just Passing Through Here! (all variants) [4,5,6,7,8] - multiple-hatch
Keep In Touch [4,6,8] - fall-survival
Knock Knock Knocking on Eggman's Door [4] - fall-survival
Knock Knock Knocking on Eggman's Door (2 hatch) [4] - fall-survival, multiple-hatch
Krypton Factor (The) (non-racemap version) [2,3,4,5,6,7,8]
Let's Get The Show OFF/ON the road! [2,4,6,8] - multiple-hatch
Let's Go Rock Climbing [3,4,5,6,7,8] - multiple-hatch
Let's Ride [4] - long-play, multiple-hatch
Lithium Stretch [4,8]
Lix-tris [2,3,4,5,6,7,8] - classic
Loving the LIX [3,4,5,6,8]
Lucky Sevens [7] - asymmetric
Madame Lixga [2,3,4,5,6,7]
Now That You Are 18 [3,4,5,6] - multiple-hatch
Orange Dream [2,3,4,6,8] - multiple-hatch, classic
Painted Lines [2,3,4,6,8] - multiple-hatch, fall-survival
Palace of Excess [4] - multiple-hatch
Perfect Situation [6,8]
Postcard From The Edge [4,8] - asymmetric
Rescue Plan [5] - asymmetric
Run The Gauntlet [2,3,4,5,6,7,8] - multiple-hatch, rescue
Running Out of Space [3,4] - multiple-hatch, rescue, long-play
Sector 4T Lixes [3,4,6,8]
Something in the Way [2,3,4,6,8]
The Angry Mob [8] - few-skills, max-si
The Call of LUCIA [3,4,5,6,8]
The Deck [4,6,8]
The Dream Flow [4,6,8]
The Hard for Flopsy Lix Level [2,3,4,5,6,7] - fall-survival, max-si
The Jagged Staircase [5] - difficult, long-play
The Lix and the Saboteurs [4,6,8] - fall-survival, multiple-hatch
The Lix in the Middle [4,6,8] - fall-survival
The Sabotage Subway [4,6,8] - multiple-hatch, long-play
The Storeroom [6,8]
The Tunnel of Love [4,6,8]
Time To Get Closer [4,6,8]
Your Latest Trick (all variants) [2,3,4,5,6,8] - multiple-hatch
Your Local Hero [4,8] - multiple-hatch, long-play
geoo's levels
A.T. in a nutshell [2]
Ceci n'est pas Downward Reduction [3,4] - swingy
Chasing Upwards [2] - attack-defense
Clustered Spelunking [7]
Clusterfrog [6] - short-play
Diagonal [2,3,8]
Diagonal (part 4) [3]
Down to a T [2] - attack-defense
Downward Reduction [2,3,4,5,6,7,8] - swingy
Eat Me <3 [6]
Fence [3,4,6] - multiple-hatch
Fence with Batters [3,4,6,8] - multiple-hatch
Ghetto Party [4,5,6,7,8] - multiple-hatch, fall-survival
Ghetty Party with a block [5] - multiple-hatch, fall-survival
Ghetto Wars [2] - multiple-hatch, rescue
Honeypots [4] - multiple-hatch, classic
Inadvertent Rescue [4] - multiple-hatch
Intruder [2] - multiple-hatch
Jenga [2]
Let's Play Poker [2] - multiple-hatch, few-skills
Organ Symphony [3]
Pancake Compression [2,3,4] - compression
Pave The Way [2,4]
Pave The Way (offset) [2,4]
Rescue Ranger Trolls [4,6,8] - max-si, fall-survival
Scorched Earth [2,3] - difficult
Scorched Earth (part 2) [2] - max-si
Selective Rescue [6,7,8] - max-si, fall-survival
Speedcubing [2] - disjoint-union
Stalling [2,3] - difficult
Stepping Stones [2] - attack-defense
Superbowl [2,3,4,5] - gimmick, multiple-hatch
Tailor Made For... [2,3,4,5,6] - classic
Thinned Fray [2]
Trololo [2]
Tower Defense (part 3) [2] - difficult, attack-defense
Tower Defense (part 22934) [2] - multiple-hatch, attack-defense
Twin Towers [2] - fall-survival
Vertigo [7] - fall-survival
Raymanni's levels
Follow the thread [8]
Rainbow Road [6]
The Frog Hotel [7] - disjoint-union, gimmick, short-play
Steve's Levels
3 For All [3]
5 For All [5]
Blue Wall [4,6,8]
Brick Layers [2,3,4,5,6]
Diagonal (part 2) [2,3,8]
Diagonal (part 2) (no blockers) [3,8]
Diagonal (part 2) (no diggers) [3,8]
Elevator Service [2,3,4,5,6,7,8]
Get Down From There [2] - fall-survival
Starry Night [2]
Try Something Else [4,6,8]
You take the high road... [2]
If the author is not listed above, I have not gone through their levels as of yet :lix-grin: