Subsidiary Companies

Forum for technical discussions regarding development. If you have a general suggestion, problem or comment, please use one of the other forums.

Moderator: OpenTTD Developers

Post Reply
Ruiluth
Engineer
Engineer
Posts: 41
Joined: 24 Jun 2013 02:13
Location: Orbitting Jool

Subsidiary Companies

Post by Ruiluth »

If there's one feature missing from every train game ever made, it's subsidiary companies. In real life, in the US at least, it was extremely common for a larger railroad to create a smaller railroad to build and operate a particular section of their network.

As an example, the Union Pacific's primary mainline was from Omaha, Nebraska, to Salt Lake City, Utah: the original Transcontinental Railroad. However, UP execs also wanted access to Oregon and California. Rather than building the lines themselves, they set up subsidiary companies. The Oregon Short Line started in Granger, Wyoming, where it branched off of the main Union Pacific line, and built northwest to Huntington, Oregon, with the goal of Portland, Oregon. The Oregon Railway and Navigation Co already connected Huntington to Portland, so they simply bought a majority share in that line and reorganized it as the Oregon and Washington Railway and Navigation Co, which was a subsidiary of the Oregon Short Line, which was a subsidiary of the Union Pacific. The Los Angeles and Salt Lake connected the Union Pacific at Salt Lake City to Los Angeles. Together, the OWR&N, OSL, LA&SL, UP, and various other subsidiaries, were called the Union Pacific System. All painted their equipment the same way and lettered them Union Pacific, but somewhere on the car or engine would be small letters that showed which company the car actually belonged to.

Another great example is the Southern Pacific Lines. Everyone knows the Central Pacific, the pioneering railway that met the Union Pacific at the Golden Spike, but unlike the UP, the CP name wasn't the one they used for most of their life. The owners of the Central Pacific also owned the Southern Pacific, and they decided to paint all equipment on both railroads to match the latter. Over time, their system came to include many railroads, such as the Oregon and California, California and Oregon, Texas and New Orleans, St Louis Southerwestern (aka Cotton Belt), Arizona Eastern, Pacific Electric, Northwestern Pacific, the Galveston Harrison & San Antonio, San Diego & Arizona Eastern, and various others. This is why, until 1941, all rolling stock belonging to any of these companies was lettered "Southern Pacific Lines," because the Southern Pacific was actually a big conglomeration of many distinct railroads all working together and feeding each other. Here's a great image of a cab forward locomotive, the Southern Pacific's unique locomotive type, painted and labeled as a Southern Pacific engine, but sporting a tiny CP marking to show who it actually belongs to. https://c7.alamy.com/comp/KKJ0PD/southe ... KKJ0PD.jpg


Anyway, sorry for the exposition dump, but how does this all relate to TT? Well, simply put, if I have an existing rail line, I may not want to simply build a branch, because I don't know if it will make me a profit or not, and after it gets mixed with everything else, it's hard to tell what budget items go where. However, if I can start a new company, and have that other company build the line, then I can simply look at that company to see if it's doing well, and see if I should formally absorb it or tear it down and try something else. Either way, it's no risk to the parent company because if the subsidiary goes bankrupt, all is not lost and it simply goes out of business, while the parent continues on like nothing happened. (Side note: the Infrastructure Sharing patch in JGRPP is pretty much required for this to be viable.)

This is easy to implement right now: just start a multiplayer game, and when you feel like it, quit and start a new company. If there are no other clients, you can switch between companies at will, making it easy to control both at once. However, there is one fatal flaw with this system: you can't fast forward at all. This seems like a trivial thing to add to single player mode: simply allow the player to take control of any company not already controlled by AI, and create a new company with a button. These features already exist in multiplayer and for spectators; all that needs to be done is to enable them in single player.

