Dynamic train composition? (Decoupling/Shunting/etc..)

Got an idea for OpenTTD? Post it here!

Moderator: OpenTTD Developers

Post Reply
Karn
Traffic Manager
Traffic Manager
Posts: 128
Joined: 02 Oct 2011 18:56

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Karn »

Answers for previous posts:

Decoupled part of train is becoming new train. There is open question, if the train limit should apply for trains or for locomotives. With this patch it makes more sense to limit locomotives, since they are what makes profit possible.

MUs (dualheads) won't be allowed to decouple, there is not much to do with generic wagons, it would be just weird. Only possibility to decouple will be to decouple 2 already coupled MUs.

Then there is the reversing idea. My plan is to rework reversing, basically as mentioned ^^. Then it will allow more combinations for shunting.

I'm also working on: Adding number parameter for how many units to decouple. And basic conditions for finding train for couple - IS_EMPTY, IS_FULL, and something with cargotypes. This will create framework for such thing as non-electric->electric shunting station
Wahazar
Tycoon
Tycoon
Posts: 1451
Joined: 18 Jan 2014 18:10

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Wahazar »

Maybe involve train group into? To better handling with choose, which carriages should to be coupled?
Formerly known as: McZapkie
Projects: Reproducible Map Generation patch, NewGRFs: Manpower industries, PolTrams, Polroad, 600mm narrow gauge, wired, ECS industry extension, V4 CEE train set, HotHut.
Another favorite games: freeciv longturn, OHOL/2HOL.
User avatar
JGR
Tycoon
Tycoon
Posts: 2558
Joined: 08 Aug 2005 13:46
Location: Ipswich

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by JGR »

Karn wrote:MUs (dualheads) won't be allowed to decouple, there is not much to do with generic wagons, it would be just weird. Only possibility to decouple will be to decouple 2 already coupled MUs.
MU doesn't necessarily imply dual-head.
See attached for what I mean.

In general the NewGRF spec permits wagons and locomotives to be arbitrarily different when coupled compared to when not, and it isn't obvious to determine whether this is a "safe" thing to allow in the context of decoupling.
Probably you will need to snoop on what the NewGRF is doing and just not allow de/coupling if it is doing this sort of thing (e.g. using variables 40-42, 60-62, etc.)
Attachments
MU decouple test, 1945-02-08.sav
(29.97 KiB) Downloaded 126 times
Ex TTDPatch Coder
Patch Pack, Github
michael blunck
Tycoon
Tycoon
Posts: 5948
Joined: 27 Apr 2005 07:09
Contact:

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by michael blunck »

JGR wrote: In general the NewGRF spec permits wagons and locomotives to be arbitrarily different when coupled compared to when not, and it isn't obvious to determine whether this is a "safe" thing to allow in the context of decoupling. [...]
"Longer" wagons/coaches are usually articulated, i.e. composed of 2 or 3 vehicles, e.g. by use of var 4D.

@Karn
A very interesting project!

regards
Michael
Image
User avatar
trainman1432
Transport Coordinator
Transport Coordinator
Posts: 316
Joined: 05 Jan 2013 02:34
Location: at home

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by trainman1432 »

