Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change: Sort cargo payment rates legend in order of (initial) cost instead of alphabetically #8268

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

@Hexus-One
Copy link
Contributor

@Hexus-One Hexus-One commented Jul 10, 2020

Cargo payment rates are normally hard to read, as with more cargos, the different colours become harder to distinguish.
I believe that ordering the chart legend by cost will make it easier for the user to associate each line with the correct cargo.

Pic: chart with OpenGFX cargos
Cargo payment rates chart with OpenGFX cargos

Pic: chart with FIRS3 Extreme cargos
Cargo payment rates chart with FIRS3 Extreme cargos

@Hexus-One Hexus-One force-pushed the cargo-payment-graph branch from 9a9e841 to 258aee4 Jul 10, 2020
@andythenorth
Copy link
Contributor

@andythenorth andythenorth commented Jul 11, 2020

I haven't dug up the commit (I could if it's needed), but it was explicit choice to sort by alphabetical :)

A case can be made that it's quite tautological to sort by price:

  • the reason to use the filters in the cargo chart is to find the price and curve for a cargo
  • ordering by price requires you to already know the price of the cargo so that you can find the filter
  • tautology achieved!

Seems like a Chesterton's Fence case https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence

Related: with the 49 cargos in FIRS v4 Steeltown, the chart is even harder to use (borderline useless).

I have 'solved' this by resetting cargo payment rates to space them out on the chart (I force them apart algorithmically at compile time). Cargo payment rates should really be set for gameplay reasons, not to just make a chart look better, but I could find no other way to do it.

This means that FIRS v4 gameplay is really quite distorted, some cargos are way too profitable, and others are almost impossible to make a profit with. But the chart looks better, so eh.

cargo payment chart

@ldpl
Copy link
Contributor

@ldpl ldpl commented Jul 11, 2020

An alternative idea that may significantly improve chart usability: add a shared tooltip, e.g.
Screenshot from 2020-07-11 10-48-14
And unlike this picture it may make sense to actually sort them by price in the tooltip

@James103
Copy link
Contributor

@James103 James103 commented Jul 11, 2020

Such a tooltip would be too large for practical use for large numbers of unique cargo types. Maybe if the cargo's value could be displayed next to the name of the cargo on the legend for whatever time point you are hovering over, like the following:

Cargo values at 56 days:
Wood: £123
Stone: £43
Coal: £75
...

@Hexus-One
Copy link
Contributor Author

@Hexus-One Hexus-One commented Jul 12, 2020

@andythenorth I understand your tautology and also the Chesterton's Fence scenario, but personally I think your use case is seldom used:

  • the reason to use the filters in the cargo chart is to find the price and curve for a cargo

At least for myself (I play with FIRS3 freight a lot), the reason I use the cargo payments graph is to find the relative value of cargos, so I can decide which cargo is most profitable to transport. I believe this information is more important than the payment rate for a single cargo in isolation.

I also believe it is easier to find a word in a list given we know what word we're looking for (eg finding "Fruit" in the list of cargos), than it is to find a colour in a list given we know what colour we're looking for.

(At this point I realise PAX/mail is sorted separately because 1. wagons hold different amounts of them, 2. vehicles normally pickup/dropoff at both stops, 3. cargodist normally excludes full loads anyway)

We should consider different examples and how many steps a user needs to find the information they want, including finding the price for specific cargos, and finding the nth most valuable cargos.

"What is the payment rate for coal?"

Alphabetical sort:

  1. Read down the list of cargos until we find "Coal" (near the top).
    In vanilla its colour is dark grey, in FIRS3 Extreme it's black, in FIRS4 Steeltown it's red-brown.
  2. Find the line corresponding to Coal:
    a. Try find the line with the matching colour (assuming not colourblind) - easy in vanilla 11 cargos, hard in FIRS3 31 cargos, nearly impossible in FIRS4 49 cargos
    b. Click "Disable all" and then only enable Coal
    c. Click "Coal" repeatedly to make the line flash in order to stand out from the other lines
  3. We now know which line corresponds to Coal. If 2a or 2c then we know how it compares to other cargo payments, if 2b then we have the line in isolation.

