Skip to main content
Topic: First cl**** - practical solution (Read 20740 times) previous topic - next topic

First cl**** - practical solution

Been thinking for a while how to have several cl****es in simutrans, without breaking anything. See what you think.

Standard coach, x seats, y maint cost produces z revenue per km
First cl**** coach has fewer seats, but needs a higher revenue per km so drop the maint cost. The penalty for this is the lower number of seats. Hence a need for a longer train to move the same number of people.

Thus if you have a station say four tiles long you could have a loco and seven standard coaches for max capacity. But on that loco be five coach long distance train you could now have a pair of first cl**** coaches

This also allows catering vehicles, composites etc to be added. You can set the number of seats and the maint cost, hence the cost per seat per mile. So the revenue from these vehicles per p****enger is slightly higher at the cost of reduced capacity.

This needs NO changes to the game, just to the pak files and maybe graphics.

While it seems a fiddle to just use first cl**** coaches to get more money, you end up having larger stations so in reality a mixture is better

Thoughts?

Re: First cl**** - practical solution

Reply #1
Actually some of the carriages in the British Rail addon from PakBritain already use this principle - http://archive.forum.simutrans.com/topic/01983.0/index.html, although I'm not sure any of them are explicitly "first cl****" there are definitely a dining car in there (e.g. LNER Coronation rolling stock).


Re: First cl**** - practical solution

Reply #2
(Previous discussion about first cl**** happened here.)

Trains in my game worls look more boring than necessary, because I usually choose the fastest p****enger waggon with acceptable capacity/cost ratio. First-cl**** waggons, train restaurants, luggage cars (<>mail cars) and others would change that to some extent. (Constraints for certain train types already force me to build more interesting trains.)

The introduction of vehicle cl****es without major changes (and without the need for more computation resources due to storing more information) is preferable to some other proposals. Still, the program/engine could help a little here.

Let's say: the pak designer declares that a vehicle has x% of its capacity dedicated to the first cl**** (additional .dat parameter). The p****engers in that cl**** give result in a higher revenue, but also need more space (proportionally). The program ensures that only a certain percentage of the people in the whole convoy travel in the first cl**** (maybe 20% on long distance connections, none on short ones).

This approach is, however, not usable for vehicles that provide first cl**** only, e.g. taxi service, certain airplanes, helicopters (might be introduced in the future).

Re: First cl**** - practical solution

Reply #3
we having the game engine support the idea of 'first cl****' for both p****engers and goods would be ideal (e.g. they will only travel in 'first cl**** vehicles' and maybe require total journey time less than 'x' and with a lower maximum number of changes - i.e. worth more but more trouble to deal with) I'm trying to avoid changing the game engine for something basic. i.e to justify adding different types of coaches, specifically 'first cl****', 'composite' and catering vehicles all of which would generate higher revenue per seat, but with fewer seats. without requiring the game engine to actually care that the p****engers are different.

the parameter in the dat file isn't actually needed this way, you just frig the maintenance cost so the overall effect on revenue is the same. the downsides are as follows:

1, possible balance issue for shorter trains being all first cl**** if the stations are already present
2, unused/empty trains are less of a penalty

both of which can be offset to a degree by making the higher cl**** vehicles more expensive to buy initially. so you buy them where they will be needed, the goal being that after maybe 6 months the difference is paid off by the higher revenue if the utilisation is high enough. low utilisation and they never really make any extra cash.

the issue tends to be kitchen cars that historically had very few p****engers (if any) but this can be handled by having a required seating vehicle adjacent and splitting the differences so to speak.

note this idea only came about while thinking about articulated coaches, specifically the LNER kitchen triple and how it could be included (since one vehicle has no seats).

btw will be moving this year, at which point I will be on a 3G access thing, so still able to play just maybe not as able to host. I will however finally get a sodding desk and dig my mouse out & start actually making paks once more.

 

Re: First cl**** - practical solution

Reply #4
This also allows catering vehicles, composites etc to be added.

Would there be some way you could make a catering factory chain and then the end of the chain being a Terminal/buffet coach. Determined on the number of p****engers in the train, determines on the amount of food/drink sold. This could also be done for Airports and Docks. With the wait time featurem you could make the vehicle wait for a delivery, if you know roughly how long it takes to get to the Stop etc.

Re: First cl**** - practical solution

Reply #5
Catering would be fairly easy to add: just check for all journeys of longer than X tiles, if p****engers travel in a convoy containing a vehicle marked as having catering, p****enger revenues for that trip to be Y% higher.
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.

Re: First cl**** - practical solution

Reply #6
That bit would, but could there be a possiblity about making it into a factory chain aswell, where you have to delver goods to the station for the vehicle to pick up?

