There are several issues with the current force calculation model. This was written in an era where CPU speeds were measured in Megahertz however, so it was understandable in the 90s.
Now however CPU speeds and math functions are more advanced, making improvements in this practical.
Current issues with force calculation include:
This would have some significant impacts on gameplay. Stats could be very different on coasters from Open vs. vanilla RCT2 ... especially for designs which end with the train coming in hot as it approaches the station.
It's not up to me, but I'd say that support for longitudinal G's and redoing the loop physics should not be done. It changes the game too much, and was the game ever intended to be hyper-realistic anyway? Considering guest angles ... _maybe_ something like that might be worthwhile, at least for the multidimensional roller coaster. The only thing I'd wholeheartedly agree with doing is an improvement to the crash physics, since that's mainly just cosmetic anyway and wouldn't affect standard gameplay.
Considering the vast amount of scenarios, saves and track designs out there, I think this should at the very, very least, be optional. Even then, I'm not sure if it should be implemented in the first place.
If this were implemented, the idea is that it wouldn't break any of those. This would be the equivalent of the better express handling in OpenTTD: A setting would exist to revert to the old way.
Even then, Multidimensional Coasters are rarely built, especially in scenario play. They are hard to build and do not justify it through their reward. Why bother going through the effort of setting seat angles for each individual track if it does nothing? Back in 2002 when it was expected to run on 90s CPUs running Windows 98, this was acceptable to keep out due to the overhead of calculation required. Now however there is no reason to keep the 4D Coaster in such a bad state.
Improved force calculation is a logical conclusion to that. Longitudinal Gs would be necessary to consider for these coasters, but for the most part they wouldn't break anything as many players incorporate longer brake runs anyway (too short ones would usually fail anyway), and positive Longitudinal Gs can be withstood very easily by the human body (up to 20 Gs safely).
Its not just about scenarios, you will have hundreds of save games that will potentially break if such coasters exist in there, also I'm not sure that performance was the reasoning for leaving it out.
This can be done as a fork and then if there is a lot of demand for it then we can think about merging it upstream when it is in stable form. This is how the cargo dist came into OpenTTD.
@Generalcamo Right, the Multi-Dimension Coaster might indeed be a candidate. I have to admit that I didn't know that seat rotation was not taken into account, but checking the code, it seems that you're correct about that.
I like the idea of this, but only as an opt-in, with the default option being the current physics. If you make this the standard it will make the transition from vanilla to open very rough for a lot of players, resulting in probably many people not bothering when they find out their coasters aren't working anymore.
A lot of players don't use realistic brake runs, so instead of a mod, it would feel like a different game that they would need to relearn in order to build working coasters. Also, what about launches like the one of the LIM coaster? I'm pretty sure that the longitudinal forces on that would be through the roof.
Or better yet we make the whole thing abstract and allow plugins to change the way things are calculated.
Unless it's a savegame-specific option that you can opt-in, I'm strongly against changes like these that could break the entire current body of savegames ever made in the history of mankind. I love OpenRCT2 adding stuff, but I hate it when it retroactively changes how things look or work.
@Liampie You should know us well enough to know that we wouldn't mess with such a core mechanic so easily.
In general, I expect us to go down the road of OpenTTD's "realistic acceleration" model (TT's idea of physics was taking 90 degree turns at full speed, but slowing down to a crawl when going over a tiny bit of elevation), which is set per-save, with old saves from TT and TTD automatically defaulting to the old model. And people aren't quite as likely to play a TT(D) save for years, unlike RCT. So basically: if this gets introduced, expect it to be optional.
Just giving my two cents, I wasn't responding to the dev team per se. ;) Although now that you bring it up, OpenRCT did introduce some things that change the appearance and functionality of parks, so honestly I wouldn't put it past you. Good to hear that any improvements here would be optional, that's perfect.
Would it be possible to add support for gravity and atmospheric pressure different from that of Earth? Gravity (in gees) and atmospheric pressure (in atm) would be multipliers to the weight and drag force of vehicles on (tracked) rides, respectively. Both values would default to 1, which would be the same as before and equivalent to Earth.
The reasoning would be that scenarios set on other non-Earthlike planets (such as Mars, Venus, or Jupiter) would needed different parameters for the gravity and atmospheric pressure in order to give the "alien planet" feel. As an example, if you wanted to create a scenario in which you had to build a lunar theme park (that's actually located on the Moon's surface), you would need to set gravity to 0.2 and the atmospheric pressure to 0.
Naturally, coasters which work on one planet (such as Earth) wouldn't work on some other planets (such as Jupiter (high gravity), Venus (high drag), or the Moon (no atmosphere + low gravity)). This would encourage more varied coaster design.
@James103 It would be possible, but it would have to be a plug-in or fork.
I've thought about trying to do something like this before, but I think RCT2 doesn't calculate forces accurately for a reason - due to the limited pieces, it would be very difficult to build without excessive G forces otherwise (and any RCT ride built IRL would be very uncomfortable due to lack of heartlining and abrupt transitions).
I don't think it's necessary to calculate longitudinal forces for the simple fact that they are generally very low throughout much of the ride, where the only source for longitudinal G force is friction*. Also, default game launches don't take account of acceleration at all, and this is probably the only area where it would matter.
I do however think that the seat rotation should be accounted for particularly on the 4th dimension coaster. At the moment, the seats are completely ignored, even if they are oriented such that they would produce dangerous negative Gs. It would make these designs a bit more interesting to build.
I'd like to see an improved physics model at some point, probably as an option so it doesn't break old parks.
* OK, that's not strictly true, but since the forces aren't calculated separately for each car, it might as well be.
Most helpful comment
This would have some significant impacts on gameplay. Stats could be very different on coasters from Open vs. vanilla RCT2 ... especially for designs which end with the train coming in hot as it approaches the station.
It's not up to me, but I'd say that support for longitudinal G's and redoing the loop physics should not be done. It changes the game too much, and was the game ever intended to be hyper-realistic anyway? Considering guest angles ... _maybe_ something like that might be worthwhile, at least for the multidimensional roller coaster. The only thing I'd wholeheartedly agree with doing is an improvement to the crash physics, since that's mainly just cosmetic anyway and wouldn't affect standard gameplay.