Map keywords for sorting and mod matching.

Map keywords for sorting and mod matching.

Requests for features in the spring code.

Moderator: Moderators

Post Reply
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7052
Joined: 16 Nov 2004, 13:08

Map keywords for sorting and mod matching.

Post by zwzsg »

As the Spring engine starts getting used for "game package" with more and more diverse game mechanics, and as the amount of Spring map keeps increasing, soon, or actually, already, arise the need to have mod specific maps, and better map sorting than alphabetic order of map names.

So I think it's high time we implement a tag in the map .smd that is a list of keyword describing the map. It doesn't need any change in Spring.exe. It just need mappers and modders to settle on the keywords to use, and lobby programmers to implement filters based on them.

For instance:
In the .smd of the map Major Madness, there may be:
keywords=Off, Abstract, Kernel_Panic;

In the .smd of AsteroidBelt, there may be:
keywords=Off, Space;

In the .smd of Peripheral Consciousness, there may be:
keywords=TA, CorePrime, metalmap, futuristic;

Some keywords we could use:
- Off: make the map filtered out by default
- Winter: Has a snowy scenery.
- Sand: Has a desert scenery.
- Alien: Takes place on a alien planet.
- Future: Map with futuristic device
- Nature: Maps with no roads, buildings, or anything remotely civilised.
- Contemporary: For any mod taking place in the 20th century
- Space: For maps such as the Final Frontier ones.
- Abstract: For tron-like maps.
- Ocean: For all-water maps.
- TA: meant for *A mods.
- MetalMap: N00b catcher.
- Graveyard: Lots of wreck to reclaim!
- Isles: For when the main patches of land are separated by water.
- Gundam: Mod name when the map author mades his map with a sole mod in mind.

It's important that we all agree on a common set of keywords. If one write "snow", the other "snowy", while somone else expects "winter", and a fourth use "cold", it won't work. So after we agree my idea is great :P we need some discussion to decide on recommanded keywords wording.

As for the syntax, I propose: Only alphanumeric characters and underscore, capitalisation not mattering, whitespace ignored, comma to seperate the keywords.

Then we'd have inside the mod, some tags to say which maps tags are most appropriate, which are acceptable, and which are a no. So that, for instance, when I host a Final Frontier game, the space maps should be the first in the map selection menu. Or when I host a S44 map, I don't want any maps with alienish/futuristic feature/skybox/ground hue. I suppose we could use something like that in the modinfo.tdf, taking S44 for instance:

MapWant0=S44;
MapWant1=Contemporary, Nature;

MapDoNotWant0=Alien, Future;
MapDoNotWant1=Space;


That would make the lobby list first the map with MapWant0 keywords, then the maps with MapWant1 keywords, then the untagged map, then the map with the MapDoNotWant0 keywords, then the map with the MapDoNoWant1 keywords, then the map with the Off keyword. And starting from MapDoNotWant0 keywords, maps should be greyed out, written in red, or whatever to show you're not meant to select them (though still can if you really want to).

Because S44 should be played first on the map made specifically for it, then the map made that will look find with it, and Alien landscape at a last resort, but Space even later, as WWII warmachine floating in the void of space looks even stranger than on purple ground. Because there's gradual level of appropriatness, we can't have just one keyword list per mod. But each level should accept more than one keyword, so we have larger section in the map list that are alphabetically sorted. If we have several MapWant keyword matching for the same map, then use the top one. If we have several MapDoNotWant matching for the same map, I suppose map should go really bottom. If we have both a MapWant and a MapDoNotWant matching, uh, I dunno what to do. :P


A very important point is that the filter must be easily ovveridable: If someone feels like playing a certain mod on a certain map he isn't meant to, he should be able to force his Spring battleroom to do so with only a few buttons click. If the mod/map filter matching is too rigidly enforced, then we'll start having stuff like half a dozen version of The Trench released, with only filter tag changed, and I REALLY don't want that. That's really an important point. If it requires manually editing a file, even a simple text file under notepad, to bypass the filter, then the apocalypse will ensue.

Lobby should also have the possibility to manually choose the keywords (dropdown menu or box to type in?), instead of using the mod keywords.