Re: First cl**** - practical solution

Reply #7
Hmm, that would seem inconsistent with the rest of the way in which Simutrans works: i.e., one does not, for example, need to have a coal factory chain set up to be able to run steam locomotives. Or am I misunderstanding you...?
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.

Re: First cl**** - practical solution

Reply #8
pak128.japan uses instead mail first cl**** p****engers ...

Re: First cl**** - practical solution

Reply #9
Here's a screenshot of the restaurant car from the LNER coronation set (part of an articulated triple) which Kieron drew for PakBritain.  The restaurant car is the one with no windows towards the back.  It has no p****enger payload in the game, and minimal maintenance.  The other cars obviously do have p****enger capacity.  At the minute it's no more than eye candy.

It would be nice if there was a "first cl****" designation which increased revenues for that coach by x% or a restaurant car could increase revenues by x% too (so more worthwhile on long, busy trains).

[attachment deleted by admin]

Re: First cl**** - practical solution

Reply #10
Hmm, that would seem inconsistent with the rest of the way in which Simutrans works: i.e., one does not, for example, need to have a coal factory chain set up to be able to run steam locomotives. Or am I misunderstanding you...?

Yeah that sort of thing, but with catering goods.

Re: First cl**** - practical solution

Reply #11
pak128.japan uses instead mail first cl**** p****engers ...
wow, thats a pretty good idea - in fact all city buildings already produce mail aka first cl**** p****engers (the factories create less, while the commercial buildings produce a higher amount - fits as well). The pak creators can just change the name of the good and its revenue - thats it!
This will allow mixed waggons (say 60 seats p****engers and 20 seats first-cl****) as well as first cl**** only waggons.

Only problem: this has to be done for the whole pak - or is there any easy way to introduce a new good like mail?

Re: First cl**** - practical solution

Reply #12
Here's a screenshot of the restaurant car from the LNER coronation set (part of an articulated triple) which Kieron drew for PakBritain.  The restaurant car is the one with no windows towards the back.  It has no p****enger payload in the game, and minimal maintenance.  The other cars obviously do have p****enger capacity.  At the minute it's no more than eye candy.

It would be nice if there was a "first cl****" designation which increased revenues for that coach by x% or a restaurant car could increase revenues by x% too (so more worthwhile on long, busy trains).

Is first cl**** also available for older trains?

Re: First cl**** - practical solution

Reply #13
This will allow mixed waggons (say 60 seats p****engers and 20 seats first-cl****) as well as first cl**** only waggons.

Are you sure about this? I've never tried and right now I don't remember any vehicle doing that...
  
***** PAK128 Dev Team - semi-retired*****

Re: First cl**** - practical solution

Reply #14
no i'm not :S
now you say it - i haven't seen one yet either ....

i'm even pretty sure it's not possible ... **** :-[

Re: First cl**** - practical solution

Reply #15
About multiple cargoes... Hendrik Siegeln mentioned it ages ago as a possibility for planes, around the time he introduced them. That was the first and only time I remember, when an actual programmer said something about it. The rest is our fantasy.

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

Re: First cl**** - practical solution

Reply #16
Is first cl**** also available for older trains?

It's not really first cl**** - it's all just p****engers and there is no distinction in the game.  But yes there are "first" and "third" cl**** carriages for the 1830 rocket train in PakBritain too... (difference is capacity and speed of the carriages).

Re: First cl**** - practical solution

Reply #17
Love the coronation rake, been thinking of adding the real model of that to my loft lot, bit it works out about ten foot long :-o

Not sure if there was a triple in it, thought it was four twins and the obs car. Not that it matters, there was a triple in the flyingscotsman rake. Along with a hairdressing car ????

The first cl**** "mail" idea is interesti g but screws using mail as mail at the same time.

If the idea of a catering car boosting revenue on long journeys goes in most of this idea isn't needed since it will have a real effect anyway. May I suggest journeys over a different lenght get a bonus with sleeper cars?

As for it being a factory chain, not sure if player objects can be consumers, if they are mobile consumers would be a. Nightmare of course a station based catering centre is possible, as are a few station concessions, taking space but raising cash.

The idea here was to keep it simple, while providing for graphics that could be used for a later expansion

:-)

Re: First cl**** - practical solution

Reply #18
Sleeper cars are harder, since it is the journey time that counts, which is not measured anywhere in Simutrans. One could, of course, use the suggested catering system and produce graphics of a sleeper car, and call it a sleeper car and be done with it (since sleeper cars always have catering in any case). One could also set a "catering level", to distinguish between a trolley service, a mini-buffet, cooked meals at seats, and a full Pullman-type service: perhaps, 0 for no catering up to 4 for the highest level of catering, each attracting different levels of revenue enhancement, but each requiring the journey to be longer to have effect? Catering could also work for road vehicles, ships and aircraft in the same way.

