Author Topic: Refueling and limited reach to destinct engine types  (Read 406 times)

0 Members and 1 Guest are viewing this topic.

Offline Leartin

  • Devotee
  • *
  • Posts: 990
  • PAK-DEV P192C
  • Languages: DE, EN
Refueling and limited reach to destinct engine types
« on: April 26, 2018, 09:36:26 AM »
A while ago, the question came up how to balance electric trucks and differentiate them from normal fuel-powered trucks. Besides costs, the key characteristic of electric vehicles is that they have to refuel more often, and it takes longer to do so. However, you can't simulate 'more often', and if you'd use a high loading time to simulate fuel intake, you'd create incentive to use the vehicle on very long routes where it wouldn't need to refuel often, the opposite of the especially short routes you'd normally use electric vehicles on. Hence, if you wanted to do electric trucks and actually have them be different from gas/petrol-powered trucks, you'd need some kind of refuel/reach system.
Note: I'm aware SimuEX has some kind of reach system. I don't know how it works, might be similar. This is a suggestion for Standard.

Let's start with the concept of refueling stations. Platforms and extension buildings can have tags to indicate which engine type can be refueled. For example, you could have an extension building depicting a coaling station with a water tower and the tag "enables_steam" or "refuels_steam". If any part of the station has the tag, the whole station can refuel that specific engine type. A depot also counts as refueling station for each engine type.

The reach of vehicles is set (mostly) via game settings. First, you'd have a base value for reach. If zero, the whole reach&refueling business is deactivated and everything works like it does now. Otherwise, it's the base reach. For each engine type and each waytype, there are procentual values to influence the base reach. Each vehicle may have it's own value, too. This means each vehicles reach value gets calculate by base_reach*engine_type/100*waytype/100*vehicle/100.
Why so complicated, rather than just having a reach-value for each vehicle? Why, it can't be a within the vehicle, else it would be a huge undertaking to make any pakset fit for it, and addons won't work with it. You need different values for each engine_type, since that's the whole point. You need different values by waytype, since planes and ships will go further than trucks, no matter which fuel type it is. The adjustable base reach serves to adjust the whole system to different map sizes if the user is inclined to do so. As far as I understand, the calculations would only need to be done once when you start/load the map, since they are static during gameplay.

So far, it's all just setup. Now I have an assumption about how the game works, and if that's wrong, this whole idea might fail - if I recall correctly, the game does not route each vehicle each time it goes somewhere, but instead stores routes in a matrix, so you would know how long the shortest route between two stops is without need to calculate it each time.
For a vehicle to move, it currently checks if there is a route to the next stop. With reach, there would be two changes.
First, whenever the route is changed, the vehicle would check if there is a station to refuel it in it's schedule. The first expierience a player has with that would likely be that the vehicle won't even leave the depot, of course it has to throw an understandable error (eg. "no fuel stations on route"). Note that a depot counts as refueling station for all types, so sending vehicles to the depot works even if nothing else is on the schedule.
Second, whenever a vehicle leaves a fueling station, it checks the routes to future stops on the schedule until it finds a fueling station (which might be the same station) or it runs out of reach - in the later case, it won't move and throw an error (eg. "distance to next fuel station on route too long"). Note that this will only happen when the vehicle is leaving a fueling station, on an automated route. If the vehicle has to reroute due to construction, even if that causes it to take a detour that would normally be out of reach, the vehicle won't stop. Same with manual rerouting, or when loading the game.
This behaviour might seem a bit weird, but there are reasons. You never need to keep track of the vehicles tank. Nothing to tick it down each tile, nothing to store or load in a savegame, nothing to consider when changing a route ("is there even enough fuel to reach the depot?") You never have to worry about a vehicle getting stuck in the middle of nowhere, since no fuel-related check occurs. A lot of finnicky micro-management in regards to fuel is discarded, it's all focused on actual planned routes.

