feature request, missing searches


2007-09-21
There doesn't seem to be searches for the "prototype" flag.
In fact, there are a lot of missing searches
Game type of "Turn Based", Emus, Flans, Multiplayer, perspectives, and languages.
And one can only search for one game type at a time.

I suggest making the game type dropdown list into a 4 line multiselect listbox. with this basic structure:
<STYLE TYPE="text/css">
<!--
.listitemcategory { bachbround: lightgrey; color: black; font-size: smaller; font-style: italic; font-weight: bold; }
-->
</style>
game type/flags/languages<br>
<select name="ftype" size="4" multiple style="width: 100%;">
<option class="listitemcategory" disabled="disabled">Type:</option>
<option> Action / Reflex
<option> Adventure
<option> Beat 'em up
<option> Board Game
<option> Casino / Cards
<option> Edutainment
<option> Fighting
<option> First-Person-Shooter
<option> Flight
<option> Gun Shooting
<option> Management
<option> Maze
<option> Music / Dance
<option> Pinball
<option> Platform
<option> Puzzle
<option> Race/Driving
<option> RPG
<option> Shoot'em'up
<option> Simulation
<option> Strategy
<option> Sport
<option> Trivia
<option> Turn based
<option class="listitemcategory" disabled="disabled">Genre:</option>
<option> 3D
<option> Cartoon
<option> Erotic
<option> Fantasy
<option> Historical
<option> Horror
<option> Humorous
<option> Manga
<option> Science Fiction
<option> Tie-In</option>
<option class="listitemcategory" disabled="disabled">Emulators:</option>
<option> Mame
<option> Wii Virtual Console
<option class="listitemcategory" disabled="disabled">Licensing:</option>
<option> Freeware
<option> Shareware
<option> OpenSource
<option> Compilation
<option> Mini-games collection
<option> Add-on
<option> Prototype
<option class="listitemcategory" disabled="disabled">Multiplayer:</option>
<option> Split-screen
<option> Shared-screen
<option> Hotseat
<option> Cable/Nullmodem
<option> LAN
<option> Internet
<option> E-mail
<option> Wireless
<option class="listitemcategory" disabled="disabled">Perspectives:</option>
<option> Bird's-eye
<option> Side view
<option> 1st person
<option> 3rd person
<option> Other
<option> Axiometric
<option> Axonometric
<option> Isometric
<option> Dimetric
<option> Trimetric
<option> Orthographic
<option> Fixed camera
<option> Auto scroll
<option> Push scroll
<option> Selectable
<option class="listitemcategory" disabled="disabled">Languages:</option>
<option> Chinese
<option> Czech
<option> Dutch
<option> English
<option> Finnish
<option> French
<option> German
<option> Italian
<option> Japanese
<option> Korean
<option> Polish
<option> Portugese
<option> Russian
<option> Spanish
<option> Other</option>
</select>

2007-09-22
This is an unexpected alternative.
I was going to make a huge search form with any possible (and multiple) search field, but was looking (in my mind) really cumbersome.
I wonder of your idea could confuse users...

2007-09-22
I'd like to have more options for searching things that _don't_ have something in them. Currently that's only for images, and some info can be found by reversing the ordering by it, but game types, tags, and some other info also lack any option for finding them. Maybe some checkbox that inverts the selection?

2007-09-22 (updated 2007-09-22)
a multiselect listbox by default only selects one item at a time using a normal mouse click. This is not so confusing and most people will use it this way. Those who don't know that a ctrl+click can be used to turn all options off, will use the [reset] button
Advanced users would have to learn how Ctrl+Click and Shift+Click allow for multiple items to be selected. To 'train' users how this works. A message will be displayed above the search results table telling them which flags were included for the search. It would say something like "as requested. search includes only games of the Science Fiction genre". This is like the way Google informs the user when it needs to correct their malformed searchs "otiose" (and any subsequent words) was ignored because we limit queries to 32 words. or Did you mean <i>fsdk disk</i></i>

Exclusion options.
(this <i>is</i> complicated)
3-state search options, on, off, neutral (default is neutral)
The background color for the search options should be changed to light gray. If the user changes a search option it becomes "on" and the background for it is turned blue (the shade of blue at the top of this page is a good one). Clicking on the background area will toggle it between "on" and "off". Red is used to indicate "off", which means games matching that option will be excluded from the results. Radio buttons labeld "include", "exclude", and "" could be hidden behind the regular search options using css. These would be changed with java when users clicked on the background.

