Path to Prosperity cover
Path to Prosperity screenshot
Genre: Strategy, Adventure, Indie

Path to Prosperity

Weekly Update 167 - Intermission


Hi everyone,


I was travelling and pretty busy with non-game developer activities last week, so unfortunately there will only be an intermission this week (and a slightly late one at that).

I should have enough time to get back to work this week, so expect a substantial update again at the end of the week.

Until next week!

Weekly Update 166 - Balancing and Small Fixes


Hi everyone,


After uploading the pioneer wagon to the experimental branch last week, I got a decent amount of feedback about what worked and what didn’t work - as well as some bug reports, some of which I already addressed.

To start with the most important: I finally switched the seed market from being balanced for competitive gameplay and the score victory to being more usable for cooperative play and the artefact mode. Previously, you only had access to a very limited amount of seeds, which increased in cost the more you purchased, and needed to unlock access to additional seeds by submitting money. After last week’s changes, artefact mode players are given a much, much larger pool of seeds to get early on, and the cost of seeds does not increase. This makes it much more viable to add farms for a reliable food supply into the mid-game.

To go with this change, the pioneer wagon now requires vegetables to be built, rather than fruit, which gives players far more control over how quickly they can get the resources they need for the wagon. Additionally, Pirate’s Peak now has more banana groves in the starting areas, meaning that both players are able to build their initial base without having to rely on sending fruit back and forth and having to rush into farming straight away. As a result, the early game and stepping into the mid-game expansion are much smoother than before.

Among the fixes was the solution for an issue with different stone groupings spawning for different players in multiplayer, a fix for a crash caused by pirate AI (I may also have introduced a smaller problem along the way, which I will solve shortly), a fix for an animation issue, and many more. All of these were uploaded to the experimental branch last week, so you can already test them out.

On the progress to finalising 0.8, I am in the middle of creating chapter entries for the tutorial, so rather than having to play through the entire tutorial from the start, players will get the possibility of starting the tutorial at any chapter they like. This will fit neatly with the change to chapter 5, which will introduce the wagon to new players.

Until next week!

Weekly Update 165 - The Finished Wagon Maker


Hi everyone,


I have officially finished all of the functionality, edge cases, saving, and now also the new (placeholder) model of the wagon maker building.

The changes have been uploaded to the experimental branch, so let me explain how to use the building so you can try it out before I add the tutorial chapter for it. The building itself costs 1000 coin and 100 wood to build. Once the building is constructed, there is a button on the left side of the building book. Clicking on it starts the wagon creation process, and costs another 1000 coin. Once the creation process has started, the building requires 400 wood and 200 fruit for input, which will be brought to the building by available logistics workers of the village. After that, the construction process begins, which takes 5 minutes (all material costs and times to potentially be adjusted). Upon completion, the building calls for 4 villagers from the port, who will arrive with the next ship and walk to the wagon maker. Once all of the villagers have arrived, the wagon will become functional, and can be sent to make a new village.

I will try to create the tutorial chapter for the wagon next week, after which everything required for 0.8 to be finalised will be finished.

Until next week!

Weekly Update 164 - Saving the Wagon and Small Fixes


Hi everyone,


I am still working on finalising the wagon. Addressing edge cases and saving part-way through them took a lot longer than expected, and I still haven’t managed to address all problems. As a result, I’ll keep today’s blog short and just give a few updates.

The wagon itself is basically working through all of the edge cases I have been able to come up with now. The deaths of villagers and destruction of individual buildings, interference with the construction by the player (bringing or taking resources, constructing themselves), etc all work without problem. If the warehouse is lost, the new village is considered lost (it really is that important - but more on that once I discuss the new villages after finalising 0.8). Saving and reloading is possible during regular village creation, and I just have a few issues left there (e.g. saving and loading after a house has been destroyed).

Over the course of my work on the pioneer wagon, the edge cases, and the saving/loading, I was also able to add a few minor functions and bug fixes: Placement of multiple of the same buildings by holding down shift is now possible; loaded chests belonging to the faction (building demolition, villager death) no longer spawn in with an invisible trunk; and if you hire workers for a building, only the current village is considered (but all of the village, not just the immediate area).

