News:

Simutrans Wiki Manual
The official on-line manual for Simutrans. Read and contribute.

Factory Ownership & Profits.

Started by mad_genius, April 19, 2012, 03:12:40 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

mad_genius

This idea probably moves a bit away from the "manage a transportation company" concept of Simutrans but I'll post it anyway just so we can discuss it. This will be a long post so take a deep breath.  ;)

First let me clarify some notation I use in this post for you to better understand it:
extractor - factory that produces a raw material without consuming anything (a tree plantation is a "wood extractor"  :o ;D );
factory - factory that consumes something in order to produce something (a steel mill for example);
shop - factory that receives end products to consume them (a supermarket or diary for example);
building - represents any extractor, factory or shop that participate in one or more production chains;
producer - extractors and factories;
consumer - factories and shops;
cargo - any transportable entity in the game (passengers, mail, goods and electricity).

This idea came to me as I was reading the topic about Modular Buildings and noticed the suggestion of the player being able to create his/her own buildings.

What if the player could create his/her own factories/shops or purchase existing ones on the map to further expand his/her company's activity and revenue?
Let me give you a more formal/matemathical description of this concept.

Transportation Profits:
Right now, when you link a producer and a consumer and start transporting the respective cargo (PAX, mail, goods, electricity) you simply receive revenue and the end of that cargo's journey (or while stopping in intermediate stations, at least in case o PAX).
It seems "unrealistic" (we all know that abstractions are part of any game, but I couldn't find a better word to use) not having to buy your cargo (in case of goods) from the producer (extractor/factory not belonging to your company) in order to transporting it to it's consumer. We may abstract from this and simply say that things function based on contracts (the links between buildings) and your company is part of the contract so, when you deliver the cargo, the consumer pays you for your work on delivering the cargo and it pays the producer to "buy" the cargo it consumes.
What I propose is a concept where you (the transportation company) "buy" the cargo at the producer's station/transformer (when your vehicle/powerline loads them) and "sell" that cargo at the consumer's station/transformer (when your vehicle/powerline unloads them). The difference between the buying ans selling of the cargo is your journey's revenue.
Now you're probably thinking "That doesn't add anything new to the game except more complex stuff to do and probably a reduction in performance", since to do this we need:

       
  • to define not only a selling_price but also a buying_price for each cargo type in each pakset (PAX and mail would have a buying_price of zero since you don't "buy" passengers  ;D );
  • which means more work on testing/balancing the economy in each pakset;
  • to change the way we send vehicles to a depot since sending a vehicle with some load to a depot would mean you bought the cargo but didn't sold it.
Sending a vehicle to a depot could follow this rules:

       
  • if you send an empty vehicle to a depot it follows your instructions immediately;
  • if the vehicle isn't empty it continues to follow it's schedule until it goes empty (with the restriction of not loading anything more). After it's empty it goes to the depot as you ordered.


Building Ownership:

What this change to the transportation mechanics would allow is for the player to build or buy extractors/factories/shops to expand his/her profits.
Let me clarify this with some rules:

       
  • building or buying would cost a high amount of money in order to prevent the players from abusing/spamming this feature (at least in the early and mid games, since late game spamming is probably inevitable);
  • if you buy/build an building you pay a monthly amount of money that represents the operational costs and salaries of that building;
  • the monthly cost of owning an extractor/factory/shop should be lower than the cost of buying a certain amount of the goods but also higher than buying 1 unit of those goods. This would require more balancing work but it would require the player to analyse if it's worth it to build/buy the building. This could be followed by the creation of some graphs accessible from the station information window to show the amount of cargo transported (last year, last month and currently) per each cargo type. If you're only running 4 or 5 milk trucks from a cattle farm to a diary, probably it's not worth it to buy the cattle farm;
  • if you own a producer from which you transport cargo, you don't pay the buying_price since you don't need to buy your own goods in order to load them in the vehicle;
  • if you own a producer from which another company transports cargo, you receive the money that company pays to load their vehicle;
  • if you own a consumer to which you deliver the cargo, you don't receive the selling_price from unloading your own vehicle;
  • if you own a consumer to which another company delivers the cargo, you pay the money that you need in order to unload the vehicle into your consumer's storage;
  • if you own a shop, you receive revenue from consuming the goods at the specified consumption rate (this would represent the selling of finished products to people in a diary, supermarket, etc.). If the consumption rate increases (by delivering PAX, mail or electricity) the rate at which you receive revenue also increases;
  • the player should not be able to build/buy city attractions/monuments and city buildings(apartments, houses, etc.) since you don't receive money from "selling" passengers or mail to stations.
:exclaim: The power station is a peculiar building since it behaves like a factory, in the sense that it uses coal/oil to produce electricity, and it behaves like a shop at the same time, in the sense that it keeps consuming the coal/oil indefinitely even if the electricity isn't distributed anywhere. Owning a power station means that you buy the coal/oil and sell the electricity. That means that if you own a power station that has no transformer connecting it anywhere you are constantly buying coal/oil, since it never stops consuming it, without selling anything. Besides this, the price of electricity could be defined by megaWatt (I believe it's that way already) which means that you may have a powerline transporting electricity but maybe its not transporting enough megaWatts to give you enough revenue.

Besides the changes in the game engine to implement this concept, paksets would have to suffer the following changes.
Each cargo type would have this parameters:

       
  • buying price - unitary cost of buy from a building (PAX and mail should have zero);
  • selling price - unitary cost of selling to a building (must be higher than buying price);
  • costumer price - unitary cost of selling in a shop (must be higher than selling price);
  • speed bonus - the speed bonus that we currently have in Simutrans (electricity has zero speed bonus since transportation is instantaneous).
Each building would have this additional parameters:

       
  • building cost - amount of money required to build this building. Could be dynamic based on the concept of Modular Buildings;
  • purchasing cost - amount of money required to buy this building;
  • monthly cost - monthly expenses from salaries and operational costs;
  • owner - the company that owns the building (building starts with no owner at map creation). The building could change its colors to reflect the colors of the company like it happens for vehicles.
In terms of strategy and game balancing this could provide some interesting decision making.
In general:

       
  • check that an extractor has a certain amount of cargo loaded per month that justifies buying/building it and paying the monthly costs (is the average monthly revenue, gained from selling the raw materials, higher than the monthly cost?);
  • check that a diary has it's milk storage enough saturated that it justifies owning it (thus paying the monthly cost) and getting the revenue from selling the milk to the city inhabitants;
  • can I transport passengers to my overcrowded diary to increase it's consumption rating thus increasing it's revenue?
  • do I have enough money to purchase an entire [tree plantation]-->[sawmill]-->[material wholesaler] chain in order to maximize my profits along the lines?
On a network game:

       
  • should I build another line or should I save some money to try and buy that factory that's being used by other player's stations?
  • should I accept the proposal from that player to buy my coal mine and use the money to invest in something else that I think will be more profitable? Or should I decline and keep the mine?
  • I'm transporting coal to a power station, but now another player has bought the coal mine. Should I destroy my line to try and force him to sell me the coal mine (or even go bankrupt on the monthly costs)? What if he/she gains enough money from other lines/businesses and builds his/her own line to transport the coal? Should I take that risk?
  • I'm planning on building a powerline from that oil power station to that group of buildings that will consume a lot of MW. Should I buy the power station right now to avoid someone getting it first? Or should I build the powerline first, and take the risk of someone guessing my intention to buy it, because I don't want to pay the monthly costs during those first months of ownership until I get the powerline running?
I'm guessing that this would involve a lot of work since it means implementing the core mechanics in the game engine and adapting existing paksets.
It may be something more suited to be tried in Simutrans Experimental.
Besides that it takes Simutrans from a pure "manage a transportation company" into a "manage a transportation and building ownership corporation" game which may not be what the community wants for the game.
I just decided to share the idea in order to be discussed by everyone. It may be worth to implement it or it may be just to much.
What do you think?

isidoro

The model you are proposing is, in part, that of Railroad Tycoon 3:
http://www.tycoon-games-review.com/Railroad-tycoon-3.html

In the second figure of the web page I have linked, you can see a map colored with red/yellow/green, depending on the offer/demand of a certain product in the map.  Your company gets huge profits if you can transport products from places with a high offer (low price) to places with a high demand (high price).

I think that in that game you can also buy industries and participate in the profits.

This is more or less a model of a free market economy.  In ST, on the other hand, the model is more of a regulated economy.  The price your transport company gets for moving 100kg of steel 1 km at 60 kmph is such and such...  fixed and the same.  The player cannot change that even in competition, he cannot make discounts to get more share of the market of transportation.

Previous attempts to introduce more economical aspects aside from direct transportation have not been considered suitable for Simutrans, even though some of them are indirectly included (for instance, in the triggers that activate city or industry growth).

With the advent of network games and a more clear competition, some aspects of free market would be more suitable, imho.  But I don't think that a market of products, not even vehicles themselves, nor shares, will ever be implemented.


Roland Deepson

#2
I really find this idea intriguing.  I disclaim that I say this with only the faintest appreciation for the codewriting that, you're correct, would obviously be involved.

One potential issue, however, is that if the carrier "buys" the freight, why can it not deliver it to any appropriate facility?  i.e., why should I bring this coal to "that" contracted power plant, when there's another one at a more advantageous location in consideration of my other game goals?

Cross-docks (intermediate delivery / pickup locations) pose another issue.  Storage space.  Allow other lines to cross-dock at your facility?  Hell, owning stations at all.

Pax stops -- selling advertising to increase consumptive revenue?  Receiving ad revenues on your own buses?  Paying to advertise on another's vehicles?  We've all seen advertisements on the inside or the outside of a bus, or a bus stop awning, or tickering across an electronic billboard at an airport.

I'm a detail oriented player who has some professional experience with some of these aspects in real life, so I find them very intriguing for the sake of the simulation.  Not only this, but the learning curve of this game is massively steep already, and the metaplay of online games is in its infancy.  To contemplate steepening this curve by yet another order of magnitude with these or other (really intriguing) ideas... well, I'd be willing to collaborate on a series of tutorial scenario walkthroughs even at the current state.

Aside -- I'd like to see more development into server customization options for multiplay.  Admins can set rule options, such as zone exclusivity (I've seen posts by moblet that seem very fun on their face) or cooperative / competitive options, etc.