How does this affect the game positively?
First of all, two mostly useless game features would become meaning. The first one is the destinction between engine_types. Currently, if you were to change the engine type of a vehicle, except for electric, nothing happens. Diesel trains don't raise steam when slowing down, and that's about the extent. Having different reach would give a strategic element on when to use which type of train. But even more so, since different types of fueling stations are required, once an elaborate steam network is buildt there is incentive to keep to steam, since switching to diesel would require new fueling stations. You might have different areas of the map with different engine types, simply because the ideal choice was different for 'historical' reasons.
The second feature that wouldn't be useless anymore: Tender. Right now, the only reason you add a tender to a locomotive in the game is because you have to. But a tender could be used to alter the reach of the convoi as a steam engine without power. Hence, it would even make sense to choose between different tender for the same locomotive, based on which distance it's supposed to go.
I'd also like to note that it's not too disruptive, either. Compared to what players are used right now, in many cases the only difference is that they have to place refueling stations somewhere, preferably at hubs used by many trains. There is an incentive to change playstyle in order to avoid too much of a cost due to refueling stations, but you could still go across the map in a horse carriage provided there are stables (=refueling stations for 'bio'-engine) in every town along the way.

I suppose the biggest plus is that you don't need to alter too much of a pakset. Even without changing any vehicle, you could still influence them by reach, and have the fueling stations for types of higher reach be more expensive, on the basis that there need to be less of them around the world. This alone would already give incentive to use one engine type over the other in specific situations, while neither becomes strictly better or worse.


What do you think?

Offline An_dz

  • Web Admin
  • Administrator
  • *
  • Posts: 2666
  • D'oh
    • by An_dz
  • Languages: pt, en, it, (de)
Re: Refueling and limited reach to destinct engine types
« Reply #1 on: May 19, 2018, 03:16:14 AM »
It's interesting and might make the game more challenging. Some points I would like to raise:

  • The logic of the company owning refuelling stations doesn't match all transport types
    Railroad companies do own their own refuelling stations, but Truck or Busses companies don't. Airports also generally don't have a station for each company, but one or more that is shared by all companies, anyway in Simutrans whole airports can be single-company.
  • Weight? An empty truck can run for thousands of kilometres with a full tank, but fully loaded it only runs some hundred.
    If a truck takes cargo from industry A to B and then from B to C and the cargo from A is heavier than from B the distance between B-C could be larger than A-B. But this requires calculations all the time for each vehicles, which is what you want to avoid with the static calculation

At first I thought that it could take a long time to calculate for all vehicles but then I realised that even with 10 000 vehicles that would only need 720 000 calculation. The data could also be shared for vehicles without specific data.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5092
  • Languages: EN, NO
Re: Refueling and limited reach to destinct engine types
« Reply #2 on: May 19, 2018, 08:15:33 AM »
I'm not sure railroad companies own their own refueling stations in the "modern" way of organizing railroads, in which trains are private and infrastructure is directly or indirectly state-owned. It might be more like how airports generally work, but it might also depend on how big the individual companies are. Over here they are generally small. The only image I've seen of a diesel train refueling operation simply involved a fuel truck, which I think was from a general fuel company.

Electric trains naturally get their fuel from the infrastructure company, but this also extends to electricity for parked equipment. (They need heating in winter at least, but probably also lighting for the cleaning crew.)

Offline Leartin

  • Devotee
  • *
  • Posts: 990
  • PAK-DEV P192C
  • Languages: DE, EN
Re: Refueling and limited reach to destinct engine types
« Reply #3 on: May 19, 2018, 08:16:27 AM »
Railroad companies do own their own refuelling stations, but Truck or Busses companies don't. Airports also generally don't have a station for each company, but one or more that is shared by all companies, anyway in Simutrans whole airports can be single-company.
Sure, but in reality, airlines don't own airports, and bus companies don't build roads. As a game, Simutrans expects the player to build the infrastructure required for their vehicles, wheras in reality, most transportation companies only have to care about their fleet. Hence it's in line with the current gameplay to have fuel stations buildt by the player.

Weight? An empty truck can run for thousands of kilometres with a full tank, but fully loaded it only runs some hundred.
If a truck takes cargo from industry A to B and then from B to C and the cargo from A is heavier than from B the distance between B-C could be larger than A-B. But this requires calculations all the time for each vehicles, which is what you want to avoid with the static calculation
The ongoing calculations wouldn't be the problem to me, but the mess it makes for the player in that the same route might sometimes be possible, but sometimes not. For example, a chemical plant in pak64 produces chemicals (300kg) and printer ink (100kg). Both is boxed goods, so both would go with the same vehicle. That vehicle might make it if it's full of printer ink, but not if it's full of chemicals. Since it does not know beforehand which goods it will load at the next station, it's virtually impossible to plan ahead to the next fuel stop. It would either have to just go to the next station if it can reach it and check from there, meaning vehicles could get stuck in any place, not just fuel stations. Or it would plan ahead with the worst case in mind, getting loaded with the heaviest good of it's type. - But that would mean the actual weight of the vehicle wouldn't matter at all, just that the balance of how far a specific convoi can go changes based on which goods exist, such that an addon including new industry with new goods could mess with a running game before any element of it actually spawns. All of which does not really seem like fun to me.

