Comments (6)
OK so this can be too long.
TLDR:
Currently, the game unbunches buses by using the "(abstract) values" obtained at 100% budget levels, which may be unoptimal due to the fluctuation of budgets. This may cause problems. When the budget is too high, excess buses get stuck near the termini and cannot depart as quickly, reducing the transport capacity of the bus line. When the budget is too low, some sections in the line will see no buses, causing fake high-demand observations and causing wrong judgements.
The solution, therefore, is to make the game unbunch using the aforementioned value adjusted for the current budget percent. This will either bunch the buses closer in high-budget situations or spread the buses further in low-budget situations, increasing the flexibility of buses overall.
from expressbusservices.
If we are changing unbunching, might as well also see whether the existing unbunching has problems.
For example, I can see a problem with the vanilla unbunching that holds vehicles too long even if the vehicle is running late; this function may contain hints on what to do with this problem:
BusAI.GetProgressStatus(ushort vehicleID, ref Vehicle data, out float current, out float max)
from expressbusservices.
#29 sounds similar, in that it deals with the high-budget case.
from expressbusservices.
Well, I mean, if #29 works, then if I modify it a bit, then the low-budget case should also be doable.
from expressbusservices.
Well, how fun it is, that with the basic comlpetion of #30, this task is completed simply by implicitly using the budget for calculation. No actual budget percentages are read or used.
This means we now have the following effects; at termini:
- When buses are too far apart (usually in high-budget cases), then this mod forces buses to depart now to fill the gap
- When buses are too close (usua in low-budget cases), then this mod uses a soft limit and forces buses to depart later to maintain the gap
The system is now flexible and somewhat self-balancing. When eg you are using Real Time, and the budget is increased to cater for rush hour, the system can now dispatch buses more frequently from termini; and vice versa for low budget situations.
from expressbusservices.
This is now on Steam. Closing.
from expressbusservices.
Related Issues (20)
- Upgrade the Service Self-Balancing: target high demand non-terminus stops HOT 3
- Agressive and Experimental mode can cause bus despawning HOT 2
- Notice on IPT2 non-intervention, and recommendation to use TLM HOT 1
- Architecture reversal: read TLM values through the TLM plugin HOT 2
- Consider: disallow repeated redeployment HOT 2
- Negotiation Rounds against Compatibility Report HOT 5
- New IPT2 detected HOT 3
- Incorrect detection of minibuses HOT 2
- Potential problem: FPS tanking HOT 5
- Recheck compatibility with More Citizen Units HOT 1
- New feature: Departure Ushering HOT 5
- New Feature: Unbuncher HOT 3
- New Feature: Continuous Boarding HOT 1
- Open question: should trams be allowed to use the "redeployment" feature? HOT 2
- New feature: Redeployment by Teleportation HOT 6
- Seeemingly incorrect percent-progress of freshly-redeployed buses HOT 2
- Can we further reduce the minimum time for termini unbunching?
- Known Issue: transport line vehicle mass-return to base
- User reports: trolleybuses using Aggressive mode throws null pointer exception
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from expressbusservices.