I should be finished with the remainder of the saving/loading in the next few days, and will upload the pioneer wagon to the experimental branch once I have also created a placeholder for the wagon maker building.

Until next week!

Weekly Update 163 - Edge Cases


Hi everyone,


The pioneer wagon is now working - assuming that the player behaves themselves. Which is of course something that never happens. So let me talk about some of the edge cases I am currently guarding the wagon against.

As I said, the wagon is generally working now. It can be created in the wagon maker building (which doesn’t have a model yet, however), and once at its destination, it neatly unpacks and creates a new village for you. The villages are now considered separate for logistics purposes as well, so you no longer destroy your main village with long lines of villagers carrying things halfway across the island.

However, the wagon working depends on the player doing everything the way that I expected it to - which players never do. Any deviation from that can still break the game or the new village in many creative ways, which I need to create code to guard against to help the game handle them smoothly.

There are many, many cases that I need to think through, but I will give one as an example: The player creates a village in an area that is not yet cleared of pirates, and the pirates destroy one of the houses that have been placed but not yet constructed. In a regular village, the residents of a house are killed if their house gets destroyed - however, this is much harder to do in an established village, as any house that already has residents has to be built - and therefore will have all its hitpoints. Meanwhile, in the new village creation, the houses that are only construction sites and have very few hit points already count as the accommodations for the villagers that are creating them - so a small oversight of missing one pirate may wipe out half your new village and means the buildings are never finished.

As a solution with the new village, the destruction of a house will only catch up with the villagers after the remaining buildings have been constructed (or destroyed). If a house gets destroyed, its residents will continue to construct the building they are currently tasked with, and only once all of the buildings have been constructed, will the villagers without a house catch up with what happened. This means that even if a house (or both) get(s) destroyed, the warehouse and market will go up, and the player has the option of constructing a house themselves to “revive” the new village once they have dealt with the pirates.

Additionally, the game needs to handle what happens when a villager in the new village dies during creation of a building; what happens when the player steals resources from the village that the village needs to be constructed; what happens when the wagon gets attacked during building placement; what happens when the player saves at just the wrong moment during any of these cases, etc, etc. In good news, I am making my way through the edge cases quite steadily, so the new functionality should be ready to be uploaded at some point during next week - so you can test it and tell me about all the edge cases I did not prepare the game for.

Until next week!

Weekly Update 162 - Unpacking the Wagon


Hi everyone,


Work on the pioneer wagon continues to go well, but still isn’t quite finished. As a result, I will just give you a quick update today while I continue working.

At this point, the wagon animations are mostly working, the wagon can be ordered to move with waypoints and on the map(s), it has a UI, and as of this week, it can also “unpack” (see today’s image), to unload its 4 villagers and goods. The player can then place the 4 buildings needed for the new villages (the warehouse, market, and 2 houses), which are not added to the existing logistics and construction system.

I am now working on having the 4 villagers “construct” the 4 buildings of the new village, which should be finished fairly quickly. At that point, the only remaining task before I can upload the wagon will be to create the wagonmaker building and its functionality, so it is possible to create the wagon in the initial village without the need for developer commands. I will keep you updated, but am confident that I can finish it in the next one or two weeks.

Until next week!

Weekly Update 161 - The Mix of the Wagon


Hi everyone,


A little while ago, in post 157, I outlined some essential questions I had to go through to decide how to design the wagon, and ultimately decided that I would go with a completely new setup for it - so today I want to take a minute to tell you oh how wrong I was.

Let me qualify that statement. If I had to restart the wagon, I would still set it up to be its own, completely new entity. This is the best way forward, and especially with the transport wagons (see last week’s post) in mind, there really is no other alternative.

However, I would be a lot less naive about how many different things the wagon would become on the way. As I mentioned in post 157, many systems have been created with specific units or code in mind - and things were not as easy as running the existing code for the wagons. Let me give you an example:

The strategy and tactical maps have icons for both buildings and soldiers (but not regular villagers). The soldier icons are built with updates for their position in mind, while the buildings also have the icons for waypoints attached. With the wagon, I now needed to use both. With no building to “back up” a wagon, the wagon needs to keep track of its own waypoints, and needs to also have a representation of those on the map. At the same time, the wagon needs to be able to move - meaning I needed to create a completely different structure for the wagon which utilised aspects of both the buildings and the soldiers icons.

The list does of course go on. The wagon uses the inventory system designed for villagers and the inventory user interface in the menu that goes with it - while the wagon’s actual “book page” utilises the same user interface structure as buildings (so it can be selected directly). Selecting the wagon, of course, was a challenge all by itself: The game so far had been designed around interacting with, and selecting, primarily buildings. Even when the player selects a villager, they select primarily the building the villager belongs to, and secondarily they select the villager out of the buildings residents or employees. Creating a new villager profession, for example, is super quick - as the villager still uses the same underlying system - but creating a unit that isn’t associated with a building to start with, made this a lot harder.

All of that is to say that I have found solutions for most problems I have encountered, and that the game is now able to actually accommodate the wagons existing in the context of the village and faction, rather than just as a spawned-in, independent entity. There are already many aspects of this (and as a result of the villagers and buildings) that I would love to refactor eventually, but that will have to wait until at least halfway through 0.9 so I don’t keep you waiting for new features any longer!

Until next week!

Weekly Update 160 - Thoughts on the Transport Wagons


Hi everyone,


Work on the pioneer wagon is going slowly but steadily, so I want to take today to discuss a topic that has repeatedly been on my mind as I am developing it and as I keep trying to set things up to be as reusable as possible: The transport wagons.

With the upcoming changes to logistics and village mechanics, it will be necessary to create an additional unit to handle inter-village logistics. So let me start of with explaining why a new unit is even necessary:

I think I have mentioned quite a few times now that having global logistics has been a sure way to slow down logistics in your main base to the point where your villagers are no longer getting enough food to sustain themselves, leading to a quick end to the game. Consequently, logistics being contained to individual villages is important to make expansions possible and (more importantly) actually a fun thing to do. However, that means that each village will have its own economy and logistics system, which defeats the purpose, if it cannot interact with other villages.

The “simple” way to handle this for version 0.8 will be to leave warehouse workers as global logistics workers, while idle workers will be contained to their immediate area. As a result, idle workers should keep up with logistics at home and in the expansion area, while warehouse workers will still move goods from, e.g. the farm in the original base to the market in the expansion village that is calling for more food. However, this seems like a suboptimal way of handling inter-village logistics. If individual processing buildings can still create a call for supply from individual supply buildings halfway across the map, warehouse workers will be constantly busy and the player will have little control over prioritising the transport of, e.g. gold, from the expansion base back to the main one.

This leaves warehouse to warehouse (or village to village) logistics. Rather than creating calls to the global pool of buildings, calls will be issued only within each village, and the player needs to make sure (as one option), that the required goods are actually in the village. This could mean creating additional food production buildings in the expansion village, or setting up a transport system between the warehouses, where excess food from the main base gets sent to the expansion base (as you can currently do between coop players, for example). Of course this comes with its own challenges: How do you handle having more than one expansion base, if you want some of the food to be sent to the smaller one, and lots of excess food to go to the larger one instead? How do you adjust to having cleared one route to the expansion village, but your logistics workers keep taking the route that is still full of pirates?

With all of this, I am hoping that the transport wagon will be able to help. The transport wagon will have lots of space for goods, so each time it goes back and forth will be a big help for the forward base (or bring back its products), while the player will be able to define its waypoints for the journey similar to what you can do with soldiers. Of course this does not yet solve the problems of how to distribute goods, but it means that there are potential solutions. Looking, for example, at the way that the Anno series of games handles transport with ships, a transport wagon A could be set up on a trade route between base X and Y, grabbing 50 food each time it reaches X and dropping it off every time it reaches Y. Meanwhile, a transport wagon B could have a trade route between X and Z, grabbing and dropping off 100 food for each path. This solution would not necessarily ensure that either base would have enough food, but would place the tools to ensure sufficient supply firmly in the hands and actions of the players, rather than leaving it to an automated system that can be easily overwhelmed.