Like weight (which not only depends on what is loaded, but also how many wagon a train has - but I'd ignore that too) there are other aspects that would, realistically, affect how far a vehicle can reach. Eg. how fast does it go? How often does it need to stop and go? Does it move with or against wind? Is it cold outside? (Electrical cars don't go as far in winter, simply because you need more electricity for other stuff, like heating and headlights) - But that's all micro-management, stuff I'd expect the driver to decide on the road whether under current conditions, he should refuel now or can reach the next gas station. We are not the driver, though.
We are the nerdy guy in an office planning how vehicles should go and telling others what to do. We don't build fuel stations based on how far a vehicle can actually go under current conditions, but based on how far it goes on a really bad day if it's overloaded, there is a lot of traffic, some roadblocks due to construction etc. We assign a simple number to each vehicle as it's reach, just so we have enough margin of error, and use that for planning. Hence it's a lot more abstract, and if something happens along the way, there is an explaination for why the vehicle could go further in that situation - because it had to. It just can't be planned that way in a schedule.

Offline wlindley

  • Devotee
  • *
  • Posts: 934
    • Hacking for fun and profit since 1977
  • Languages: EN, DE
Re: Refueling and limited reach to destinct engine types
« Reply #4 on: May 19, 2018, 12:57:43 PM »
the "modern" way of organizing railroads, in which trains are private and infrastructure is directly or indirectly state-owned

Might be true of Europe, but North American railways at least still own their rights-of-way and operate their own freight trains.  Commuter trains and Amtrak are government-run.

In a return, however, to the railroad roots, Brightline opens today in Florida, as an intercity passenger train company owned and operated by the freight railroad, Florida East Coast.  (Technically Brightline is owned by FEC Industries, a holding company which also owns FEC the freight railroad: FECI and Brightline on Wikipedia) -- Which is a return to the original arrangement which Simutrans depicts.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5092
  • Languages: EN, NO
Re: Refueling and limited reach to destinct engine types
« Reply #5 on: May 19, 2018, 04:32:41 PM »
Might be true of Europe, but North American railways at least still own their rights-of-way and operate their own freight trains.

The "still" part means that it is not "modern", but "classic", or to European eyes, "ancient" or "antique".

Offline DrSuperGood

  • Dev Team
  • Devotee
  • *
  • Posts: 2234
  • Languages: EN
Re: Refueling and limited reach to destinct engine types
« Reply #6 on: May 19, 2018, 07:28:09 PM »
Should only be considered after fuel economics and range balance data is added.

Offline An_dz

  • Web Admin
  • Administrator
  • *
  • Posts: 2666
  • D'oh
    • by An_dz
  • Languages: pt, en, it, (de)
Re: Refueling and limited reach to destinct engine types
« Reply #7 on: May 19, 2018, 10:38:59 PM »
I don't see why fuel economics would be required for Leartin's idea.

Offline Isaac.Eiland-Hall us

  • Benevolent Dictator
  • Administrator
  • *
  • Posts: 3519
  • PanamaCityPC.com/support/
    • Facebook Profile
  • Languages: EN
Re: Refueling and limited reach to destinct engine types
« Reply #8 on: May 20, 2018, 03:42:44 AM »

I think there are two competing possible reasons to add or not add this. In no particular order:

1. Can it increase the simulated reality? i.e. Does it add something that actually happens? This is up for discussion since in some cases yes (trains at least at some times) and other times no (buses/trucks tend to use public fueling stations, although not always).

2. Does it make Simutrans a more interesting game?

