Sweet Transit is a unique city builder where the railway is king. Build and automate the dream supply chain for your citizens, giving them all they need to expand quaint villages into bustling cities. Progress from steam power to diesel and beyond in this advanced train-driven experience.
[h2]Getting There[/h2]
These days, I am mostly working on graphics and finishing touches for the next update. As always, there are still some things that need work, but it feels like I am getting to a stable and fun version. Early and middle games had some rebalancing to maximize the fun and reduce tedious tasks. When I was playtesting, my main goal was to remove “mental blockers” so that I could focus on what I wanted at a time, like completely unreasonable fuel production or fancy settlements, without worrying about upkeep destroying me every 10 minutes. I already have to battle with logistical decisions I made in the past, so why add more stress? Hopefully, soon you will all see and enjoy those tweaks. Here is a picture of disaster layout decisions made by me.
[img]{STEAM_CLAN_IMAGE}/40387233/2f5fcaa2476eb77d2dcfb94d83a79f2d1179a6b2.png[/img]
Please note that the features discussed here are not yet available and will be added in the next update.
[h3]Swap Workers[/h3]
Swap workers is such a simple action, but it always had a lot of baggage behind it. In the early days, Sweet Transit stations could only connect to a single target, like a settlement or a coal mine. That was enough for trains to decide where they needed to pick up workers and where to unload them. The logic at first was simple as well: if in settlement swap means load rested and unload tired, if in production facility station, then swap means load tired and unload rested.
After some time, wait conditions came in, and play testers wanted to tie them to actions. Players that swap workers with a laborers filter and rested at 100% condition means that that train needs to load tired laborers and unload everything else. Before the early access release, distribution centers were added to allow multiple production facilities to connect to the same station, as that was simply not possible or designed. Then players wanted trains to not load more workers than they needed, and for that, I added a system that calculates how many workers are needed everywhere and how many are tired. In short, the system grew to accommodate others and their needs. With every small new feature, the old system needed to have various changes, as it was simply not designed for it.
[img]{STEAM_CLAN_IMAGE}/40387233/84a0704f48fc91d7c0ee3c28dea4576bf0073383.png[/img]
Then it was time to develop v.0.6, and I looked back at how many problems and new requests this swap workers action had. It was impossible to trade workers between settlements, and only simple, straight paths were possible. Furthermore, stations were limited to simple connections, which required a station for any new industry type, no matter how close they were. There was a issue of goods teleportation that allowed to unload wood at one part of a settlement and load it at the other end. And of course, reviews that complained about the lackluster city builder motivated me to take a second swing at the system, and I scrapped everything relating to swap workers I worked on.
First, I removed station connections and improved the road system so that residents and workplaces could find stations on the roads. Without connections stations needed to have local storage. Then goods somehow had to be transported from a station, which was not possible before. For that, couriers came in, carrying goods on the roads. This completed the transportation cycle and provided full control to the player. Next, stations did not know how many workers they needed to take in, as they are not a single purpose anymore.
My solution was to calculate station-specific statistics on how many people are rested, how many workplaces, how many are tired, how many are coming, and so on. That provided information for trains to guess what to do at that station. If there is a surplus and another station in the path requests workers, then it needs to load. On the other hand, if the train has workers and the station does not have enough, then it can unload. It works similarly to balancing liquid between containers by distributing excess between stations.
Sadly, this solution, while extremely fast to calculate, relied on balancing information and did not fit all solutions. In some cases, it is possible to have a middle station between destinations, in other tricks are needed. Loading or unloading goods without a filter confuses calculations, and trains act unpredictably. And it is difficult to guess why some workers are not boarding. Maybe they are waiting for work within the station's reach, or perhaps the train does not see other stations as a priority. Why would a train see an outpost with 40 missing workers as a priority when a settlement is missing 400, even with 100 currently in the station? I could go on and on, but this version is live, and problems are visible to everyone.
[img]{STEAM_CLAN_IMAGE}/40387233/8aae6f324ed8fb52f63ff3221cc09d14a1965364.png[/img]
My final solution to this is to make workers think for themselves individually. In the next update, workers will find work themselves and hop on as many trains as required. No more only simple routes, no more multipurpose train confusions, and no more weird behavior. It will work as follows:
- A station will still calculate its local data on workplaces, workers, and so on.
- If there are not enough workers, this station will be marked as in need of workers.
- Stations that can get workers through any means and unloads at that station will get this request. If those stations can fulfill that request at that time, they will do so. Otherwise, these requests get passed along further and further. This request can live at multiple stations and always prioritizes those that can be reached by trains the fastest.
- To fulfill a request, the station adds this request to a local collection and sorts them by priority. Then rested workers can look at the stations they can reach and choose a job. Once that job is selected, it will try to get there with as many train hops as required, prioritizing the shortest path.
Image below with multiple stations and trains works like a charm by delivering workers.
[img]{STEAM_CLAN_IMAGE}/40387233/a6c2042da3094320a1f1aba8d1884847ac162b31.png[/img]
The first version of this system released in v.0.6 was lackluster and not proven. Now I am confident people will enjoy this logistical challenge as all virtual limits will be removed to design whatever you want. I tend to create local rail systems at various outposts or just connect settlement stations so that workers would automatically relocate work where needed for me to not worry about a shortage of settlement workers.
[img]{STEAM_CLAN_IMAGE}/40387233/71d649a127743ffb9bbef01f3fa28b4baf5d68e2.png[/img]
[h3]Rivers[/h3]
I have also added rivers to the map generator. The problem is not really hard, but the solution is unexpected either way. Since Sweet Transit already generates a height map every time a new map is generated, I decided to start by making it rain on the map and let the rain dig into the ground and go downhill. The more rain there is, the deeper and wider the rivers will be, and ultimately much wider at the end where they meet the ocean. It turns out this did not work whatsoever, and in return, I just got ponds everywhere due to how perlin noise works. Maybe I could add more tricks to derail water where I want, but that would only increase the already quite long computation time more.
My train of thought was that I want rivers going from mountains to the ocean, and the current solution has rivers going just downhill without the ultimate goal of the ocean. This leads to unpredictable paths and ponds. Then I thought, why not go from the water to the mountains, the other way around? Perhaps rivers do not flow upwards, but in Sweet Transit, this works like a charm. Then, after some fine-tuning, this is the result.
[img]{STEAM_CLAN_IMAGE}/40387233/21b7df8d48e0e9d674bb0bf25d8a5c25aabb253d.png[/img]
The higher the river's value, the more interesting the outcome, but I'm not sure if it'd be fun to play here. It is a good thing that, with the newly added landfill, everything is possible.
[img]{STEAM_CLAN_IMAGE}/40387233/39ddaf05eb808201ce84fadee003030f2b795c23.png[/img]
[h3]Stamps[/h3]
The Stamps UI was neglected for a long time, and as we are approaching v1.0, it was time to give it a bit of love. Change is mostly visual and inspired by, you guessed it, stamps.
[img]{STEAM_CLAN_IMAGE}/40387233/19a4946e587bc5caaa1f958229783a0c1ba0ae52.png[/img]
[h3]Achievements[/h3]
There are some more achievements added.
- City - Found your first city.
- Only City - Found a city without any other settlements.
- Complete The Game - Have a Bank, Church of the Train, Opera House and BrewBoost Hub built at the same time.
- Fast Finish - Finish the game in 10 hours or faster.
- Tiny - Finish the game using a map of 256x256 tiles or smaller.
Tiny achievement deserves a mention, as I enjoy tackling challenges on smaller maps. In old times before v.0.1, I mostly played on maps 256x256, and it felt very satisfying filling them up until there was almost no space left that lacked purpose. I only hope to nudge some players in the same direction, and someone might find the same joy as I do. It is important not to go overboard with cliffs and water bodies, as that will make gameplay very hard.
[img]{STEAM_CLAN_IMAGE}/40387233/a22753b3d464f22b08a08bdb54dd5c4c599657a5.png[/img]
[h3]Wiki[/h3]
When playing something new, I like to delve into the Wiki to learn more about the game. For that reason, I created a game wiki that will be localized and can be accessed at any time. I tried to cover all topics and provide information that is not usually known. Now, players should be able to get answers to their questions without closing the game. I'm confident that new entries will be added in the future.
[img]{STEAM_CLAN_IMAGE}/40387233/7290fe8647585cc3c02637ba9019b0be275210e9.png[/img]
[h3]Goods[/h3]
In the next blog post, I will talk about new production chains and updated logic for some structures that provide fun bonuses that are worth the investment. I hope that that will go live in the coming weeks, along with the experimental branch.
[img]{STEAM_CLAN_IMAGE}/40387233/8f2c77b9f1db0f29f62e67a567eea406523a61b0.png[/img]
As always, leave feedback on Discord or Steam, and it will find its way to my list. Until the next blog post!