Price sort:

  1. Read down the list of cargos until we find "Coal" (could be anywhere in the list).
    Colours as same as above - again possibly affected by colourblindness.
    In vanilla, Coal is 3rd from the top, in FIRS3 Extreme 3rd from the bottom, in FIRS4 Steeltown 8th from the bottom.
  2. Find the line corresponding to Coal:
    a. Try to find the line with matching colour, but the ordering from Step 1 hints us on where in the graph to start looking.
    b. Same as above
    c. Same as above
  3. We now know which line corresponds to Coal. From Step 1 we also know what cargos pay similar rates (by reading labels adjacent to Coal).

"What cargo pays the most at day 10?"

Alphabetical sort:

  1. Look at the chart at Day 1 to find the line with the highest point.
    In Vanilla it's dark blue, FIRS3 is salmon pink, FIRS4 is light blue
  2. Match this colour to the legend on the right.
    In Vanilla this is easy as there are few colours and all are very unique. In FIRS3 there are lots of cargos with similar colours, eg. Clay, Engineering Supplies, Food, Goods, Iron Ore. FIRS4 it could be Engineering Supplies, PAX, Rebar, Rubber or Slag.
  3. Isolate the correct cargo with two options:
    a. Keep the value in our head (FIRS3: about $170, FIRS4: about $197), Disable all, and then enable cargos one at a time until we one appears with a point at that value.
    b. Click each cargo repeatedly so the line flashes, until we find the line with the highest point.
    c. Disable cargos one at a time until we are confident we can colour match the line with no ambiguity.
  4. We now know Valuables/Engineering supplies are the most valuable cargo.

Price sort:

  1. Read the first item from the list of cargos.

Which cargo comes first in the alphabet?

Alphabetical sort:

  1. Read the third item from the list of cargos.

Price sort:

  1. Uhhh...
    a. Read down the list until we find a cargo starting with A
    b. Read down the list until we find a cargo starting with B
    c. Read down the list until we-

From this I propose that price sorting cargos is much more efficient and usable than alphabetical sort. Price sort enables the user to find payment rates in a shorter time and with less effort or interaction (possibly without even touching the window). It also allows the user to learn about the relation between different cargo payment rates much more effectively - info such as the highest paying cargo or cargos with similar payment rates to one another.
I believe this change should be implemented into trunk in order to improve the experience for all players.

@andythenorth
Copy link
Contributor

@andythenorth andythenorth commented Jul 12, 2020

Ok fine.

TBH, the trend of the OpenTTD UI is towards absolute crap anyway. Why resist the trend?

I think I need a break from OpenTTD again. I'm really done with the project for a bit.

@spnda
Copy link
Contributor

@spnda spnda commented Jul 12, 2020

I personally prefer the graph sorted by price too though I guess not everyone likes this sorting the most.
So what about a new setting where the user can select from different sortings? That should be the best option for everyone in my opinion, as everyone can sort it the way they want it sorted.
Some suggestions I'd have:

  • Alphabetical sorting
  • Sorted by original price
  • Sorted by current price

In the best case scenario the setting should be changeable inside the window and not the global settings.

@ldpl
Copy link
Contributor

@ldpl ldpl commented Jul 12, 2020

Money in OpenTTD rarely matters and even in those rare cases it does most profitable opportunities depend on many things and cargo payment graph doesn't really show them. For example, how would it help to notice passenger/mail options? Or bubbles in toyland? Even if you ignore cargo chains and landscape you still need charts like these to have at least a somewhat reasonable impression of cargo profitability: https://citymania.org/tools/profit

@andythenorth
Copy link
Contributor

@andythenorth andythenorth commented Dec 13, 2020

All it needed was a 'sort key by' option eh :P

@TrueBrain
Copy link
Member

@TrueBrain TrueBrain commented Dec 15, 2020

As it clear from this thread, there are different ways to play this game. Who would have known, shocker, right? :D

Personally, I really like this PR, as it is how I would like to use this window; I just never do, as I get lost in: what cargo was this line again? So I just connect cargos and see what makes most, and take it from there :P And I guess most new players would like it to be sorted by price.

That said, the more veteran players, especially those that tend to lean towards more realism, would like to use this to look up a single cargo and see how it does. Which is impractical if you have it sorted by price.

Which indeed brings it to its only logic conclusion: it needs a sorting key. And I think it should be below enable/disable button, not in settings. As the type of player you are will change during your game.

Would you be up for making these changes @Hexus-One ? I know it is a lot to ask, as it requires to rethink how you do your Pull Request?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

6 participants