Of course this comes with yet more questions: If the wagons are operating independently like that and move between different villages, do they have an accommodation building like the villagers and soldiers? Or are they “outside” of the scope of accommodations and food, like the pioneer wagons? Can they be escorted by soldiers for protection? Many of these questions will impact how the pioneer wagon best gets designed so I don’t have to redesign it again in 2 months. I have not yet made my mind up on all of them, and am also still considering a system where the transport wagons would not be manually set on trade routes but instead controlled by a “macro level” warehouse logistics system - but I will keep you updated on my thoughts.

Until next week!

Weekly Update 159 - Taking Stock (Year 3)


Hi everyone,


It seems that the “usual” one year and one week interval has crept up on me once again, and the game has been in early access for just over 3 years at this point. So, it is time to take a look at the macro level of Path to Prosperity’s development.

What happened this year?


Checking last year’s “taking stock” post (and the posts done since), there is quite a lot that happened. First of all, I created the templates for the new buildings in the wood, stone, and metal tier style. From there, I created the new buildings that were missing to 0.8 experimental (barracks, scout’s hut, etc.), which led to the release of 0.8 to the experimental branch just before christmas.

With the 0.8 experimental branch came a lot of feedback from players, leading to many bug fixes, changes in animations, changes to how the scout functioned, and the full commitment to having 6 units distributed across melee and ranged types we now have. Based on player feedback, I also made changes to ammo distribution (moving away from all military buildings distributing ammo and to only ammo depots doing so). This new ammo distribution also led to the new healing mechanic and the healer’s hut, which heal units in their immediate area based on medicinal herbs, rather than healing based on food consumption.

Another outcome of player testing was also that there was clearly not enough communication about the new mechanics that were in the game. After repeatedly having to explain to players that certain mechanics already existed and how to access them, I decided to set up a new tutorial which would give a decent introduction to the game overall, as well as its new mechanics. In the process of creating the tutorial, I also ended up cleaning up a lot of the older code and restructuring things to be more reusable for the future, overall reducing the game’s susceptibility to bugs.

Finally, I started creating the pioneer wagon, which will be the missing piece to bringing 0.8 out of the experimental and onto the stable branch.

What is currently planned?


Again, the obvious part here is to finish the pioneer wagon. Once the wagon is in the game and can be used, a lot of issues with expansion will be reduced, and logistics can be at least partially locked to being within their own villages. In order for players to not be lost once more, I will update the tutorial to include the wagon, but the tutorial is already prepared to accommodate this, as chapter 5 is all about creating an outpost. Once the wagon is ready and the tutorial is updated for it, 0.8 can be released properly (and I can finally update the steam page with some more current art and trailers).

After that, I will start working on 0.9, which is all about improving the basebuilding aspect of the game. One major aspect will be to bring all of the building and art up to a consistent standard, which I am quite excited about, but there will be many improvements on the functionality side as well: Village mechanics will mean that each outpost will have its own development state, research will allow for a much smoother and more choice-based progression, and updated production chains will give more options based on what players find across the world. I will give a more in depth update on the plans once 0.8 is out and work on 0.9 begins.

Once again, thank you very much for sticking with the game for another year, all of your feedback, bug hunting, and suggestions for how to improve!

Until next week!

Weekly Update 158 - The Basic Wagon


Hi everyone,


There is not much “flashy” progress to report on this week, so I will keep it somewhat short.

Last week, I explained that I had gone through the basic decisions of how to set up the wagon, and this week I can report that I have implemented just that. I now have a wagon with basic functionality, which moves through the world when it is ordered to, doesn’t use any food, and gets attacked by pirates if they see it.

The animations are so far not working yet - having a villager that believably pulls the wagon takes a bit of experimentation to get right. But I will work on that this week. I will keep you posted!

Until next week!