Silverfeelin / SkyGame-Planner

Sky:CotL unlock planner/tracker
Other
17 stars 3 forks source link

Suggestion / Request: Save outfit combinations #71

Open lswaterfield opened 5 months ago

lswaterfield commented 5 months ago

Hello! Feel free to delete if you're not taking suggestions :)

Something I've wanted for a long time is a way to track favourite outfit combinations. I appreciate this would be a tonne of work and totally not essential, but something like a "add to list" function which works somewhat like favourites, then a way to view the collection of items you've added to said lists :)

On a similar note, the "favourited item is currently available" feature is fantastic! Would there be a way to see the items you've added to favourites/ filter the item list by favourites?

Thanks for reading, and thank you again for your work on the app!

Silverfeelin commented 5 months ago

Hello and thank you for your suggestions!

I'm not sure to what extent you're familiar with the "Outfit request" tools (found under Tools in the menu). It doesn't directly do what you described but I'm interested in hearing back if it's enough to satisfy you or what shortcoming it has for this use case.

https://sky-planner.pages.dev/outfit-request/closet

These tools are meant to help people in the #outfit-requests channel of the official Sky Discord. In that channel people can requests fits and other people can complete them by sharing screenshots of the outfit in Sky (usually from multiple angles and/or with poses).

When you select items they will receive a (by default red) border. Normally you would then copy the template and share it on Discord.. but you could also bookmark the link in your browser and reopen it at any time!

You can make this page look just like your in-game closet does by going into the "Modify closet" menu and changing details from there. I personally use this to quickly find where the items are in my in-game closets because those closets shuffle every few updates and whenever new items are introduced. For example my closet on PC has 6 columns so I know where to look without having to search through the entire list: image image

I recommend using the "Tutorial" button at the top of the page to learn what all the buttons do, though again keep in mind that this was written specifically for the outfit request channel on Discord.


PS. Could you please post your suggestion for the favourite items as a separate issue? I'd love to figure out what the best way would be to include this idea. That way we can keep any discussion on that topic separate.

lswaterfield commented 5 months ago

Thank you for responding!

The outfit request feature is definitely the sort of thing I'm after, and would certainly fulfill the desire to save outfits. I suppose I was more suggesting it be something you could visit within the app rather than saving links and viewing them separately. Just for organisational purposes really!

It's definitely not a problem, and as said the outfit req feature would do in a pinch :)

Silverfeelin commented 2 months ago

With the new storage feature this is definitely something I'm hoping to revisit soon-ish.

@lswaterfield Do you have any ideas or suggestions for how to present saved outfits? Like, simply a name you can enter + icons of all the items you select, have a picture attached to each fit, or something else.

I've added something similar in the new outfit vault experiment. If you press the search icon with this link (9deer cape) you'll see a result I submitted. https://sky-planner.pages.dev/outfit-request/vault?capeId=2047
This experiment is meant to make it easier for people to find fits submitted by others and jump to the Skycord Discord message.

If I quickly change the design of these results it could look something like this: image

lswaterfield commented 2 months ago

Fantastic, that's looking great. From my perspective, a title/name, icons of chosen items, and optionally a photo upload would be great if possible. My dream result would be to see a list of outfits I've saved with a name & photo.

Thanks for your continued hard work!

Gassed1 commented 2 months ago

This is a super cool feature! Just wondering if there was a limit to the storage because over time I feel like there will be a lot of outfits submitted and I wouldn't want that to lead to this feature being deprecated.

image

A suggestion for an upvoting system so that the most liked outfits are shown at the top, I don't think there should be the option to downvote. There could also be different tabs like "new" which shows the most recently submitted "top" showing the most upvoted ones and maybe "random" so it just shows the submissions in any random order.

Silverfeelin commented 2 months ago

@Gassed1 I use Cloudflare D1 (SQL database) to save this data.

https://developers.cloudflare.com/d1/platform/pricing/#billing-metrics The free limit is 5 million rows per day read and 100k rows written.

I've included some indexes to make searches cost less reads at the expense of more writes. Unless I start using D1 for something else in the future it should be about 10k outfits saved/deleted per day.

As for reading it depends entirely on how many outfits are submitted and which items are being looked for

CREATE INDEX ix_outfit ON outfits(outfitId, capeId, hairId, maskId);
CREATE INDEX ix_outfit_cape ON outfits(capeId, outfitId, hairId, maskId);
CREATE INDEX ix_outfit_hair ON outfits(hairId, outfitId, capeId, maskId);
CREATE INDEX ix_outfit_mask ON outfits(maskId, outfitId, capeId, hairId);
CREATE INDEX ix_outfit_shoes ON outfits(shoesId);
CREATE INDEX ix_outfit_face ON outfits(faceAccessoryId);
CREATE INDEX ix_outfit_necklace ON outfits(necklaceId);
CREATE INDEX ix_outfit_hat ON outfits(hatId);
CREATE INDEX ix_outfit_prop ON outfits(propId);

You can think of each index above as a separate table that only contains those columns and they're looked through from left to right. For example if I search for the Journey cape then it will use ix_outfit_cape and will not have to check for any submissions that don't include the cape, drastically limiting the amount of rows read. If I search for the Journey Cape + Fire Prophet outfit then I'm pretty sure it doesn't even have to go through all Journey Cape submissions.

There's also the data limit of 5GB total. But I only store a timestamp, unique key, Discord link and up to 11 IDs. So I highly doubt that's going to be a concern.

The usage is something I can monitor over time. Worst case I can upgrade to Workers Paid and currently that's $5 a month to bump it to 25 billion reads and 50 million writes.

A suggestion for an upvoting system so that the most liked outfits are shown at the top

Going to keep it simple for now. To make the voting system actually work you'd need to think about storing who already voted and not upvoting your own submissions. So you'd need to write and read that data. Suddenly it's a lot more data than just the outfits. Plus this system would only really be useful when you're looking for inspiration and only selecting 1 or 2 items. In which case you might as well just click through multiple results and see for yourself.

Edit: side note, that only applies to the Outfit Vault. To store your own outfits (this issue) I can just save that data to the linked Dropbox account.