Roads

#3
I am almost always in favor of having more things to do in a game.  After all, variety is "the spice of life."  Also I very much like the idea of deciding what factory to build and where, it is exactly what I do in my games with Public Service.  If you have never done it and you stay away from the obvious easy stuff like coal to a power plant and a train to transport it, remaining solvent in the early game is not as easy as it would appear.  I did, in fact, go bankrupt the first couple times I tried it.  One caveat is that I begin the game with cities no bigger than 600 pop.

However, this sounds like it would be a huge undertaking including the problem of eventually having too much money which undoubtedly would pale in comparison to the coding it would take and bugs it would cause trying to get everything to work.

That said, I would support this general idea but not at the expense of things that would be less difficult to implement.

Roland Deepson

Quote from: Roads on April 19, 2012, 03:57:22 PM
That said, I would support this general idea but not at the expense of things that would be less difficult to implement.

Well said, sir.

mad_genius

Quote from: isidoro on April 19, 2012, 03:43:09 PM
The model you are proposing is, in part, that of Railroad Tycoon 3:
http://www.tycoon-games-review.com/Railroad-tycoon-3.html

This is more or less a model of a free market economy.  In ST, on the other hand, the model is more of a regulated economy.  The price your transport company gets for moving 100kg of steel 1 km at 60 kmph is such and such...  fixed and the same.  The player cannot change that even in competition, he cannot make discounts to get more share of the market of transportation.

