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

Got an idea for OpenTTD? Post it here!

Moderator: OpenTTD Developers

Post Reply
Karn
Engineer
Engineer
Posts: 127
Joined: 02 Oct 2011 18:56

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

Post by Karn » 01 Jun 2018 07:09

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

McZapkie
Tycoon
Tycoon
Posts: 1176
Joined: 18 Jan 2014 18:10

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

Post by McZapkie » 01 Jun 2018 07:56

Maybe involve train group into? To better handling with choose, which carriages should to be coupled?
My experimental openTTD server: 149.156.194.203:3979 non-standard client, now testing: JGRPP http://tiny.pl/ggnch
Projects: Reproducible Map Generation patch, NewGRFs: Manpower industries, PolTrams, Polroad, 600mm narrow gauge, preindustrial houses, wired, ECS industry extension, V4 CEE train set.
Addicted to freeciv longturn.

User avatar
JGR
Tycoon
Tycoon
Posts: 1959
Joined: 08 Aug 2005 13:46
Location: Ipswich

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

Post by JGR » 01 Jun 2018 08:44

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 45 times
Ex TTDPatch Coder, Grumpy Greymuzzle
Avatar by MoonsongWolf.
Patch Pack, Github
Dad-Coder since April 2018

Currently on holiday, patchpack/dev queries will be looked into when I'm back.

michael blunck
Tycoon
Tycoon
Posts: 5269
Joined: 27 Apr 2005 07:09
Contact:

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

Post by michael blunck » 01 Jun 2018 10:26

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: 306
Joined: 05 Jan 2013 02:34
Location: at home

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

Post by trainman1432 » 01 Jun 2018 16:41

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: 104
Joined: 24 Aug 2014 12:20
Location: Kaon Prison, Cybertron

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

Post by FulliAutomatix » 01 Jun 2018 17:59

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: 1225
Joined: 28 Apr 2003 18:52
Contact:

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

Post by Snail » 02 Jun 2018 01:34

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: 4924
Joined: 31 Mar 2007 14:23
Location: Lost in Music

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

Post by andythenorth » 02 Jun 2018 05:54

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: 5269
Joined: 27 Apr 2005 07:09
Contact:

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

Post by michael blunck » 02 Jun 2018 07:42

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
Engineer
Engineer
Posts: 127
Joined: 02 Oct 2011 18:56

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

Post by Karn » 02 Jun 2018 08:00

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: 104
Joined: 24 Aug 2014 12:20
Location: Kaon Prison, Cybertron

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

Post by FulliAutomatix » 02 Jun 2018 09:56

Thought I'd post this video that I made demonstrating the patch for a sleeper styled loco swap service :P

Eddi
Tycoon
Tycoon
Posts: 7410
Joined: 17 Jan 2007 00:14

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

Post by Eddi » 03 Jun 2018 17:02

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
You might not exactly be interested in Ferion, but if you are, have fun :)

Karn
Engineer
Engineer
Posts: 127
Joined: 02 Oct 2011 18:56

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

Post by Karn » 03 Jun 2018 17:48

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: 7410
Joined: 17 Jan 2007 00:14

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

Post by Eddi » 04 Jun 2018 13:44

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
You might not exactly be interested in Ferion, but if you are, have fun :)

Karn
Engineer
Engineer
Posts: 127
Joined: 02 Oct 2011 18:56

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

Post by Karn » 04 Jun 2018 14:22

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: 7410
Joined: 17 Jan 2007 00:14

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

Post by Eddi » 04 Jun 2018 14:32

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.
You might not exactly be interested in Ferion, but if you are, have fun :)

Karn
Engineer
Engineer
Posts: 127
Joined: 02 Oct 2011 18:56

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

Post by Karn » 04 Jun 2018 14:48

Okay, now I get it. It sounded like you are trying to solve general case. So disallow by default and allow only specified consists.

McZapkie
Tycoon
Tycoon
Posts: 1176
Joined: 18 Jan 2014 18:10

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

Post by McZapkie » 04 Jun 2018 18:20

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)...
My experimental openTTD server: 149.156.194.203:3979 non-standard client, now testing: JGRPP http://tiny.pl/ggnch
Projects: Reproducible Map Generation patch, NewGRFs: Manpower industries, PolTrams, Polroad, 600mm narrow gauge, preindustrial houses, wired, ECS industry extension, V4 CEE train set.
Addicted to freeciv longturn.

User avatar
Gwyd
Chief Executive
Chief Executive
Posts: 696
Joined: 17 Apr 2017 16:52
Location: Western Ile-de-France Region

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

Post by Gwyd » 05 Jun 2018 15:24

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 7 guests