Edit: One problem with catering cars, however, is that the revenue increase depends on the length of the journey, which, in turn, depends on the speed: an at-table meal service might have been profitable on a 100 mile railway trip in 1920, therefore, but nothing more than a trolley service justified on the same trip in 1990. What might work is this: instead of defining a length in number of tiles required before the catering bonus takes effect, define a notional journey time, taken by dividing the number of tiles (representing kilometres) with the speed bonus speed (in kilometres per hour). There could then be defined in simuconf.tab some standard catering bonus levels (level 1, 1 hour; level 2, 2 hours; level 3, 3 hours; level 4, 4 hours, for example). Any journey above the length at which it would take that time at the speed bonus speed attracts the lowest of: (1) the highest catering level of any vehicle in the convoy; and (2) the maximum catering level of the journey length. The maximum level could be smoothly phased, such that, for example, with a catering level of 2 or higher, a notional journey time of between 1 and 2 hours would attract the level 1 bonus, plus a proportion of the difference between the level 1 and level 2 bonus.
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.

Re: First cl**** - practical solution

Reply #19
I'm going to look into something like this and see if there is someway of doing it.

Re: First cl**** - practical solution

Reply #20
Stubbsy,

are you still wanting to code catering yourself? I have added the facility for a "catering level" variable to be read from the vehicle's ****et file with this patch, but have not yet coded the simulation for it yet. Did you want to do that yourself? If you did, let me know, and I will tell you how to get at the data to use it in your patch :-)
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.

Re: First cl**** - practical solution

Reply #21
If we could ****ign two different speed for each vehicle, (APS)one for actual physical speed and one for (SBS)"speed bonus" speed, we will have more capacity to express economic behavior of vehicles.

LOCO

    SBS<APS   High Hazard: Steam            (Initial Installment)
    SBS~=APS  Medium Hazard : diesel-electric       (Later Installment)
    SBS>APS   Low Hazard : electric          (Better Profit/train & High Electrification Cost/Maintenance)


P****ENGER CAR

profit low:    SBS<APS   Poor Habitability:Commuter          (Lower Initial cost, Low profit, High Capacity)
                  SBS~=APS  FAIR Habitability:Second Cl****
profit high:   SBS>APS   Good Habitability:First Cl****         (High Initial cost, high profit, Lower Capacity)

---------------edit
oops sorry. this was about practical solution.
+ if we could modify easily the types of cargo buildings generate like more than 3, we could have
   commuter, mail, p****enger, first cl**** p****enger and even sleeper and high cl**** sleeper p****enger....

Re: First cl**** - practical solution

Reply #22
If we could ****ign two different speed for each vehicle, (APS)one for actual physical speed and one for (SBS)"speed bonus" speed, we will have more capacity to express economic behavior of vehicles.
Prissi said once, that speed bonus is rather something like 'comfort bonus', because it does not take the actual speed into account.
Having a different value for 'comfort bonus' wouldn't be to hard to code (although maybe a lot of work) I think, but the pak's would have to be rebalanced to achieve the desired effect - and thats a *lot* of work ...

Re: First cl**** - practical solution

Reply #23
I guess we can leave (at least for pak64, I don't touch pak128), existing loco and cars as they are.

Cars with same or equivalent "Physical Max Speed" and "Comfort rating Speed" can be considered as
default "do all job" type versatile cars.
For example, take 1924 appearing p****enger car with max of 160km/h and 90 p****engers.

[Short distance]
Lets make down grade version of same car for local service purpose with less comfortable seats and more
standing space (like 135capacity perhaps?). They can have slightly different graphic from original(with more doors).
It will still have 160km/h max (or less, by design) speed but can transport more p****enger since it has more standing space.
But with price of obviously lower "Comfort rating Speed"(like around 120km/h).

Advantage of using lower cl**** car will be...
Since there is less local p****enger than longer distance ones,
one will need lesser number of these cars (they also has more capacity) and thus weaker locomotives which means savings.
Furthermore, one will be able to save with shorter stations for small town/cities.(less maintenance)
Point is that "Comfort rating Speed" is lower than actual max. speed.

[Longer distance]
On the other hand, there will be upper cl**** car with more comfy chairs and services. They will have
little bit more chic looks. This one will have "Comfort rating Speed" higher than actual max. speed.
They could be considered first cl**** cars to be mixed to express train or limited express wagons.
For example, it could be 60capacity with "200km/h comfort rating speed".

They will add more graphical variety to the game thus more fun to look and staring at them.
It will give more play variety or choice to express more players attention to his company.
More p****enger price is tightly balanced, more need to optimize p****enger cars.

Re: First cl**** - practical solution

Reply #24
Surely the simplest way of doing these sort of things would be to have an extra line in the dat file for a revenue multiplier.

revenue_multiplier = 1 - current behaviour
revenue_multiplier = 2 - double income from p****engers (or even goods if you really wanted!) in this vehicle

The idea is it would work like this - first cl**** carriages have a high revenue multiplier, so more revenue per p****enger (more comfort = higher fares).  They would also have higher running costs (more comfort = more costly to maintain).  This would make first cl**** profitable only on fuller trains.

The advantages of doing things this way are:
1) no need to create a separate p****enger category
2) first cl**** bonus would only apply to the leg of the journey with the first cl**** carriages
3) very simple to add to game - no need for intensive programming changes - just a simple multiplier in the revenue calculation