Don't get me wrong. I liked the games from the Railroad Tycoon Series but I do not mean to suggest that Simutrans should be a clone of those games.
When I said that each good would have a selling price I didn't mean to say that you can change that price once you own the factory. The price would be fixed in the pakset configuration file like the speed bonus and other parameters.
Building ownership would just mean that you receive the money from selling goods to a station instead of the public player.
It isn't my point to implement a free market economy with stock shares and all that. That's way overkill for Simutrans.

The feature of buying a selling products at stations is just a way to deal with the economic challenges posed by the issue of industry ownership. Although it can be implemented without having any sort of building ownership.
That also means that the implementation of these features can be incremental since you can have the buying and selling at stations and keep all the buildings belonging to the public player, as long as everything remains balanced.
For example, imagine that by transporting 100 tons of coal from point A to point B you receive 100$, which means coal base price is 1$/ton. If you implement the buying a selling system and set the buying price to 1$/ton and the selling price to 2$/ton you basically have the same 1$/ton profit by transporting it from a to B. (I'm not considering the speed bonus and distance from A to B for the sake of simplifying the example).
The only difference is that now, when you build a line, you need to spare some money in order to be able to buy goods to load at your station (unless you want to go into the red).

The issue of cross-docks posted by DatDamnDom is interesting and requires further design and discussion. Although I think that dealing with advertisements is unnecessary and way to deep for Simutrans imho (but the idea is interesting nonetheless).

But I agree with you about this not being a top priority. There are other things to implement that aren't this work intensive.
I'm not expecting this to be placed as the top priority. It may even not be implemented at all.
I just posted to open the idea to discussion instead of keep it to myself.

Roland Deepson

Quote from: mad_genius on April 19, 2012, 06:45:06 PM
The issue of cross-docks posted by DatDamnDom is interesting and requires further design and discussion. Although I think that dealing with advertisements is unnecessary and way to deep for Simutrans imho (but the idea is interesting nonetheless).

I agree that this would be beyond the scope of the game.  I did not intend to suggest otherwise, beyond furthering the hypothetical discussion.

ӔO

#7
just FYI, but it is possible to build industries as a player in some paksets.
If you open up the keyboard shortcut help, there may be a hotkey for building industries.

The only catch is, you can't link them. For that, you need to switch to public player.


Personally, I think it would be nice to be able to build some industry chains as a player. Things like department stores are often built right next to a major station owned by private companies so that they can boost each other's revenue. Concrete factories sometimes own their fleet of concrete and cement trucks. It's not unusual to have multiple branches for companies that do transport.
My Sketchup open project sources
various projects rolled up: http://dl.dropbox.com/u/17111233/Roll_up.rar

Colour safe chart:

isidoro

Quote from: mad_genius on April 19, 2012, 06:45:06 PM
[...]
When I said that each good would have a selling price I didn't mean to say that you can change that price once you own the factory. The price would be fixed in the pakset configuration file like the speed bonus and other parameters.
[...]
(I'm not considering the speed bonus and distance from A to B for the sake of simplifying the example).
[...]

Considering or not the distance from A to B in your example is not a minor point.

Imagine a coal mine located a A that is serving two power stations B1, 10 km apart and B2, 1000 km apart.

If the price you get buying the coal at A and selling it at B is fixed in the pakset and doesn't depend on the distance that is traveled, then you will certainly be better off transporting all coal to B1 and none to B2, since the costs are higher with the distance traveled.

If, on the other hand, cost does depend on distance and is something fixed: e.g. 4.03 c / km / ton, what is the difference with the present system?  Why the coal I buy in the same factory is more expensive if it goes to China than if it goes to a near factory?

mad_genius

Quote from: isidoro on April 19, 2012, 09:39:58 PM
Considering or not the distance from A to B in your example is not a minor point.

...

Why the coal I buy in the same factory is more expensive if it goes to China than if it goes to a near factory?

I see what you mean.
Let's imagine 2 games with the same map, timeline, etc., both with a coal mine and a coal power station that are 100 squares apart (in terms of scaling I believe 1 square = 1 km in Simutrans, right?).

Game 1: current paying system in Simutrans;

       
  • coal_price = 1$/ton/km
  • train with capacity = 200 tons of bulk goods
train gets 1$ x 200 tons x 100 kms = 20.000$ revenue for a journey with full load.

Game 2: new "Buying & Selling" system;

       
  • buying_price = 1$/ton
  • selling_price = 2$/ton/km
  • trains with capacity = 200 tons of bulk goods
train pays 1$ x 200 tons = 200$ to load 100% full.
train gets 2$ x 200 tons x 100 kms = 40.000$ revenue for a journey with full load.
journey profit is [revenue - buying load] => 40.000$ - 200$ = 39.800$ profit.

It doesn't matter how much balancing work the developers do, it's impossible to make the "Buying and Selling" system equivalent to the current "Journey Revenue" system that Simutrans has, unless you also make the buying_price dependent on distance which doesn't make sense in terms of realism (unless we just do it a assume that it's an abstraction for games purposes).


Quote from: isidoro on April 19, 2012, 09:39:58 PM
Imagine a coal mine located a A that is serving two power stations B1, 10 km apart and B2, 1000 km apart.

If the price you get buying the coal at A and selling it at B is fixed in the pakset and doesn't depend on the distance that is traveled, then you will certainly be better off transporting all coal to B1 and none to B2, since the costs are higher with the distance traveled.

While the buying price per ton would be always the same (or not if we assume the abstraction metioned above), the selling price would be also dependent on distance like it is currently. It would be price/ton/km in order to make sense.
That leaves the question about what I called the "costumer price" in the first post of the topic. If it is fixed per ton of cargo and independent from distance than there may be situations where it is lower (per ton) than the selling price and there may be situations where the distance is so short that It may be incredibly higher (per ton) than the selling price.
On the other hand, how do we make the costumer price dependent of distance?

       
  • Does the internal storage of a diary remembers that of the 20 tons of milk it has stored 15 tons came from the cattle farm at 5km and the other 5 tons came from another cattle farm at 50km?
  • Does the diary calculates the average selling price of it's storage each time it receives some milk from a station and then it dinamicaly calculates the "costumer price" based on the "average selling price" + 20% profit margin? That way we wouldn't need to define the costumer price on each pakset (although that would mean more load on the CPU).

Quote from: isidoro on April 19, 2012, 09:39:58 PM
If, on the other hand, cost does depend on distance and is something fixed: e.g. 4.03 c / km / ton, what is the difference with the present system?

Precisely, there's no difference. Everything remains the same as long as it's balanced.
What I'm trying to say isidoro is that the system of "buying and selling cargo at stations" is a system that adds nothing new (as long as it remains balanced) but it just serves as a base to implement other things on top of that system in the future.
That's why I said this could be used to incrementaly develop other things.
My concept of "Building Ownership" is just one of the possible features that could be implemented on top of the "Buying and Selling" system.


@DatDamnDom
I haven't forget about the issue of cross-docks, I'm just not fully aware of how that works in the current system since I normally play my games without AI on the map and I haven't played a network game yet.

prissi

As far as I know transportation companies never own the goods they transport. Thus for a transport company the current system is adequate.

If you want to simulate an economy, then of course you need to go via amount of available goods. If a company has no goods available, it will buy for high prices. This warrants long distance transport. The more it recieves per month the lower the price will drop. And of course if oversupplied, it will also not pay anything anymore.

For some goods (i.e. oil or also coal in some version of pak128) there is deliberately not enough factories spawned to satisfy demand. Competition would be on the transport of those scare goods, and starving factories, i.e. undersupply them.

As such, this apporach is easily possible, but would emphasis competetion and is more suited for network games (since you can ruin other companies by this).

But as for "realism" this approach is very unrealistic, as only in countries like north korea there is a central decision were what is transported.