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 cargo age to have more effect on cargo payment. #9002
Conversation
eff2ddc
to
ac58f2d
Compare
Is this a troll or are you actually serious? If it's the latter can you please state what's the actual problem and how is this all suposed to solve it and how does it change the established game economy? I wasn't able to follow chat last week and so far it looks to me like "let's break the game for no fucking reason" PR. |
The agreed wisdom seems to be that after some point, transport time doesn't matter anymore for cargo profit. Whether this is a problem or not is very much open to debate, but at least for this PR I'm treating it as one. And it is semi-serious. I didn't add any setting because then most players would never see it, but at the same time it would probably seriously mess up any existing cargodist/transfer game. |
ac58f2d
to
998c998
Compare
This looks like two separate features really:
The former is quite a significant gameplay change and is likely to have a non-trivial impact when cargodist is used (i.e. big pax/mail networks). (This is not an objection, just to be clear). I notice that passengers and mail age more quickly in stations than other cargoes. Passengers and mail don't age more quickly in actual vehicles though. It seems odd to do one but not the other. Presumably the actual per-cargo curve time constants should encapsulate the difference between cargoes? |
There's a reason its marked as draft, so don't take this as gospel. I only gave pax and mail a different value than the default one because those two are most likely™️ not redefined by NewGRFs. Proper backwards compatibility would be to default to 0 (no ageing), but I dislike doing work 98% of the players will never get to see. I do think the station ageing only makes sense with the first change, as otherwise it just means average cargo payment will tend to be even more stuck at the "time doesn't matter anymore" end. This would make even stronger incentive to completely ignore travel time. |
I have news on this front 😉 For some reason FIRS has been redefining pax and mail payments and curves since maybe 2012 or older (I'm not sure how different the curve really is). I discovered (re-discovered?) this fact recently, it gives rise to some 'interesting' vehicle set balancing problems👻 EDIT: probably not relevant here :) |
I suspect many industry sets define passengers and mail simply to follow FIRS. I know mine does, simply copying payment rates and even graph colours. |
I didn't mean just changing some cargo parameters, I meant reusing the cargo slot for something else, because I don't want any older NewGRF to suddenly inherit some strange ageing factor from a predefined cargo. Assuming that pax/mail are not redefined in another slot is probably a sane assumption. |
+1 Not doing so breaks houses quite unpleasantly 😉 I do have a semi-serious suggestion to remove pax from FIRS and do industry-only gameplay, but I don't think it's viable. |
I don't see anything good in this PR. I could repeat what Idpl wrote in the first sentence and that wouldn't be a question. I also find the last sentence quite velvety. But ok, let's say there's a problem with the transfer. So I did a test to present the effects of such a solution (in ordinary OTTD 1.11.0). Assumptions:
Conclusions:
In brief:
There are three problems that this PR refers:
This PR does not solve any of these problems. Its only magnifies them. |
what about the passengers? |
I agree that the delivery rewards can't and shouldn't be realistic, and that the players shouldn't be penalized for building complex networks. However, clamping the cargo age doesn't reward such networks — it only rewards length. AFAIK the cargo age clamp was implemented back in the day when maps used to be rather small by today's measure, and any vehicle could almost certainly cross any map in less than 255 days. Removing the clamp would not break transfer networks; it would just bring back the original intent behind the reward calculation. |
Can the station aging rate be disabled entirely by NewGRF by some special value? The easy way to add this without breaking savegames would be for vanilla cargos to not age in stations, but allow NewGRF authors to use the new feature. I would certainly experiment with it! |
I guess now that PR looks semi-decent it can be discussed semi-seriously. First of all, I see 3 completely unrelated commits that should be separated into 3 PRs and discussed separately IMO. But since it is what it is I'll just go over each of them here.
|
This comment has been minimized.
This comment has been minimized.
This comment was marked as abuse.
This comment was marked as abuse.
I think station cargo aging would make a lot more sense if we had true CargoDest where a larger network (almost certainly with transfers) allowed a company to capture more cargo. But with CargoDist, this discourages a true network to incentivize point-to-point routes, as Rau and others correctly pointed out. |
That's a good point, though I'm not sure it outweighs the opportunity for abusing the reward system. Any system that accounts for distance in a linear fashion but ignores time after some point can be gamed by building a sufficiently long route. With the current system, this happens at about 2000–3000 tiles for slow vehicles and perishable cargoes, which definitely fits into modern maps. |
This comment was marked as abuse.
This comment was marked as abuse.
The simplest possible connections always have been the most efficient from an economical point of view. This follows from the fact that the delivery reward grows with distance. Given the same distance and time, it is always better to build a simpler connection and save on maintenance costs. (The Industries of the Caribbean add-on is an interesting subversion of this rule. It features a socialist planned economy, in which payment rates are negative for all cargoes except the export goods.) Yes, tweaking the payment rates in the proposed way would mean that slow transport over longer distances will only generate losses. I think that's a good thing, and coincidentally this is also realistic: e. g. international travel had been a luxury for the most part of 19th century. |
Superseded by #10596, I think. |
Or: Make transfer networks suck.
Or: How to break cargo ageing and cargodist in one go.
Motivation / Problem
There's lot of talk about cargo ageing, profitability and strange cargo curves. We should try our hardest to make sure routes fail to be profitable.
Cargo profit depends on distance and time taken until delivery. There's a hard limit for the time taken, which means each cargo has a point from which on time (and thus vehicle speed) don't matter anymore. Further away means more profit then, not matter if horse or Concorde. Cargo also doesn't care about being stored for hundreds of years in transfer stations before delivery.
Description
Increase age range of cargo packets. Age in-transit cargo at stations. Add a fourth time range to profit calculations that asymptotically approaches zero.
Cargo that is in-transit (i.e. has an age > 0) will be aged in stations. Default ticks before ageing is 740, except pax/mail which are aged every 370 ticks. A NewGRF cargo prop is provided to modify the rate.
On profit calculation, if the time factor was previously clamped to 31, it will now continue with a scaled
1/(x+1)
function asymptotically to zero with 4 bits of fixed point precision.Limitations
YOLO
Checklist for review
Some things are not automated, and forgotten often. This list is a reminder for the reviewers.