(I just realized that the cheat menu can be used for a similar effect, but it's kind of a pain to have to load your game into multiplayer, make a new company, and then go back to single player and switch using the cheat menu.)

Anyway, I could probably figure out a way to make this patch myself given enough time, but as a novice coder I'm sure there's someone out there who can do it much faster than I and save me a lot of trouble. So what do you say? Does this feature interest anyone else? Can someone quickly whip this up in the time it would take me to figure out what language I'm in, or should I do it myself?

Thanks for reading, and I hope this sparks some interesting discussion!
mrjack2
Engineer
Engineer
Posts: 55
Joined: 21 Jan 2016 23:04

Re: Subsidiary Companies

Post by mrjack2 »

You can use the console instead of switching between multiplayer and singleplayer

Commands: start_ai starts an AI
stop_ai 5 stops the AI in slot 5

You can use a blank AI like Idle or IdleMore in all the AI slots.
Ruiluth
Engineer
Engineer
Posts: 41
Joined: 24 Jun 2013 02:13
Location: Orbitting Jool

Re: Subsidiary Companies

Post by Ruiluth »

mrjack2 wrote:You can use the console instead of switching between multiplayer and singleplayer

Commands: start_ai starts an AI
stop_ai 5 stops the AI in slot 5

You can use a blank AI like Idle or IdleMore in all the AI slots.
Oh, that didn't occur to me. I'll try that.
Tsylatac
Engineer
Engineer
Posts: 37
Joined: 26 Dec 2015 01:04

Re: Subsidiary Companies

Post by Tsylatac »

Cargo can't shared between companies though, right?

For example, if I as company 1 make a train line from station A to B, then switch to company 2 and make a bus line from station B to C, cargodist won't ever generate passengers who want to travel from A to C or vice versa...

This is the only reason I've never tried playing like this, I'd end up having to have all passenger services under one company's umbrella anyway because I want a theoretical passenger to be able to reach any station no matter where they start, one big network...
mrjack2
Engineer
Engineer
Posts: 55
Joined: 21 Jan 2016 23:04

Re: Subsidiary Companies

Post by mrjack2 »

Infrastructure sharing (part of JGR's patchpack) is being used, as the OP said.
User avatar
kamnet
Moderator
Moderator
Posts: 7522
Joined: 28 Sep 2009 17:15
Location: Eastern KY
Contact:

Re: Subsidiary Companies

Post by kamnet »

The Infrastructure Sharing patch isn't perfect, but it's perfect enough that I don't play OpenTTD without it anymore. And to that end, I only play using JGR Patch Pack, which JGR has attuned IS for his needs. It does a very good job at simulating cooperative company gameplay.
Tsylatac
Engineer
Engineer
Posts: 37
Joined: 26 Dec 2015 01:04

Re: Subsidiary Companies

Post by Tsylatac »

Well I'll be damned. I feel like it took awhile longer than normal for CargoDist to do its thing, but after a couple months it's doing exactly what I thought it wouldn't do. :oops: New game time!
Eddi
Tycoon
Tycoon
Posts: 7626
Joined: 17 Jan 2007 00:14

Re: Subsidiary Companies

Post by Eddi »

just keep in mind that with infrastructure sharing, payment will be wrong, as the company making the final delivery gets all the income, and there is no method to compensate the other company for its transfer share. depending on your play style/network layout this may be more or less relevant (with and without cargodist).
You might not exactly be interested in Ferion, but if you are, have fun :)
User avatar
planetmaker
OpenTTD Developer
OpenTTD Developer
Posts: 9417
Joined: 07 Nov 2007 22:44
Location: Sol d

Re: Subsidiary Companies

Post by planetmaker »

Eddi wrote:just keep in mind that with infrastructure sharing, payment will be wrong, as the company making the final delivery gets all the income, and there is no method to compensate the other company for its transfer share. depending on your play style/network layout this may be more or less relevant (with and without cargodist).
Also note: with CargoDist enabled, OpenTTD will try to route stuff via oil rigs when both companies start serving it (e.g. easy to do mix passengers there if you provide service to the workers on the platform).
User avatar
kamnet
Moderator
Moderator
Posts: 7522
Joined: 28 Sep 2009 17:15
Location: Eastern KY
Contact:

Re: Subsidiary Companies

Post by kamnet »

Eddi wrote:just keep in mind that with infrastructure sharing, payment will be wrong, as the company making the final delivery gets all the income, and there is no method to compensate the other company for its transfer share. depending on your play style/network layout this may be more or less relevant (with and without cargodist).
Is this also the case if you have more payment set to earlier transfers in the journey?
User avatar
JGR
Tycoon
Tycoon
Posts: 2256
Joined: 08 Aug 2005 13:46
Location: Ipswich

Re: Subsidiary Companies

Post by JGR »

Eddi wrote:just keep in mind that with infrastructure sharing, payment will be wrong, as the company making the final delivery gets all the income, and there is no method to compensate the other company for its transfer share. depending on your play style/network layout this may be more or less relevant (with and without cargodist).
This has already been corrected in the implementation of infrastructure sharing which is in my patchpack.
When the final delivery is made, all companies involved are paid the appropriate income according to the transfers and final delivery income which have occurred en route.

There is also a setting to change/improve the calculation of transfer payments for intermediary journeys, which generally improves the distribution of income with infrastructure sharing.
Ex TTDPatch Coder
Patch Pack, Github
Dad-Coder since April 2018

Avatar by MoonsongWolf
Eddi
Tycoon
Tycoon
Posts: 7626
Joined: 17 Jan 2007 00:14

Re: Subsidiary Companies

Post by Eddi »

kamnet wrote:
Eddi wrote:just keep in mind that with infrastructure sharing, payment will be wrong, as the company making the final delivery gets all the income, and there is no method to compensate the other company for its transfer share. depending on your play style/network layout this may be more or less relevant (with and without cargodist).
Is this also the case if you have more payment set to earlier transfers in the journey?
i don't know about JGR's changes, but in the standard implementation, this is completely independent and the transfer payment setting is only used in accounting (vehicle statistics), not for actual payments (bank balance, yearly income reports)
You might not exactly be interested in Ferion, but if you are, have fun :)
odalman
Engineer
Engineer
Posts: 37
Joined: 07 Jan 2020 01:46

