[p]Much of the last few weeks have been spent in the ever more convoluted maze of trying to fix multiplayer issues, but today’s update should get that back to (mostly) working. I also want to introduce the more interested new contracts to you.[/p][p]First of all, let me get some of the fixes out of the way: I both managed to optimise the game a little more to make up for the instancing issue we are still having, and I managed to circumvent a problem with the game’s networking solution disconnecting on load.[/p][p]The latter fix has made it much smoother to start the game in multiplayer mode, but unfortunately, loading a saved multiplayer game was a completely different story. Depending on connection times and computer speeds, instructions could arrive with various off timings while loading the game, leading to a whole page of bugs I needed to figure out how to avoid (while not breaking the single player game either). It has taken a while, but I think the current version should address all of the issues we found - and hopefully we already found most of them. Do let me know if you find any more.[/p][p]On to more interesting things, I also added a new feature to the game: contracts. Contracts are now offered with each ship, and should be an incentive to A) not just sell all of your goods straight away and B) go down a sprint toward specific resources every so often. Contracts can be found in the port, just under the seed offers, and generally ask you to sell a certain amount of goods within a certain time. If you succeed, you are given an additional reward beyond the sales price, which could include coin, random goods (including medicine for player respawning), or seeds. Should you fail, you are penalised by a certain amount of gold. [/p][p]You don’t have to accept any of the contracts offered, but once you view them, they will disappear if you don’t accept. At this point, you can have 2 contracts active at the same time, but I am thinking of adding research to increase that in the future. I have also added an “active quests” area to the economy tab of the book, in which you can review active contracts, and decide which one you want to have active in the objectives area of the HUD on the right.[/p][p]At the moment, the requests of contracts are balances for the early game, but as I get more feedback and expand its features, there will be more mid and late game requests and rewards as well.[/p][p]Until next time![/p]
Update 219 - Building Upgrades, Pirate Upgrades, Medicine, and More
Hi everyone,
Again, a lot has changed since my last post, so I will have to cram quite a few things into this one. It seems that my goal of writing these posts once I’ve made enough progress to write one is not going too well - as I keep getting distracted from posts by additional development.
Starting with the “easy” one, it is now possible to upgrade buildings after they are placed. For now, this is primarily implemented for houses, barracks, towers, and watchposts - but I think those are likely the main ones people want to upgrade anyway. I will add more upgrade chains as I go. Upgrading is done from the building book, with the upgrade button being just left of the building’s name.
While trying to playtest the game, especially with the new plant clusters across the map, I realised that the early game was distinctly lacking a challenge. Having switched from a PvP focus to a PvE focus, as well as the increase in game length, had led to a strange balance of me wanting to give the player enough time to get established with a challenge later on - which made the game a little too easy early on. One of the big problems in this regard was that the pirates were just a little too easy to trick.
Moving out of their range and hitting them repeatedly meant that the player could take out groups of pirates easily, and had very little incentive to recruit soldiers for anything other than taking out the big fortresses.
As a result, I worked on improving the pirate AI, meaning they should be a lot harder to fight now. While the player can still defeat multiple pirates by themselves, it should no longer happen without at least taking damage and the threat of dying - and larger groups are almost certain to kill the player without soldiers to support them. With this in mind, I also added some new, larger pirate camps, closer to the starting position of the players (one of them pictured in today’s image). They aren’t close enough to attack your base directly, but they are close enough to threaten you, meaning that getting rid of them will be at the top of your mind in the early game.
Another mechanic making the game too easy early on was the lack of a true punishment for dying. While in score mode, you still lose some score for dying, in artefact mode there was essentially no punishment for dying, making it very possible to just run into an enemy base repeatedly, taking a few pirates with you each time - until you ultimately succeeded. To counter this, the player now needs to have medicine in their inventory to respawn. Medicine was always planned to be in the game as a mid-late game item to be produced by your people - but it will now also serve as a resource for the player. For now, it can’t be produced by your people yet, so you start with 3 in your inventory and can find more across the island, which may also make (careful) exploration more worthwhile. I will make adding the production chain for medicine a priority for the next updates.
Beyond all this, I followed through on adding flax as a resource to the game, which will be collectable by gathering huts, and turned the linen maker into a production building which requires flax. Linen is now also added as a new construction material between wood and stone, which is required for the more advanced buildings in the first tier. I also revamped some of the multiplayer system, which should solve some of the occasional problems that have plagued it for a while (desynchronisation on game start, incorrect resource loading on multiplayer game loading, etc). Finally, I added explanations for at least some of these mechanics to the tutorial (which does need some further updating), and added an explanation of the new respawn mechanic to the main game.
I will try to write the next post a little sooner, but all changes have been uploaded to the main branch, so please let me know your thoughts!
Until next time!
Patch 0.8.1.17
- Added gatherable resource clusters - Added seed gathering mechanic - Changed linen maker to being a processing building - Added flax, medicinal tonics, and medicine to the game - Changed respawn mechanic to requiring medicine - Added new pirate camps to early Pirates Peak area - Added linen as a construction resource - Added building upgrading - Fix for tutorial getting stuck in chapter 2. - Interim upgrade to tutorial for new mechanics
Update 218 - Seed Gathering and a new Market
Hi everyone,
A lot has changed since my last post, so I will have to cram quite a few things into this one. The biggest changes are that seed gathering has now been added to the game, and that the seed market in the port has changed a lot.
Starting with a follow-up on the last post, I finished the wild clusters for all current plants, and I have added them into the game (their spawn-chances are not finalised, but they all spawn and are in different biomes). This means you can now find tobacco, etc. in the wild, and can harvest them with your gathering hut to get access to these resources a little earlier than before.
Let me move on to the seed market. With the switch to artefact mode (some time ago), the way the seed market worked became a little.. awkward. It still worked in tiers, which you could unlock by sending money to the Queen - even though this was no longer part of the victory condition. To compensate, I added more seeds to each tier in artefact mode, which just meant that seeds were available permanently and without any challenge - which was not ideal.
I have now changed this for both score and artefact modes. In both modes, the seeds offered in the port are now linked to each ship - so each ship will offer between 0 and 3 types of seeds (ships are more likely to offer multiple seeds as your colony grows), and each ship offers these seeds at a different price. Some will be 50% more expensive than the seed’s base price - others will offer it for up to 30% less. This means you will have to consider whether you purchase a seed you need offered at a high price, or whether you want to wait for it to be offered cheaper.
With this change also comes a new way to gain seeds: Gathering them. As your gatherers can now gather any type of wild plant, they can also gather these wild plants in order to collect seeds from them. This means your gatherers will still collect the plants, but will no longer provide the produce to your village - instead, they will gather the seeds from them, and once they have enough, you will gain a new bag of seeds to make a field. As a result, finding a wild plant you are looking for can turn into a much more important event than before, as you e.g. race to collect the seeds from it to finally have a stable income of medicinal herbs for your defences.
This also means that you can now gather seeds for fruit trees and flax, meaning that both banana fields and flax fields can now be placed from the farm (see today's image). As a result, the linen maker also no longer comes with its own field, and instead requires flax plants to turn into linen.
Quantities provided by clusters/fields, quantities needed to get seeds, and prices of the goods are still a little experimental and all over the place, but I will upload the latest version to the experimental branch soon so you can try it and I will appreciate all feedback on it.
Until next time!
Update 217 - Gatherable Resources
Hi everyone,
I’ve used the few weeks since my last update to upgrade the gathering system and have started implementing linen as a construction resource, so I want to talk to you about that today.
First of all: My apologies for the time since the last update. Between various work streams, I have been using all my spare time for actual development, so it has once again taken me a little while to write this post - and it is far too easy to get into a habit of “adding just this one more thing” before writing the post.
In good news, I have made really good progress. As I’ve explained before, I am intending to change how resources and seeds work in 0.9, and I have implemented the biggest part of that change already. So far, 3 buildings largely fit into the category of “gathering” buildings: The sawmill (gathering trees), the stonemason (gathering rocks), and the gathering hut (gathering fruit). With a few changes, I have made this system far more generic, and each gathering building can be set to gather various types of resources.
I first implemented this with the gathering hut, which can now collect resource clusters of fruit, vegetables, wheat, flax, etc. This means that I can also implement more wild resource nodes in the world - so finding food nodes, spices, coffee plants, etc throughout the world will be random for each game, and will influence settlement locations, which type of goods to pursue, and more. For now, I have only implemented the 3 additional nodes (vegetables, wheat, flax - 2 of those in today’s image), but I will create more wild clusters in the next few weeks. Once the clusters are implemented, I will also create some kind of seed packaging building, where excess plants can be turned into a seed bag to create a field from. Ultimately, the stone mason will also be able to gather types of rock that contain iron or gold, making them a little more accessible earlier in the game, though with limited supply.
Finally, I have started separating flax from linen, so flax will have to be gathered or farmed, while the linen maker will create linen from that flax. Linen will also become a construction material for the later tier 1 buildings, so there will finally be a use for it beyond simply selling it. This is of course part of the new production chains, which I still have not written a post about - but will do so as soon as I find some time!
Until next time!
Update 216 - Building Variants
Hi everyone,
It has been a little while since the last post, but not for a lack of progress:
Over the break, I was able to make a lot of progress on the new building script, which is now set up to run in parallel with the existing building construction system, meaning that I will be able to update the game as I switch the system over, rather than having to wait until I have fully made the switch. This means that I was already able to update the game to now include many of the changes I have spoken about in the last few posts, including the new windmill and farm models.
Additionally, the new building script now also allows for building variants to be added for each building, which I had briefly mentioned in post 184 before. For now, only the small house has building variants, but I will be able to add more as I upgrade the building models. When a player selects the small house to be built, the game now randomly chooses from one of the three models, leading to a bit more variety in how each village will look (two of the variants are shown in today’s image).
Further, the new script includes a decor system, meaning that each building variant can be set up with additional ornamental items, such as crates, plants, or tools - which will be chosen at random when the building is constructed. This, too, should add some variety to the way the buildings look, though for now, only the windmill uses this system, and more as a proof of concept.
Now that both of these systems are in place, however, it will be easy for me to add variants and decor items to the next building models, which should help with making the settlements feel a little more organic.
Finally, I was also able to finish planning out the production chains for 0.9, which I will talk about in the next post!
Until next time!
Update 215 - Model Creation Streamlining
Hi everyone,
Following the creation of the windmill model, I finally decided to automate parts of the model creation process to make things just a little quicker for the next models - so I’ll use this post to explain in a little more detail.
First of all, let me go over some parts of the process I use to create new models: A little while ago, I created some basic building blocks for the various buildings, such as the wooden and metal beams, wooden planks, etc. Over time, I also created various objects from these building blocks and some additional work, such as the furniture, the doors, windows, roofs, etc. As I create new buildings, I essentially put these parts together in whatever way seems appropriate for the building, and then combine or adjust them as needed. This is a fairly simple and quick process, and leaves me with a building that is made up of sometimes hundreds of little parts.
Of course I am also aware that each of the parts may require an eventual overhaul or some fixes to issues I haven’t noticed yet - so I have linked them into each building file from a central one. If I make changes to the part file, these can carry over to each building really easily, making updating each part much easier. But this also comes with a problem: Many of the hundreds of parts used in the buildings now can’t be easily joined together, some are only references that aren’t considered “real” by blender, others are representations of mathematical formulas, rather than actual geometry. To get the models ready for the game engine, I then have to go through the hundreds of model parts and fix all of these issues - then select the parts I want to combine, and join them, as well as delete any remnants.
Depending on the complexity of the building, this has taken between 1 and 4 hours in the past - and any mistakes I make (and sometimes don’t notice) can lead to longer term problems with the models or mean I have to go back to an earlier version of the file.
After the windmill took me about 4 hours to join together, I decided to try to automate this. Blender luckily allows for some automation scripts to be created with Python, and while Python isn’t my favourite language, I have enough experience with it to have gotten right into it. After a few hours, the result is now a simple shortcut that does the majority of the work for me. I simply select the relevant parts, and the script solves all of the issues, deletes remnants, and joins the parts together into one - usually within a few seconds. This means that I merely need to organise the parts into groups I want, and run the script a few times - having tried it on the windmill, it took the time to make the model game engine ready down to about 10 minutes.
While saving a few hours here and there at the end of a model creation may not sound like a lot of a difference, I am still looking at a few dozen new models to be created, and this part of the creation process was something I was usually dreading for how mind numbing yet fiddly it was. So as a result, I am quite excited to be able to skip it in the future!
Even though I am hoping to get a decent bit of game work done over the holidays, I am probably not going to be writing another post until next year - so I hope all of you have a great holiday season, and a happy new year!
Until next time!
Update 214 - The New Windmill Model
Hi everyone,
Between Thanksgiving and some travelling, my work over the last weeks has been fairly slow. However, I just finished the new model for the windmill (see today’s image), so let me walk you through it.
The previous windmill was one of the few buildings that I had actually added a small animation to already (the rotating blades), so of course the new one also has rotating blades. However, with building interiors being a thing in the new models, I went a little further than that, and added some gears, drive shafts, and finally a basic grindstone to the model. As a result, you will now be able to see a lot more moving parts as this building is operating than in any previous one, which should really help create more of an atmosphere of a living village.
The moving blades and internal millstone/gears
While the turning gears are more animations than we’ve had so far, there is more I want to add in the future. For one, the building currently doesn’t (yet) have any sounds attached to it. With individual moving pieces, it should be possible to add fitting sounds in various locations, giving a much better soundscape than some of the generic building sounds we had before. I am also planning to use the current animations as a basis for future ones, and I am hoping that I will be able to add some villager animations in the future, e.g. the workers feeding grain into the millstone.
Finally, I have added some meshes to the model of the windmill that are meant to work with the new building script when it is finished. For example, there are meshes that are meant to only be shown as intermediate steps during construction, and to be deactivated again during a later part of the construction. This allows me to play around with new visuals, such as adding (and removing) cranes during construction, or having parts be constructed in an order that would have been impossible so far.
Half-finished blades: An intermediate step in construction
Similarly, the model has a number of optional meshes that are meant to be activated at random. So instead of each building looking the exact same, some buildings will have different ornaments randomly assigned to them. Considering that building construction is one of the oldest parts of the code, moving things over to the new (still unfinished) script has been a little challenging, but I am making good progress.
Until next time!
Update 213 - New Outlines
Hi everyone,
Lots of work has happened in the past two weeks, and I finally also have something that makes for a decent picture to show.
As I explained last time, the last two weeks were spent primarily on building models and the building model script. This came with a needed change I had been wanting to make for a while now: a new highlight shader for buildings. The previous shader simply set the main textures of the selected building to being white, and created a blue outline around it (left side of today’s image). This worked OK-ish, but the white texture didn’t look great, and the outline itself behaved a little unpredictable depending on the geometry of the model itself. In addition, this depended on me manually selecting each part of a building that needed to be highlighted, and it meant that some needed optimisation steps could not be done.
With the setup of the new building model script, I wanted to change those old ways and get rid of those problems going forward. I tested a number of different ways to highlight the buildings, but this one proved to be the best looking one I could implement in a short-ish timeframe. As such, it may change again going forward, but for now it will work to show highlights on both the old and the new buildings as I implement more of the new ones.
The new highlight will apply mostly to the materials that are used in the structural elements of the buildings, and will maintain most of their visual identity. It does change the colour toward the usual/expected blue hue and makes them brighter, which should make it fairly easy to identify what has been selected. There is also no more physical outline around the model, meaning that the highlight will show less clipping through other materials, and won’t be as unpredictable as it has previously been (right side of today’s image).
Now that this has been solved, I will move forward with the building model script, which should hopefully lead to building upgrading soon.
Until next time!
Weekly Update 212 - Taking Stock (Year 4)
Hi everyone,
As usual, I am going to take this roughly 4th year interval to give you a broad overview of where the game is at the moment and where it is going over the next year.
What happened this year?
As 0.8 was out on the experimental branch, there was a big focus on bug fixes as bug reports came in, as well as a bunch of quality of life updates that addressed various concerns and suggestions by players. Among them were the introduction of fast travel, sending of seeds in multiplayer, UI improvements, and many more.
Additionally, the past year saw the introduction of wagons, with the pioneer wagon being the starting point for the new village mechanic, and allowing players to establish their new outposts much more easily than before. The runner wagon was also introduced a little later, adding more control over transport for players - though the official transport wagon will add even more to this in the future. There were also a number of new building models and upgrades to building models added to the game, e.g. the full set of towers to go with the new units, and the way towers more generally worked was changed to them being destroyed by attackers, rather than the attackers having to first shoot the defenders out of their fortifications.
Beyond all of the noticeable upgrades, a lot of changes also occurred in the background, largely relating to the village mechanics that will be properly introduced in 0.9, but for which I needed to at least implement the framework for the pioneer wagon to work. These changes should pay off in easier and more stable development in the future, so you will see them pay off eventually.
Finally, 0.8 was released to the stable branch properly, which was a nice culmination of a rather long development time for what should probably have been more than one huge update.
What is currently planned?
With 0.8 finally done, I will obviously focus on many of the 0.9 aspects I have already mentioned in previous posts. However, the timing of 0.8 having been finished also comes at a point when another very long term project of mine is starting to come to an end (a project I actually started a few years prior to Path to Prosperity). As such, I have decided that I will focus a little more on the other project for the coming months in order to wrap things up with a nice bow, and be able to more quickly return more of my attention to PtP.
What does this mean in practice? For one, I will reshuffle my PtP priorities slightly, and work primarily on the visual component during this time. Creating building models is not as involved as coding new mechanics, and as such, I should be able to do this as a “break” from my other project. The new models will also be easy to throw into the game without having to worry too much about breaking anything major with their addition, so I won’t have to worry about days of bug hunting following these updates. I will try to introduce building upgrades into the game as a mechanic at some point during this time as well, as it will work nicely with the building modelling aspect.
With the development being slightly slower during this time, it will also make more sense to reduce the frequency of these update posts, to avoid intermissions or me not being able to say much. Over the next months, I will therefore post updates whenever I have gotten through enough development to fill a post, which I expect will be roughly every two weeks. Once my other project is finished, I will likely return to the weekly format.
In any case, I will be fully available to receive bug reports and feedback, and will address bugs as a priority as they come up.
Once again, thank you all for your reports, feedback, and suggestions, and for sticking with the game for yet another year!