News:

Simutrans Forum Archive
A complete record of the old Simutrans Forum.

[Network suggestion] Money transfer between players

Started by jamespetts, December 16, 2010, 01:40:22 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

jamespetts

One very simple and basic feature that could substantially enhance the ability of different players to co-operate with each other in a multiplayer environment (and also allow a far greater and more interesting variety of relationships between players) would be to allow players to transfer money to other players. The best interface for this I am not yet entirely sure (perhaps a button in the putative recipient company's finance window?), but probably the best thing would be to allow three types of transfer: (1) one-off; (2) a fixed recurring monthly sum; and (3) a fixed recurring annual sum.

In combination with the running powers feature that I suggested a few minutes ago, for example, this feature could be used to allow two players to co-operate and share the cost of building a new roadway or railway line by a lump-sum payment, share its use, and then share the cost of maintaining it by a regular monthly payment.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.


jonasbb

I think we do not need a annual sum. You can do this with the montly sum.

I want to have a little info how much I have paid or recieved to/from this player. So you can controll this better.

prissi

Denied for standard. Simutrans is a transport simulation. Please do transport here. (About higher running costs on other player ways; that is certainly discuaasable.)

ras52

I'm concerned that this would be hard to use effectively, and perhaps there are better ways of achieving the desired effect.

The two main situations I imagine this being used is (i) to share the cost of jointly constructing some piece of infrastructure, and (ii) to allow one player to pay to use another player's infrastructure.  I assume you envisage player A & B coming to an agreement, player B paying player A some sum of money, player A building the infrastructure and then granting player B 'running rights' over it, either in perpetuity or for some agreed period.  I can see several problems with this.  The cost of building the infrastructure isn't always clear in advance; and if it was built at the same time as other pieces of work, it's not always clear with hindsight either.  That makes it difficult to share the costs out fairly.  Similarly, it might be fairer to split costs proportionately to how much each player uses the infrastructure.

Now, in the real world (at least in British railways pre-nationalisation), these would have been handled by (i) forming joint railways and (ii) the Railway Clearing House (RCH), respectively.  I'm certain the former will not appeal to Simutrans Std., so let me discuss the RCH option first, as that seems much more in-keeping with Std.

Transporting passengers or goods generates a certain amount of revenue.  The RCH existed to split this revenue fairly between the company running the train and the companies over whose railway they went.  I can't find the actual algorithm the RCH used to calculate revenue, but I imagine Simutrans could approximate it with a fixed percentage (perhaps set in simuconf.tab) going to the train owner and the remainder being divided between the track owners in proportion to the amount of each player's track used.  There would need to be a decision as to whether to pay the public service player when a publicly owned track is used: my initial thought is that it should.  

Depending on how it was balanced, that could mean that it would be possible for one player to largely concentrate on building infrastructure as long as there were other players willing to use it.  I can see that adding an interesting new dimension to game play, though not one that everyone will wish to follow -- in the same way that currently a network game can accommodate one player playing only with buses and another only doing freight trains.

This is orthogonal to the issue of running powers (per James's other extension request thread).  Running powers govern whose vehicles can pass along which tracks; the RCH mechanism is about divvying up the profits when vehicles do run along other players' tracks.

The second possibility I mentioned was joint railways.  In the real world this worked by the two (occasionally more) involved companies setting up a jointly-controlled subsidiary company and puts a certain amount of share capital into it.  The joint company constructs the railway, the parent companies get 'running rights' over its infrastructure, the RCH pays the joint company for use of the track, and if it makes a profit, it pays back as dividends to the parent companies.  In the context of Simutrans, the joint company would be a new player.  The main new concept required is that of player ownership -- allowing one or more player to 'own' another player.  When the joint company starts playing, instead of magicking the starting capital from no-where (as normally happens), the parent companies provide it.  Either human player would be allowed to change player to play the joint company allowing either or both of them to actually do the building.  

If the RCH mechanism above were adopted, that would provide some income for the joint company which might be enough to allow it to turn a profit; if not, it would likely be loss-making.  That means you need a means to pump additional money into / extract money from the joint company.  You'd probably call them stock issues / dividends, but in practice they would just be a means of transferring money between the joint company and its owners.  In the interests of keeping the ownership model straightforward, you may choose to only allow players ownership to be divided equally amongst the owners -- thus avoiding the full complication of shares.  If so, you'd also require all owners to continue to pay money equally into the company if it's loss-making, and eventually invoke the game's usual bankruptcy code if they failed to keep doing that.  In the event that the owners disagree over something, the fact that any of them can switch user to play the joint company means that no-one has an unfair advantage.

I would be astonished if Simutrans Std. wanted to go down that route (it's very similar to something in the denied extensions list), but I wonder whether it's worth bearing in mind for future considering in Simutrans Ex.  Obviously it makes sense to wait until network mode is actually usable in Simutrans Ex. first, and were something like the RCH mechanism to be implemented, that should probably come first.
Richard Smith

jonasbb

If two players want to cooperate (one local and another big transport) then it could be good that they support each other if they need it. This would be also a situation where you can use it.
Because both players need each other, but maybe the local player doesn't make enough money. So the other one can support him.

The second thing is nearly the same James suggested in another thread. Sharing the right to use my infrastructure to other players.

jamespetts

Part of the idea of the original suggestion was to allow unlimited flexibility in the commercial arrangements between players (and I am not really sure that I understand why this should be seen as in any way contrary to Simutrans being a transport-specific simulator, since those commercial arrangements would inevitably relate to transport), so, whilst use in conjunction with running powers was one of the paradigm use cases, it is not the only possible use case, especially where the public player is involved.

For example, the public player, acting as the SimuNation's government, in order to generate revenue to construct and maintain fixed infrastructure accessible to all players, might choose to institute a system whereby it charges players for licences to run particular types of transport network, or to connect to particular towns. Alternatively, the public service player might grant subsidies to commercial players to run passenger transport to small and otherwise unprofitable villages. Both of these functions would require the ability to transfer arbitrary sums of money. They are also but two examples of the sorts of possible arrangements; a great many more can be envisaged. Whatever the conclusion, therefore, about the desirability of having an automated system for calculating revenue sharing percentages between different companies should running powers be accorded, there is a compelling reason to have a system for transferring arbitrary sums between players.

As to the question of automation of computation between different companies according running powers to other companies, this is how it works in other games such as Railroad Tycoon, but there are some difficulties with this model, principally inflexibility and complexity. It is inflexible in that it does not allow players to negotiate rate between themselves (or negotiate some other deal, such as, "if I let you use my railway lines in X, and you let me use your railway lines in Y, we won't charge each other anything at all"), and also doesn't (without additional complexity) allow, for example, the public service player to create roads that are, as in most nations, free at the point of access to all comers.

As to complexity, it would require non-trivial additional computational effort and memory to remember for each trip what proportion of that trip was completed on which company's ways and apportion the revenue from the trip amongst those various companies; those data are not gathered at all at present, so each convoy would need an array the size of the number of companies in the game which would be updated every time that every convoy traverses a tile with a pointer to the player owning the way over which that convoy has just passed, and then, at every revenue calculation stage, divide the revenue between those companies.

Worse than that, in Experimental (but not Standard), the revenue is calculated for an entire trip in one convoy, not just the last stop to stop hop, so there would be a potentially different apportionment for each individual packet of goods on each convoy by the time that the revenue computation comes to be undertaken. On an enormous game with many hundreds of convoys, this could potentially add a very significant amount of computational effort to a game that is already CPU-intensive (especially Experimental).

I suggested the money transfer system, therefore, because it would be very simple to program and would be needed for other purposes in any event.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

prissi

If two player want to play the same company, why don't they do so? You can have many players using the same company at the same time. (Ok, there might be still errors, as this feature is not to deeply tested.) BUt there is no need to occupy a two slots if just two people want to play together.

Increased running cost on foreign tracks (lets say 1/10th of the way maintenance cost or putting an additional 1/10th of the convois running cost into the account of the ofther company) are very simple programwise. They would be also fair on roads, airstrips and waterways, which are already easily shared between all players. They would also work similar to running costs in the reality, which are not caring how much you transport or your income, but what kind of consist is running for which distance (even the toll for trucks work like this).

jamespetts

I think that Richard was suggesting something rather more intricate than two players playing the same company (which is a worthwhile feature as far as it goes); the way that it worked is that there would have been two large transport companies that formed a corporate vehicle between them to run a specific joint line. That third company existed only for the purpose of the joint construction and running of a particular line, and would never have been an ordinary transport company; its shares would have been wholly owned by its two sponsor companies and would simply have been a mechanism for dividing the costs and revenues of the operation between those two companies. I don't think that such a system would be practical in Simutrans, however, as Simutrans does not have a corporate ownership model (unlike, say, Railroad Tycoon).

As to increasing running costs on foreign ways, that of itself would be very simple; but do you propose that this additional revenue be given to the owner of those foreign ways? There is a difference between cost sharing and revenue sharing, the latter of which (as described above) would indeed be considerably more complicated. The problem with cost sharing, however, is apportioning a fair amount: increasing the running costs of vehicles by a certain percentage is problematic, because it makes no sense that it costs proportionately more to run a more expensive to run vehicle on somebody else's lines than a cheap to run vehicle (especially if the more expensive one is faster, and thus creates less of a blockage on the recipient's lines). The vehicle's running costs seem an arbitrary means of determining what should be paid to third parties, especially since the running costs of vehicles are not meant to represent infrastructure cost, but only vehicle cost. Increasing running costs would thus create a conceptual muddle as to what exactly it means for something to be a running cost.

Although in principle, therefore, there is no problem with cost as opposed to revenue sharing, using running costs is an arbitrary measure likely to cause perverse incentives and confusion, and revenue sharing is the easiest way (in principle) of setting a fair amount. However, revenue sharing is, especially in Experimental, very complicated to program and is likely to be computationally intensive.
Download Simutrans-Extended.

Want to help with development? See here for things to do for coding, and here for information on how to make graphics/objects.

Follow Simutrans-Extended on Facebook.

prissi

As said before, revenue sharing is usually not there is real life. Most companies have to pay for each run on a foreign way, the price depends on length, weight and speed. (Ok the last does not apply for trucks)

Since faster vehicles have usually higher running costs (at least in standard), and with more cars also running costs increased, I though to based the cost on running costs. But as said, maybe 1/x of way maintenance per car going over it is also easily possible.

About simutrans not using economic aspects: Well, you can use Rialroad Tyccon or OpenTTD for this then. Imho copying too much stuff is not helping in making a unique experience. At least this is my feeling. (I current games, I did not saw the need for this feature anyway.)


ras52

Quote from: prissi on December 17, 2010, 02:48:06 PM
As said before, revenue sharing is usually not there is real life. Most companies have to pay for each run on a foreign way, the price depends on length, weight and speed. (Ok the last does not apply for trucks)

Revenue-sharing has been the norm for British railways for most of their history.  That's why the Railway Clearing House was established in 1842 and rapidly included virtually all British railway companies.  It continued to operate revenue-sharing until nationalisation in 1948 (except for two periods during the wars).  Since privatisation, revenue-sharing is again in operation, this time under the aegis of the Association of Train Operating Companies (ATOC).

That said, I don't have a problem in principle with a pay-per-use form of charging instead of revenue sharing.  But I do share James's concerns about the feasibility of making this work without unexpected and unrealistic consequences.

Quote from: prissi on December 17, 2010, 02:48:06 PM
About simutrans not using economic aspects: Well, you can use Rialroad Tyccon or OpenTTD for this then. Imho copying too much stuff is not helping in making a unique experience. At least this is my feeling.

OpenTTD (and, as I recall, Railroad Tycoon) have pretty sophisticated economics models.  The company's value changes continually through the game, and you can trade in the company's shares based on that value.   But as I recall, holding stock in a company (even when it's 75%) gives you no control over the company.  It's possible to play OpenTTD very profitably by solely concentrating on its stock market and never building a road or railway, never operating a ship or a train.  It wouldn't surprise me if derivatives trading has been added since I last looked.  Do I want that for Simutrans?  Absolutely not.

But OpenTTD's model of a publicly traded company (a PLC to use British terminology) isn't the only possible model.  I think the model of privately owned companies is much closer to the spirit of Simutrans.  Shares wouldn't have a specified value, and it's not necessary to even allow them to be sold at all.  (If selling were allowed, it would be by private negotiation between the players involved.  Personally I favour including that, but it's not a necessary part of the package.)  The ownership of a company could be determined at the point it joins the game and not altered afterwards.  It purely exists as as vessel to allow two people to collaborate in building a (typically expensive) piece of infrastructure that would benefit both players.

The amount of game support would be minimal.  As Prissi points out, the game already supports multiple people operating a single "company" (player in game terminology).  It's not strictly necessary for the game to know who owns a company if a means of doing arbitrary transfers exists.  (The collaborating partners could simply agree to both pay a certain amount of money to the joint company, use it to build any infrastructure, and, in the event of it generating a profit, transfer the money back to the original partners.)  The only problem is that the joint company starts would start with a start-up capital (e.g. 500,000.00¢) magicked into existence.  This is effectively free money for the collaborating partners. 

If you trust players not to cheat, including accidentally by forgetting to change the start-up capital, that loophole can be sealed by allowing players to opt to start with no initial money.  (Setting starting_money in simuconf.tab isn't good enough as real players still need to start with money.)  Otherwise you need to implement at least a minimal company ownership model (which would only need to keep track of the owners, and to allow money transfer to/from the owners) and not implement a mechanism for arbitrarily transferring money between players.  I'm inclined to the latter view.
Richard Smith

prissi

If you networks are connected, you can sent money to other player. First establish a line that ends on a stump. Then let recieving player build a depot there. Start expensive convois on this line => other player will recieve money when selling them.

(And on a side note to the railways clearing house: The sharing of price of tickets was based on milage, not income. Furthermore the company had to pay an amount based on the size of their infrastructure, so both modell seems valid.)