Re: Subsidiary Companies

Post by odalman »

There are vehicle groups that can show the sum of the profits for vehicles. A group can belong to another group so that a hierarchy is formed. Colour schemes can be assigned to groups. (Of course groups do not protect against bankruptcy.)
Last edited by odalman on 24 Jan 2020 20:16, edited 1 time in total.
User avatar
odisseus
Traffic Manager
Traffic Manager
Posts: 226
Joined: 01 Nov 2017 21:19

Re: Subsidiary Companies

Post by odisseus »

In real life, subsidiary companies are created due to political and legal factors that just don't exist in OpenTTD. The only exception is the risk of bankruptcy, but that risk is negligible under standard settings.

If you want to control two companies and let them share infrastructure... isn't that effectively the same as having just one company with double the vehicle limit?

By the way, if you need to use fast-forward a lot, this means that the game settings are probably too hard for you.
goremaniac
Engineer
Engineer
Posts: 26
Joined: 25 Aug 2008 08:00

Re: Subsidiary Companies

Post by goremaniac »

odisseus wrote: 24 Jan 2020 08:47 In real life, subsidiary companies are created due to political and legal factors that just don't exist in OpenTTD. The only exception is the risk of bankruptcy, but that risk is negligible under standard settings.

If you want to control two companies and let them share infrastructure... isn't that effectively the same as having just one company with double the vehicle limit?

By the way, if you need to use fast-forward a lot, this means that the game settings are probably too hard for you.
Actually that's just one scenario, other scenarios
1) Client demands dedicated company to handle goods. Generally the case with coal transportation to Thermal power plants.
2) Parent companies start business catering to particular business and then decide to diversify. To mitigate risks and to decouple existing profit making company from new for considerable future loss making, borrowing companies, they start subsidiaries.
3) Auditing and taxing based on the type of goods.
4) Political and Legal as already mentioned.

There could be more reasons.

If in openttd, we need to implement subsidiaries, one idea
1) When existing company wants to create a subsidiary for very first time, 2 new companies will get created. (Only for first time, for further subsidiaries, only 1 new company will get created).
2) 1 as Parent holding company, 1 as subsidiary of Parent Company. Existing company also subsidiary of Parent company.
3) Parent company will not be allowed to raise capital/loans or build any network but some yearly basic expenditure and some money inflow from subsidiaries could be accounted in it.
4) Infrastructure sharing could be simplified (based on concept not talking in terms of code, Don't know about code complexity) based on Parent company. Only companies with common parent companies can share infrastructure.
5) Profit distribution between subsidiaries based on fix in JGR's Patchpack for infrastructure sharing.
6) Loss making subsidiaries or closure due to losses - Losses to be transferred to Parent company. Now parent company has choice to pull money from which ever subsidiaries it wants and deal with losses.
7) Transfer of money between companies - Something to think about - we completely restrict it or transfer with taxation of 5 to 10%. Transfer from subsidiaries to parent - no tax but parent to subsidiaries tax of 5 to 10% to prevent workaround.
8) Take over of other single company - They can become new subsidiaries in existing setup of parent+subsidiaries or get absorbed into existing one or come together with existing (creating a new parent holding company).
9) Take over of single company inside group of companies - Only 50% of shares should be allowed to be bought.
10) Take over of parent company - Valuation will be Summation of all subsidiaries. Total shares = Summation of all subsidiaries shares. Total shares currently held will be 100 - Summation of subsidiaries share held by taking over company. - Need more thinking. Also buying shares in 10% rather than 25% will make this maths more easier to deal with (IMO).

Note- This is just my idea. Not sure how complex it is for implementation and also don't know if this approach was discussed and rejected in previous many discussions on this topic.
User avatar
luk3Z
Engineer
Engineer
Posts: 93
Joined: 25 Dec 2005 17:42
Location: Poland

Re: Subsidiary Companies

Post by luk3Z »