How about it?

Re: First cl**** - practical solution

Reply #25
My 2c:

Revenue multipliers are useless, as you can already do the same by lowering running costs.

Comfort bonus is already represented by speed bonus - faster pays more.

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

Re: First cl**** - practical solution

Reply #26
My 2c:

Revenue multipliers are useless, as you can already do the same by lowering running costs.

Not so - vehicle costs, by definition, apply per vehicle.  The revenue multiplier would apply per p****enger - only making such carriages worthwhile on busier routes...

Re: First cl**** - practical solution

Reply #27
Uhm... You get more, because the revenue increased, or you get more, because you pay less for the vehicle. In the end, where is the difference?

EDIT: % loaded of course affects this, but it's the same effect. Speed -> cl****, then you simply adjust rc's to match the loading you intend for the vehicle.

My projects... Tools for messing with Simutrans graphics. Graphic archive - templates and some other stuff for painters. Development logs for most recent information on what is going on. And of course pak128!

Re: First cl**** - practical solution

Reply #28
The Double Speed parameter initially I intentioned was to express the "hazardness" of steam locomotive.
Its max.speed from its power should only express its physical speed and not its service quality. Speed is not the only virtue. By separating actual speed and service quality factor, pak designer would have easier time to differentiate electric power locomotive and diesel or steam locomotive.

Other than speed, there is
Locomotive-Quality from less noise, better acceleration, smoother deceleration, no fume
P****enger-Quality from habitability and other services.

for simple example, ****ume all three steam diesel and electric loco shares same physical max speed.
Then we can make electric service quality speed highest, next diesel and last steam.

Either locomotive or p****enger car, this is mainly aimed to be able to give vehicles attribute more easily and ituitively
 by separating two different factors, actual speed and comfort rating.
(Altering running cost make it possible some how but from intuitive sense, it gives hard time for designer)
Plus we will have more room to express different design.
I want the possibilities to express local p****enger car which can run at 160km/h and customers charged at
120km/h fee.

conclusion: This makes vehicle parameter attribution more intuitive for designer and easier for players to compare.
                And more room for expression.

Think Max.Speed as on map physical vehicles performance and
        Service/comfort Speed(rating) as quality/habitability index including physical speed factor.
        And as time progresses, only current Service/comfort Speed(rating) demand/requirement goes up as we have now.

Re: First cl**** - practical solution

Reply #29
One idea: Currently, local and long distance connections can only be distinguished by setting an appropriate maximum speed for vehicles, but p****engers will use either of them anyway, if capacity allows. As the next transfer stop of p****engers is known, it could be used - together with vehicle speed and a possibly separate comfort rating - to decide whether, or rather, how many of the waiting p****engers will use the convoy, even though it may be a horrible ride (takes much longer than an express connection, and they might have to stand the whole time), depending also on the filling level of the convoy (seats available vs. standing space only). So, some percentage may choose to avoid the next convoy, even if it isn't full, and try a later one. The waiting people will still choose to travel even with local transport after some time, but the effect would be lowered utilization of slow trains (compared to reference speed for speed bonus) that are used for long distance connections.

BTW: I think that in reality, local transport yields more revenue per kilometer (and person) than long distance travelling, even though it is less comfortable.

Re: First cl**** - practical solution

Reply #30
The first cl****/catering discussion is a little separate from the speed bonus issue. I did suggest a "p****enger comfort rating" a long time ago (it is more intuitive, after all, than the speed bonus), but the suggestion did not go down well at the time. That is why I came up with this patch to modify the effect of the speed bonus for local transport. Whilst it does not do away with the confusing speed bonus, it does at least have the advantage that it does not require entire paksets to be rewritten to add a p****enger comfort rating.
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.