Could somebody post a precompiled zip package of the Decouple (https://github.com/Palo123/OpenTTD-YPS/tree/Decouple)
because I appear to be having... issues... with compiling.
Jetrain
YATTC
User avatar
FulliAutomatix
Engineer
Engineer
Posts: 119
Joined: 24 Aug 2014 12:20
Location: Kaon Prison, Cybertron

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by FulliAutomatix »

trainman1432 wrote:Could somebody post a precompiled zip package of the Decouple
I wouldn't mind that too please! I have no idea how to compile OpenTTD and when I've looked at it I can't figure it out :P
User avatar
Snail
Tycoon
Tycoon
Posts: 1283
Joined: 28 Apr 2003 18:52
Contact:

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Snail »

This is a very interesting project, but I'm not sure how it would work with trainsets that change wagon properties according to the engine they're attached to.

For instance, in the set I'm working on, a passengers wagon's characteristics (livery, appearance, properties, even length...) are determined by the leading engine type. If a wagon has a "short" length when attached to engine A, and a "longer" length when attached to engine B, how would it behave in a game where I swap engine A with engine B in the consist? So far, we're not allowed to change a wagon's length outside of a depot, so I'm really puzzled as to how it would work with this patch.
The French Narrow Gauge Train Set is now released! Get it here
User avatar
andythenorth
Tycoon
Tycoon
Posts: 5658
Joined: 31 Mar 2007 14:23
Location: Lost in Music

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by andythenorth »

Snail wrote:This is a very interesting project, but I'm not sure how it would work with trainsets that change wagon properties according to the engine they're attached to.
It won't, not ever :)

But I think it's good that forks can explore new ground.

The future of OpenTTD is stable core, and lots of feature forks. Some forks won't be compatible with newgrf spec. That's ok.

Meanwhile we've discussed 'shunting' here since year zero. :twisted: Congrats to Karn for actually writing some code to implement it :bow:
michael blunck
Tycoon
Tycoon
Posts: 5948
Joined: 27 Apr 2005 07:09
Contact:

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by michael blunck »

andythenorth wrote:
Snail wrote: This is a very interesting project, but I'm not sure how it would work with trainsets that change wagon properties according to the engine they're attached to.
It won't, not ever
Depends. Some wagon properties, based on the engine, will fall back to default values. Others, like modifying vehicle length, would not work outside their scope (defined only when done in depots), and will probably produce desyncs in MP games.

BTW, apart from changing vehicle length by means of a CB for part vehicles inside a MU (which might not be split anyway by this patch), I don´t see any use case (= "bad feature") for changing vehicle lengths for wagons hauled by a normal engine (locomotive)?

regards
Michael
Image
Karn
Traffic Manager
Traffic Manager
Posts: 128
Joined: 02 Oct 2011 18:56

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Karn »

Here are windows binaries. Use on own risk, it's still in development.

Update 0.2: Decoupling variable number of units and various fixes

edit: binaries removed to avoid confusion, there is newer version 0.3 available with less crashes
Last edited by Karn on 07 Jun 2018 18:21, edited 2 times in total.
User avatar
FulliAutomatix
Engineer
Engineer
Posts: 119
Joined: 24 Aug 2014 12:20
Location: Kaon Prison, Cybertron

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by FulliAutomatix »

Thought I'd post this video that I made demonstrating the patch for a sleeper styled loco swap service :P
Eddi
Tycoon
Tycoon
Posts: 8267
Joined: 17 Jan 2007 00:14

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Eddi »

I don't know how your patch works, but i would propose to handle the "wagon properties depend on engine" by having the player specifically define "detachable wagon groups" in the depot. only those may take part in shunting operations, and vehicles in that group will not have access to vehicle properties outside that group. as far as the NewGRF is concerned, that is the whole train. shunting may only happen betewen such groups, and they cannot be searated by shunting
Karn
Traffic Manager
Traffic Manager
Posts: 128
Joined: 02 Oct 2011 18:56

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Karn »

Eddi wrote:I don't know how your patch works, but i would propose to handle the "wagon properties depend on engine" by having the player specifically define "detachable wagon groups" in the depot. only those may take part in shunting operations, and vehicles in that group will not have access to vehicle properties outside that group. as far as the NewGRF is concerned, that is the whole train. shunting may only happen betewen such groups, and they cannot be searated by shunting
"Let's make player's judgement prevent technical problems". What could go possibly wrong?
Eddi
Tycoon
Tycoon
Posts: 8267
Joined: 17 Jan 2007 00:14

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Eddi »

Karn wrote:"Let's make player's judgement prevent technical problems". What could go possibly wrong?
i don't think that's what i said
Karn
Traffic Manager
Traffic Manager
Posts: 128
Joined: 02 Oct 2011 18:56

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Karn »

Eddi wrote:
Karn wrote:"Let's make player's judgement prevent technical problems". What could go possibly wrong?
i don't think that's what i said
There is technical problem with variable wagon length depending on NewGRF engine. The problem is, when you change the engine outside the depot, it can corrupt certain things like absolute positions on map or some properties on level of changing NewGRF in game. You proposed to make player define what's technicaly safe to do outside the depot, even when the game will end up in unexpected state. So player would have to guarantee with his choices that the game won't crash/corrupt.
Eddi
Tycoon
Tycoon
Posts: 8267
Joined: 17 Jan 2007 00:14

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Eddi »

no, i proposed that the user gets the option to specify what he intends to do, so the game can avoid the unsafe operations, without completely removing them from the game.
Karn
Traffic Manager
Traffic Manager
Posts: 128
Joined: 02 Oct 2011 18:56

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Karn »

Okay, now I get it. It sounded like you are trying to solve general case. So disallow by default and allow only specified consists.
Wahazar
Tycoon
Tycoon
Posts: 1451
Joined: 18 Jan 2014 18:10

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Wahazar »

Some newgrfs have restrictions, using "start-stop" or "can_attach" switches, to handle MU things etc.
Is it possible to check result of these switches when coupling/decoupling order is being set?
Probably only second one is possible (decoupling order sanity check)...
Formerly known as: McZapkie
Projects: Reproducible Map Generation patch, NewGRFs: Manpower industries, PolTrams, Polroad, 600mm narrow gauge, wired, ECS industry extension, V4 CEE train set, HotHut.
Another favorite games: freeciv longturn, OHOL/2HOL.
User avatar
Gwyd
Chief Executive
Chief Executive
Posts: 721
Joined: 17 Apr 2017 16:52
Location: Western Ile-de-France Region

Re: Dynamic train composition? (Decoupling/Shunting/etc..)

Post by Gwyd »

What about livery overrides? The stuff associated with that is only ever meant to take place in a depot. All kinds of crazy stuff could happen: in particular a change in capacity may occur.
Post Reply

Return to “OpenTTD Suggestions”

Who is online

Users browsing this forum: No registered users and 46 guests