Thousands of maps and hundreds of mods have already been released or am I exxagerating? just a lil bit then, and we can't go retag & rerelease all of them. Therefore we need a system to assign tags to already released maps and mods. I propose to have, in the Spring root or the lobby folder, a long text file, that would be a list of map, mods, and the tag they must use. This list would ovveride the map/mod own keywords. So that if you feel a map has been mistagged, you can change it for your own Spring without touching the map hash. Then it's just a matter of someone writing keyword lists for all currently released map/mod, and giving it to lobbies releaser so they ship it with their lobbies.


The primary use of these keywords would be for lobby to sort maps and match maps with mods, however maybe it could be nice if inside Spring.exe itself, LUA magik could access it, so that for instance a mod could change its model skin depending on whether it's a snowy map or a sandy map. But then, it those keywords start affecting the game, only the keywords from the hashed \maps\*.sd* must be used.


I somehow focuse on keywords describing the visual feeling, but it goes without saying that the same keywords could also describe the map gameplay: bumpyness, chokepoints, whether crossing the water sea is compulsory or optional, availability of metal, etc...
Kloot
Spring Developer
Posts: 1867
Joined: 08 Oct 2006, 16:58

Post by Kloot »

User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

I would say the whole post is subjective and fuzzy. As a lobby developer I wouldn't know what I was meant to do with that. A search function comes to mind but Im not keen on doing that and dealing with replacing 'snowy' with 'snow' etc..

Right now your description is selling the idea to modders, which imo is actually detrimental to your effort.

From there I would suggest a tileset tag.
User avatar
zwzsg
Kernel Panic Co-Developer
Posts: 7052
Joined: 16 Nov 2004, 13:08

Post by zwzsg »

No, no, it's not the job of the lobby to translate a keyword into another, instead mappers should just settle on a common set of keywords.

It's fuzzy because:
- There's a few details I'd rather hear others' opinion about
- To be useful, it must be flexible, handle more than "match" and "don't match", be ovveridable in varied ways, ....


Kloot: a step in the right direction, however:
- The mod must be repacked, rereleased each time a new map is added.
- It's boolean, and doesn't cope with gradual map/mod appropriatness.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

No because if a user types in snowy and gets no search results because all the mods specified snow then that wont be very impressive for the user.

That and a lot of people have a nervous disposition to tag clouds.
imbaczek
Posts: 3629
Joined: 22 Aug 2006, 16:19

Post by imbaczek »

tag clouds suck, but tags are a good idea nonetheless. i'm not sure if the lobby is a proper place for them, though; UF would be better.
User avatar
Pxtl
Posts: 6112
Joined: 23 Oct 2004, 01:43

Post by Pxtl »

Well, the map list gets cluttered very quickly, and filtering maps for your given mod or preferred gametype is important.

However, I would think that environmental concerns like the tileset of the map (snowy) my absolute lowest-possible concern.

Tags I'm more interested in are things like
"tournament"
or
"no metal"
or
"speedmetal"
and whatnot. Gameplay features. Information about the scale of the map "small" or "tiny" or "huge" are useful tags, since it means the tag filtering can double for size-filtering.
User avatar
AF
AI Developer
Posts: 20687
Joined: 14 Sep 2004, 11:32

Post by AF »

A 10x10 XTA map is also a 20x20 Epic EE map.

A game may wish to specify map size in sectons, yards, metres, bannana trees, feet, kilometres, light years, nanometres, Astronomical units, or elmos.

Large medium and small are extremely relative terms that mean very different things depending on the context. Some maps would also be considered large by some people and small by others despite similar content.
trepan
Former Engine Dev
Posts: 1200
Joined: 17 Nov 2005, 00:52

Post by trepan »

zwzsg
The ValidMaps.lua script is dynamic, it can query
map parameters and use all of the lua string library
routines to pick which map names it returns. Your
statement about requiring mods to be repacked is
therefore inaccurate. As for the appropriateness ...
I'm now guessing that you want some sort of gauge
displayed based on fuzzy heuristics?
User avatar
clumsy_culhane
Posts: 370
Joined: 30 Jul 2007, 10:27

Post by clumsy_culhane »

[offtopic] Trepans back! yay :-) :o :lol:
Post Reply

Return to “Feature Requests”