Archipelago icon indicating copy to clipboard operation
Archipelago copied to clipboard

Hint system overhaul

Open alwaysintreble opened this issue 3 years ago • 8 comments

As Archipelago continues to grow in size, the switch from percentage based hints becomes less effective because of games having significantly different play times so proposal for a new way of handling hints.

  • Return to hint_cost being strictly an int specifying how many points are needed per hint in host.yaml
  • generic hint_cost option to be used for any world so players can set their own custom price for a hint
  • Add a new option to host.yaml allow_hint_override default on
  • Add a new hint_cost attribute to Locations default value of 1 and allow worlds to override this so they can have different costs for their base locations or specific locations

alwaysintreble avatar May 07 '22 20:05 alwaysintreble

Seems far too complicated. Please remember that this needs to be communicated the the users in some decent way as well.

Berserker66 avatar May 08 '22 05:05 Berserker66

Seems far too complicated. Please remember that this needs to be communicated the the users in some decent way as well.

it only needs to be communicated if you are under the assumption that the players currently understand how it works

Jarno458 avatar May 12 '22 11:05 Jarno458

Speaking anecdotally, the group I've played with was able to pretty quickly understand how the current system works. You get one hint for every N% of your checks found, where N is configurable but probably like 10 or 20. The only challenging part is knowing what the hints are named (which archipelago.gg/datapackage helps with but could certainly be more frienldy)

In contrast, the system @alwaysintreble sounds quite complicated. I guess the idea is that in one multi-world, different people could have more or less access to hints and some hints might be more or less expensive? It's not very clear what the benefits are or in what situations this would be helpful.

mDuo13 avatar May 23 '22 22:05 mDuo13

In contrast, the system @alwaysintreble sounds quite complicated. I guess the idea is that in one multi-world, different people could have more or less access to hints and some hints might be more or less expensive? It's not very clear what the benefits are or in what situations this would be helpful.

So many of the games barely need hints while other games benefit from them greatly. Usually the games that benefit more from them have relatively small early spheres so they can only hint once while the people who don't need hints continue to play and if they hinted for an item that can't be reached still they're stuck not playing while everyone else now has access to 3-4 hints. The hint costs would only be different if the players specify it as such but this would allow players to have more early hints without having to figure out exactly what they want to hint with start hints. The idea for differing points on locations is so that games can reward more points for more substantial checks (bosses) but this probably doesn't add anything substantial and can be scrapped.

alwaysintreble avatar May 24 '22 15:05 alwaysintreble

Some ideas that are simpler:

  1. in addition to start_hints and start_location_hints add start_free_hints to yaml, which is X amount of hints you start with to spend freely.
  2. Add a hint point trickle, something like every X minutes give another Y points to everyone, might be especially liked in asyncs.

Berserker66 avatar Jun 03 '22 11:06 Berserker66

2. Add a hint point trickle, something like every X minutes give another Y points to everyone, might be especially liked in asyncs.

This idea makes a lot of sense to me. If you don't have hint points & can't make progress until someone else finds something, this will actually help. It also allows for people to tweak the overall game to last a more predictable amount of time at maximum, which is generally good. (Lots of other games & sports have rules to limit how long an event can run, because it makes scheduling, broadcasting, and other stuff easier.)

I'm not sure if there's a meaningful difference between start_hints, start_location_hints, and the proposed start_free_hints though. If it's just, "You can hint without spending a point" versus "you get points to start with" that sounds functionally the same to me.

mDuo13 avatar Jun 03 '22 17:06 mDuo13

I'm not sure if there's a meaningful difference between start_hints, start_location_hints, and the proposed start_free_hints though. If it's just, "You can hint without spending a point" versus "you get points to start with" that sounds functionally the same to me.

You would be able to decide what to do with these points after the game has started, such as once you've actually been BK'd, and have an idea what items would be best in your current situation

Alchav avatar Jun 03 '22 17:06 Alchav

Some ideas that are simpler:

  1. in addition to start_hints and start_location_hints add start_free_hints to yaml, which is X amount of hints you start with to spend freely.
  2. Add a hint point trickle, something like every X minutes give another Y points to everyone, might be especially liked in asyncs.

I like both of these ideas though I worry the first one would be too confusing for users and there's different ways to implement the second so should probably be discussed before implementing. Maybe the trickle only goes into effect if the player has gone x minutes without doing a check before gaining a point to more easily help with sync games without just awarding everyone a ton of points and have the speed and amount be adjustable by host to account for async. I worry that this will encourage people to actively not play seeds in order to stack up more points however.

alwaysintreble avatar Jun 05 '22 12:06 alwaysintreble

For the trickle- since we don't use realtime anywhere else currently, maybe it should be a setting more akin to "gain one hint every x% total location checks this multiworld"; which then translates down to individual hint points as enough % would be accumulated.

Berserker66 avatar Jun 10 '24 01:06 Berserker66