Hi everyone!
We felt that it was time for a new blog post to share what we are working on. We are on schedule for the 25th, which feels nice. Usually deadlines are like end bosses for game developers, because everything is always more work than you anticipated. At least for me, the first day of working on something new ends up with a bigger to-do list than it started, and I think I am not the only one like that.
Mass Edit
There is a lot of work going into editing multiple vehicles at the same time. At this point we made it work by selecting vehicles you want to edit and replacing, duplicating, or selling them. It is basic on paper, just needs new systems to manage changes in bulk. This system is mostly inspired by Transport Fever 2. Players seem to like it there, so why not have something similar.
Hub Manager
New edit options will be available in the Hub UI as well. Moreover, we added more options on how the hub manager should work. Options like controlling if the hub manager can buy roads and railroads and specific vehicles it should use. Then there is the manage funds window that has a slider for how much budget to keep when paying out and the threshold for profits before paying out.
Next, hub managers will have buttons to copy and paste settings between one another. This will remove the need for manual setup again and again. And a default button will be available if you want to have a default setup, automatically assigning the predefined settings to all new managers.
Performance
I have prepared a worst-case save file to narrow down some individual performance problems. Basically all prebuilt roads and rails are unlocked, 1000 AI, new month fireworks for most cities. On my system, idle was 150 FPS, and at max speed during the new month fireworks boom, I only got 17 FPS. So there was some room for more performance.
The first thing I did was some data-oriented design tricks, separating fireworks into two parts, ensuring that the CPU cache was used optimally. That alone increased FPS from 17 to 34.
Then, instead of calculating how to draw fireworks on the CPU, I sent all the work to the GPU. Some troubleshooting with instancing later, FPS rose from 34 to 68.
Next, fireworks did not have LODs, they were always rendering fully. So I added a rule that the more zoomed out, the bigger the step in the sprites array will be. Basically rendering every second, every third particle, and so on. This increased FPS from 68 to 74 and allowed us to have fireworks much more zoomed out.
GPU instancing is a wonderful thing, and roads with rails always made the CPU stressed out. And again I transferred most of the calculations on how to draw roads and rails to the GPU, increasing FPS from 74 to 180. Idle FPS increased as well from 150 FPS to 260 FPS, but who cares about being idle?
With all other problems out of the way, it was time to start addressing the large save indirect passenger lag that can happen even before 2020. I am still working on this, did some fancy tricks here and there, but there are still save files that need more debugging. In some save files, performance is increased 5 times, in others, only 2 times. And there are some save files that do not go above 60 FPS for me, granted there are more than 10k vehicles there. That only means that there are still parts that need to be addressed.
Some Options
The game got some more options to control how the game works. For settings we added:
Fireworks option for High, Medium and Off
Cruise ship music slider
Tooltips lock options for delayed and instant locking
And for new game settings, we added:
Random start option for Classical and Sandbox modes
Specific country start option for Discover mode
One last thing I wanted to mention is that we added rolling balance for vehicles, hubs and routes. Showing how much they made or lost in the last quarter. This will help with figuring out how the vehicle is doing not only at the end of the month.
This is not all, some incomplete features are left out. In the next blog post, we will share more mass edit tools and the company shares system.
Changed files in this update