ifrotz / iosfrotz

Frotz for iOS source (formerly at code.google.com/p/iphonefrotz)
Other
49 stars 16 forks source link

Search IFDB for `format:*blorb` #314

Closed dfabulich closed 1 year ago

dfabulich commented 3 years ago

The previous search was searching for system:inform rating:3- #ratings:2- language:english i.e. games with a 3+ average based on at least 2 ratings, in English, written in Inform, and it forced the search to sort alphabetically.

That's not an ideal approach.

The new search is simpler: format:*blorb. This will return all games with a download link whose format type ends with "blorb," such as "Z Machine/Blorb" and "Glulx/Blorb." It will use the default sort order, sorting by Highest Rating.

This doesn't match TADS games, but it does include Dialog and ZIL games, and excludes Hadean Lands. It also misses some Inform games, due to IFDB's multiple overlapping format types. The highest ranking game that we miss this way is Suveh Nux, which should have appeared at position 17 in the search results, but doesn't, because its file format is "Z-machine" (.z5) instead of "Z Machine/Blorb". "format:*blorb" also includes a few ADRIFT 5 games, which don't work in Frotz, but they don't rank highly.

Finally, note that IFDB now uses Evan Miller's "starsort" to sort by highest rating. https://www.evanmiller.org/ranking-items-with-star-ratings.html

We used to sort by average rating, but this would tend to rank games with just one perfect 5-star rating above games with dozens of 5-star ratings and a few 4-star ratings. Evan Miller’s formula sorts by our confidence in the game, by adding five "fake" ratings to the average (one 1-star, one 2-star, one 3-star, one 4-star, and one 5-star rating) and subtracting the standard deviation from the average.

I've filed an issue on IFDB to support searching for multiple formats, which could allow searching for format:glulx*|z*|tads* -system:adrift, which I believe would be ideal. https://github.com/iftechfoundation/ifdb-suggestion-tracker/issues/272

spathiwa commented 1 year ago

Hi Dan,

I'm finally working on a Frotz update and am revisiting the default IFDB search query.

I think I'm going to adopt your change only partially; here's my rationale:

Hopefully your suggestion to enhance the IFDB search capability will be adopted, as that would be very helpful.

Absent that, I'm thinking about splitting the default query into multiple ones, and adding a pulldown menu or other affordance to search for TADS or Dialog games separately.

dfabulich commented 1 year ago

Hi! Great to hear that you're working on iFrotz again. I recommend posting about your work on intfiction.org, and perhaps discussing this issue with us there, where some other folks might have a cleverer idea.

I haven't worked on https://github.com/iftechfoundation/ifdb-suggestion-tracker/issues/272 because I, ah, wasn't sure you were planning to work on this bug. But, if you think you'd benefit from multi-format search, I could work on it.

If I implemented that feature, do you think you would use it? (Would you use it in 2023, do you think??)

spathiwa commented 1 year ago

I would definitely use that feature in Frotz. If you implemented it, that would be awesome!

Honestly, one of the main reasons it takes me a long time between updates to Frotz is that Apple has made development more difficult by forcing apps to use the latest SDK. While they are pretty good at keeping old binaries running smoothly on newer iOS releases, they are terrible at keeping source-level compatibility. When working on an update I spend well over half the time fixing issues that arise due to changes in the OS/SDK just get basic functionality working again. To keep Frotz working well on older devices too, I have to check the run-time iOS version and implement the same functionality using multiple APIs; it's a big pain. I used to intentionally keep using an older SDks as long as possible just to avoid upgrade issues, but Apple has stopped allowing that. I think many developers just stop supporting older iOS versions to make things easier, but I don't want to do that because Frotz is one of very few mobile games that are accessible to blind people, and many blind kids are on older hand-me-down hardware and can't update to newer devices easily, so I want to keep things working for them as long as possible.

Further complicating things, Apple has in the past couple years started making the latest XCode (required to use the latest SDK) only run on the latest two macOS releases. I'm still bitter about them dropping 32-bit app support (and making me unable to run Portal 2!), so I've been very hesitant to update macOS since then. Sadly, being upgrade-averse also hinders Frotz development opportunities due to these artificial constraints.

But I'm on Ventura now, so I guess I'm good for a little while. Having already done the work to catch up, further updates should be relatively painless for the near future. (Btw, I'm not the only one put off by these issues, Zarf hasn't updated iOS Hadean Lands in 4 years, even though the other supported platforms have gotten updates; he has a note about it on the download page.)

Sorry, that turned into a bit of a rant. I just wanted you to know I do feel bad about letting Frotz for iOS stagnate a couple years, and sorry for making you think I was ignoring your suggestion. If you do implement multi-format or multi-system search, that would be wonderful, and I'll try to push out an update to use it in a timely fashion.

Regarding posting to intfiction.org, I'm really not sure what to say; most of this update has been just bug fixes which may not be very interesting. After this, I think I want to add graphics support for TADS 3 games, maybe add some more back-end interpreters for Hugo or ADRIFT, and I'd like to play with speech output and recognition APIs and see if I can get hands-free play to work well. But I'm going to push out an update with what I have first, as soon as I finish testing on different devices, hopefully should be next weekend if things go well.