In my opinion:
First OTTD should stop the madness of very long railways through the whole of the map (this is stupid after so many years of playing & watching it).
And I know how to do that (simple cargo profit.grf):

Image

Anyway this grf "disregards distance & time for all cargo..." but in this case "disregards distance" will be sufficient.

This calculation in cargo payment in TTD depending on "distance" reminds me multi-level bridges madness from Locomotion.

https://wiki.openttd.org/en/Manual/Game ... ment-rates

Examples (no inflation):
Deliver 200,000 liters of oil 20 squares in 10 days:
2 * £54 * 20 squares * 100% = £2160

Deliver 200,000 liters of oil 200 squares in 10 days:
2 * £54 * 200 squares * 100% = £216000 - NONSENSE (even in 30 days - we don't need squares to be accounted)

BTW why there are no bigger penalties for not deliver cargo on time ?

After dealing with that it will be time for new ideas... like that:

Image
Find new graphics easier:
GRFCrawler -> http://grfcrawler.tt-forums.net
BaNaNaS -> https://bananas.openttd.org/
32 bit gfx in OTTD: https://wiki.openttd.org/en/Community/N ... 20graphics
32 bit gfx comparison: viewtopic.php?f=67&t=88503 Check "online content" button in the game menu % type "32bpp".
User avatar
odisseus
Traffic Manager
Traffic Manager
Posts: 226
Joined: 01 Nov 2017 21:19

Re: Subsidiary Companies

Post by odisseus »

goremaniac wrote: 21 Feb 2021 07:12 1) Client demands dedicated company to handle goods. Generally the case with coal transportation to Thermal power plants.
2) Parent companies start business catering to particular business and then decide to diversify. To mitigate risks and to decouple existing profit making company from new for considerable future loss making, borrowing companies, they start subsidiaries.
3) Auditing and taxing based on the type of goods.
4) Political and Legal as already mentioned.

There could be more reasons.
That's precisely my point. There are plenty of reasons why a company might want to create a subsidiary IRL, but none of these reasons exist in the OpenTTD gameplay. The only exception is limiting the impact of possible bankruptcy, but IMO this risk isn't big enough to justify major changes to the economy.

Sure, you can create a patch that would introduce additional factors such as taxing and legal restrictions. With these factors, subsidiary companies could be more useful than they can possibly be in the standard OpenTTD economy.
luk3Z wrote: 21 Feb 2021 17:03 In my opinion:
First OTTD should stop the madness of very long railways through the whole of the map (this is stupid after so many years of playing & watching it).
And I know how to do that (simple cargo profit.grf):

Image
I don't see how levelling the cargo payment rates would discourage long transport routes. On the contrary, your graph seems to suggest that the profit from a single shipment grows linearly with the distance, no matter how much time it takes.
User avatar
Captain Rand
Engineer
Engineer
Posts: 123
Joined: 28 Jan 2012 07:35

Re: Subsidiary Companies

Post by Captain Rand »

goremaniac wrote: 21 Feb 2021 07:12 ......Only companies with common parent companies can share infrastructure.
No thank you.

Pete.
There's nothing like a deadline to hone the concentration.

Good manners cost nothing, but earn respect.

" 'Impossible' is not in our vocabulary." Jack Chrichton, Farscape
User avatar
Gwyd
Chief Executive
Chief Executive
Posts: 713
Joined: 17 Apr 2017 16:52
Location: Western Ile-de-France Region

Re: Subsidiary Companies

Post by Gwyd »


odisseus wrote:
goremaniac wrote: 21 Feb 2021 07:12
luk3Z wrote: 21 Feb 2021 17:03 In my opinion:
First OTTD should stop the madness of very long railways through the whole of the map (this is stupid after so many years of playing & watching it).
And I know how to do that (simple cargo profit.grf):

Image
I don't see how levelling the cargo payment rates would discourage long transport routes. On the contrary, your graph seems to suggest that the profit from a single shipment grows linearly with the distance, no matter how much time it takes.
I agree, I don't think that punishes players for making longer routes. Additionally, I see no reason to punish them for it. Using NewGRFs you can make it much harder for players to build long routes (fast cargo aging, low top speed, high build costs etc), so I think that should be satisfactory.
Baldy's Boss
Tycoon
Tycoon
Posts: 1357
Joined: 23 Feb 2014 22:02

Re: Subsidiary Companies

Post by Baldy's Boss »

What bothers me is that in the existing system you can buy 75% of another company and have absolutely no control over it....while if you go to 100% it gets completely submerged.
There should be ways of having partial control/partial independence reflected.
Post Reply

Return to “OpenTTD Development”

Who is online

Users browsing this forum: Bing [Bot] and 16 guests