3-state multiselect listboxe illusions can be achieved with java and css and a second duplicate listbox plays the roll of the excluded options. This second listbox is hidden directly behind the the first using css. It is conditionally changed with java when the user clicks on the first listbox. The background for unselected items on the main listbox is transparent, selected items are blue. The hidden listbox uses a red background for selected items.
algorythm:
click event. if item is currently unselected on listbox1 and user clicks the item, then unselect it on listbox2. end event. (it is now selected on listbox1 without any scripting as per normal function)
click event. if item is currently selected on listbox1 and user clicks the item, then select it on listbox2. end event. (it is now unselected on listbox1 without any scripting as per normal function)
click event. if item is currently selected on listbox2 and user clicks its unselected duplicate on listbox1, then unselect it on listbox2 and listbox1. end event.

Any browser without css probably doesn't have java either. These would see all the radio buttons, both lists, and users could just click on them to get the include and exclude options they wanted.

EDIT:Another option would be to use post search filtering. bleh.
[[link:http://sourceforge.net/search/index.php?words=trove%3A%2880%29&type_of_search=soft&pmode=0&inex=1&sortselect=trove__199®istration_date__0=&trove__225=456&trove__274=369&trove__160=584&trove__199=430&trove__13=14&trove__1=534&trove__6=7&trove__496=499&newfilter=Apply sourceforge.net]]

EDIT:Yet another option uses no scripting. To simulate a multiselect listbox, Confine tristate checkboxes to a scrollable div (bonus: no ctrl+click or shift+click needed). Then uses CSS to remove the checkboxes and set background colors to the different states. This also works to create a really big tristate checkbox to surround the other search options (it sits behind them). So that users can click on this large checkbox to change its state. EDIT:EDIT:However, I have discovered that tristate checkboxes are not available in standard HTML. But XForms has them. There is an XForms plugin for Firefox. I don't know if other browser have it standard or need plugins.

2007-09-22
I'm not going to use something that works only with FF plugin. I could simulate tristate with a good amount of javascript but this contradicts the [[link:http://en.wikipedia.org/wiki/KISS_principle KISS]] principle, that I try to follow when acceptable.

Your "bleh" example is somewhat what I need: adding an unlimited amount of filter rows. I would make the "add news filter" just faster, without the need to refresh the page BTW.
I'm not sure if every select would contain various type of data (like your first post) or not.
The basic way would have three select for every row. In this example the user has already added seven filters:

row1: (game type/genre) (is) (platformer)
row2: (developer) (is) (nintendo)
row3: (gametype/genre) (not) (manga)
row4: (platform) (is) (SNES)
row5: (language) (not) (japanese)
row6: (popularity) (not) (low)
row7: (flags) (is) (prototype)
[add new row] [search]

Note.
In this post I was listing two more ways to do it, but then I realized that these couldn't work. CTRL-selectable options can be used to say yes/not, but then those multi options need a single text input to specify what filter (game name, company) and I can't imagine how to do it without building something "monstrous".
I need to build something real now...

2007-09-22
I like the "add new filter" or whatever approach. It's just a pain in the arse to implement, and obviously requires the presence of non-scripted variant for those with no javascript.

< noscript>< form>....< /form>< /noscript> should work well enough for them.

And have the jscripted one replace the simple one on-load (< body onload="jsFunction()"> or something) and be completely contained in some external .js so it won't(?) be downloaded by browsers that don't support jscript.

2007-09-22
Here is the [[link:/test/input.htm proof of concept]].
The features are the ability to add lines as needed, delete them, and auto-build combo-box options depending on user selection.
Tested on the latest FF, IE6 and IE7.

(p.s. I edited the above Zerothis message to fix the "too wide page" problem due to the link to sourceforge ... )

(added:)
The big issue now is how to handle ANDs and ORs
For multiple platforms field, the only option is <b>OR</b>, as filter for games with <b>platform Amiga AND platform SNES</b> will return no elements. No problem.

With gametypes it is different.
I could search for games with type <b>shooter AND manga</b>, or I could search for <b>shooter OR manga</b>. Really different.

Any idea?

2007-09-22 (updated 2008-09-27)
Here is the proof of concept.
Tested on the latest FF, IE6 and IE7.

Completely non-functional in plain text. However, such filters are an advanced feature not required for basic use of the site. But consider, sourceforge manages to provide their filtering system to plan text browsers. They do it by populating the page with every possible element then using java (or css, or something, I'm not really sure) to hide the unused elements until the user needs them. non-java users will see pages (and pages) of dropdowns, list-boxes, checkboxes, etc... but it works.


The big issue now is how to handle ANDs and ORs

each additional element is prefixed with an [AND,OR] dropdown (to match the style).
[Name][is][ultima]
[AND][Name][not][online]
[AND][Name][not][ultimat]
[AND][Platform][is][Apple II]
[OR][Platform][is][MS-DOS]
If users make an impossible choice, just modify it and tell them what they did wrong at the top of the results (like Google). Also, you could have running commentary in red letters at the bottom of the search form informing users of possible problems (java)

Whatever is used. I think it is important to include [NULL] so people can search for games that do not have data in a given field. And also [INVALID] so people can find entries with problems.

2007-09-22
When the "how should it work" phase is finished, I'll see how to handle non-javascript browsers. I've some ideas in mind (the tricky part is to not cut features in the full version, and still share the same code).
If you go to that sorceforge page with JS disabled and hit "apply" the results are not the same, btw.

Using [AND,OR] is good and gives enough freedom to the user, but it's not explicit that OR has higher priority over AND. Only programmers may know this...

2007-09-22
The ORing can be done automatically when the same type of filter is added. And I doubt they ever mean AND for such cases (except for game types, but there the case is reversed :p).

Edit: I find it questionable to search in the way of: type OR genre, and as such, I don't see the point in supporting it. I could understand greater complexity for exclusion, but inclusion doesn't really need that. Maybe as OPTIONAL filters, that it is preferred but not required to be fulfilled?
Edit2: This would end up with the AND/OR logic being replaced with MAYBE/NOT logic :p

2007-09-26
[[quote:The ORing can be done automatically *snip* I doubt they ever mean AND for such cases *snip* questionable to search in the way of: type OR genre, and as such, I don't see the point in supporting it]]

Well, there's no need to remove the possibility especially if it takes more work to remove it.

As for [OR]/[AND] priority, substitute words might help. [Require] is a less programmer sounding word for [AND]. Replacing, [OR] is a bit trickier:
[Include]
[Admit]
[Allow]
[Permit]
[Tolerate]
[Exception]
These words are slightly more suggestive of an exception or override (priority) to [Require],

You use the same logic as sourceforge also:
[include][name]
[exclude][name]
[include][type]
[exclude][type]
[include][platform]
[exclude][platform]

2007-09-26
Mozilla Thunderbird has a similar way to add filters, and on top of them you have two choices:
- Match all the following
- Match any of the following
You can't mix ANDs and ORs, but it is quite straightforward.

2007-09-29
Inspired by the MAYBE idea, I have now three option:
- is
- could be
- not

For example:

Search an Amiga game that is a platformer AND a shooter:
1. platform include amiga
2. gametype include platformer
3. gametype include shooter

hand-made SQL:
platform = amiga AND (gametype=platformer OR gametype=shooter)


Search an Amiga game that is a platformer OR a shooter:
1. platform include amiga
2. gametype couldbe platformer
3. gametype couldbe shooter

hand-made SQL:
platform = amiga AND (gametype=platformer OR gametype=shooter)


How would this work? What the user would expect with this?
1. platform include Amiga
2. gametype include platformer
3. gametype couldbe shooter

various possible SQL:
platform = amiga AND gametype=platformer OR (gametype=shooter)
platform = amiga AND (gametype=platformer OR gametype=shooter)
platform = (amiga AND gametype=platformer) OR gametype=shooter

Here is the newest test page:
http://www.uvlist.net/test/input.php
You can submit and see the GET data, and a first try to parse it.

2007-09-29
Those or/could be/maybe things probably shouldn't be used in the SQL query itself, unless you can make it order the results so the instances which have them come first.

2007-10-11
If this gets in at some point, FPS could be finally scrapped and be made an alias of shoot 'em up and 1st person.