News:

Simutrans.com Portal
Our Simutrans site. You can find everything about Simutrans from here.

First class - practical solution

Started by leopard, January 02, 2009, 01:12:42 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

leopard

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

Standard coach, x seats, y maint cost produces z revenue per km
First class 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 class 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 passenger 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 class coaches to get more money, you end up having larger stations so in reality a mixture is better

Thoughts?
My Simutrans on the apple mac homepage http://www.aleopardstail.com/simutrans/Index.html

The Hood

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 class" there are definitely a dining car in there (e.g. LNER Coronation rolling stock).


whoami

(Previous discussion about first class happened here.)

Trains in my game worls look more boring than necessary, because I usually choose the fastest passenger waggon with acceptable capacity/cost ratio. First-class 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 classes 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 class (additional .dat parameter). The passengers in that class 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 class (maybe 20% on long distance connections, none on short ones).

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

leopard

we having the game engine support the idea of 'first class' for both passengers and goods would be ideal (e.g. they will only travel in 'first class 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 class', '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 passengers 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 class 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 class 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 passengers (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.
My Simutrans on the apple mac homepage http://www.aleopardstail.com/simutrans/Index.html

Stubbsy

Quote from: leopard on January 02, 2009, 01:12:42 PM
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 passengers 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.

jamespetts

Catering would be fairly easy to add: just check for all journeys of longer than X tiles, if passengers travel in a convoy containing a vehicle marked as having catering, passenger 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.

Stubbsy

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?

jamespetts

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.

prissi

pak128.japan uses instead mail first class passengers ...

The Hood

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 passenger payload in the game, and minimal maintenance.  The other cars obviously do have passenger capacity.  At the minute it's no more than eye candy.

It would be nice if there was a "first class" 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]

Stubbsy

Quote from: jamespetts on January 02, 2009, 08:35:09 PM
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.

robofish

Quote from: prissi on January 02, 2009, 08:42:06 PM
pak128.japan uses instead mail first class passengers ...
wow, thats a pretty good idea - in fact all city buildings already produce mail aka first class passengers (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 passengers and 20 seats first-class) as well as first class 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?

emaxectranspoorte

Quote from: The Hood on January 02, 2009, 09:38:43 PM
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 passenger payload in the game, and minimal maintenance.  The other cars obviously do have passenger capacity.  At the minute it's no more than eye candy.

It would be nice if there was a "first class" 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 class also available for older trains?

DirrrtyDirk

Quote from: robofish on January 03, 2009, 01:43:06 AM
This will allow mixed waggons (say 60 seats passengers and 20 seats first-class) as well as first class 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*****

robofish

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 ... **** :-[

VS

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!

The Hood

Quote from: emaxectranspoorte on January 03, 2009, 01:50:45 AM
Is first class also available for older trains?

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

leopard

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 class "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

:-)
My Simutrans on the apple mac homepage http://www.aleopardstail.com/simutrans/Index.html

jamespetts

#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.

Stubbsy

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

jamespetts

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 asset 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.

colonyan

#21
If we could assign 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)


PASSENGER CAR

profit low:    SBS<APS   Poor Habitability:Commuter          (Lower Initial cost, Low profit, High Capacity)
                  SBS~=APS  FAIR Habitability:Second Class
profit high:   SBS>APS   Good Habitability:First Class         (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, passenger, first class passenger and even sleeper and high class sleeper passenger....

robofish

Quote from: colonyan on January 05, 2009, 06:59:50 PM
If we could assign 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 ...

colonyan

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 passenger car with max of 160km/h and 90 passengers.

[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 passenger since it has more standing space.
But with price of obviously lower "Comfort rating Speed"(like around 120km/h).

Advantage of using lower class car will be...
Since there is less local passenger 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 class 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 class 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 passenger price is tightly balanced, more need to optimize passenger cars.

The Hood

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 passengers (or even goods if you really wanted!) in this vehicle

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

The advantages of doing things this way are:
1) no need to create a separate passenger category
2) first class bonus would only apply to the leg of the journey with the first class 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?

VS

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!

The Hood

Quote from: VS on January 06, 2009, 11:13:31 AM
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 passenger - only making such carriages worthwhile on busier routes...

VS

#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 -> class, 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!

colonyan

#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
Passenger-Quality from habitability and other services.

for simple example, assume 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 passenger 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 passenger 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.

whoami

One idea: Currently, local and long distance connections can only be distinguished by setting an appropriate maximum speed for vehicles, but passengers will use either of them anyway, if capacity allows. As the next transfer stop of passengers 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 passengers 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.

jamespetts

The first class/catering discussion is a little separate from the speed bonus issue. I did suggest a "passenger 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 passenger 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.