On the latter point, certainly it could. There's always the question about increased complexity, though. I tried Simutrans Extended a couple of times, and while I loved the idea of all the signalling stuff… when it came down to it, Simutrans already has about as much complexity as I want in a game in practice. Extended was just too much for me to bother with. (But I'm happy it exists and happy that players like that - I support Extended, but found it wasn't for me. lol)

So I wonder where this would land. Setting up a new truck route - and now all of the trucks go pick up their first load and I get the error "Insufficient fuel range to next stop" or however it'd work......... I honestly don't know if that would be more fun or less fun.

I like the idea, but I don't know if it's a good idea.

Brightline opens today in Florida,

Oh hey, that's awesome. I'm actually trying to find a job in Orlando as we want/need to move there. So I might be able to take a trip on this by the time it reaches Orlando!
I don't see why fuel economics would be required

I assume it's a matter of expressed priorities, not necessity, but that's merely my assumption.

Offline Leartin

  • Devotee
  • *
  • Posts: 990
  • PAK-DEV P192C
  • Languages: DE, EN
Re: Refueling and limited reach to destinct engine types
« Reply #9 on: May 20, 2018, 06:37:34 AM »
Setting up a new truck route - and now all of the trucks go pick up their first load and I get the error "Insufficient fuel range to next stop" or however it'd work
The unsuspecting player first confronted with this feature likely didn't build any fuel stations, as they wouldn't know those are required. Hence the error would come up as soon as they try to send a vehicle out of the depot, not with a delay. If the error message in this case is clear enough, eg. not only "No fuel stations on route" but "No fuel stations on route. Make sure to have enough fuel stations of the correct type on each route. This convoi uses $fuel-type and requires a refueling station every $reach tiles."

Does it add something that actually happens? This is up for discussion since in some cases yes (trains at least at some times) and other times no (buses/trucks tend to use public fueling stations, although not always).
But the questionable reality isn't that buses and trucks require fuel, it's just who owns the fueling stations they use. If you want public fueling stations, I'm pretty sure it can be done as an AI-script, or implemented in the code, such that the same fuel stations the player could build spawn on the map. Not that I think that makes it any better, but it would best show what actually happens (compared to no fuel requirements at all)

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5092
  • Languages: EN, NO
Re: Refueling and limited reach to destinct engine types
« Reply #10 on: May 20, 2018, 08:07:37 AM »
I feel that explicit refueling would just becomes another annoying aspect highlighting the scale mismatch in Simutrans. I consider my 2048x2048 map to be of such a size (a small European country) that pretty much any vehicle would be able to get from one end to the other without refueling. Steam trains might need water, but that is not strictly speaking fuel. Since stations are very simplified in Simutrans, not representing the tracks and turntables required for turning a locomotive-hauled train around, I can just imagine the refueling stations being hidden in the same place.

Offline DrSuperGood

  • Dev Team
  • Devotee
  • *
  • Posts: 2234
  • Languages: EN
Re: Refueling and limited reach to destinct engine types
« Reply #11 on: May 20, 2018, 09:08:37 AM »
Ops, thought this was a Simutrans Extended thread. In Simutrans Extended there already is a range limit mechanic.

I do not feel that such a mechanic would help Standard as it adds complexity to the simulation and game while not particularly adding challenge or fun.

Offline Isaac.Eiland-Hall us

  • Benevolent Dictator
  • Administrator
  • *
  • Posts: 3519
  • PanamaCityPC.com/support/
    • Facebook Profile
  • Languages: EN
Re: Refueling and limited reach to destinct engine types
« Reply #12 on: May 20, 2018, 02:21:38 PM »
If you want public fueling stations, I'm pretty sure it can be done as an AI-script, or implemented in the code, such that the same fuel stations the player could build spawn on the map.

Perhaps, but one of the issues with Simutrans is the complete lack of rural structures. This is one feature that would highlight that issue.

For example, I just traveled from Panama City down to Orlando - a six hour drive. In Simutrans, I would have perhaps traveled through Tallahassee, Lake City, Gainesville, Ocala, then Orlando. Maybe a couple of other smaller cities. But I didn't gas up in any of these (except Orlando) - in both mid-trip fueling, I stopped at a gas station (or truck stop) in between major cities.

It would be awesome if there was some way to have more rural stuff in Simutrans if we were to add fueling. And fuel stations could appear in rural areas where highways crossed. Although I realize that's another huge can of worms. :)