1. Solace Crafting
  2. News

Solace Crafting News

Hotfix 0.6.4.43 / 0.7.0.3

As I mentioned on Saturday, a series of memory leaks came to my attention last week that ended up being quite elusive. This patch addresses 99% of those leaks and some problems with the game hanging in the event of an attempted multi-player connection timing out.

A memory leak is when a section of memory gets allocated for use but then doesn't get properly unallocated, leaving it in limbo and unrecoverable. Unity games are primarily written in C# which is a modern programming language that has a wonderful tool called a garbage collector that watches objects in memory and automatically unallocates them when it can tell that no one is using it anymore. The internal workings of Unity however operate using C++ which is another similar programming language that does not use a garbage collector. This means that certain types of objects being handled internally have to be managed manually.

Unfortunately, Unity's tools for monitoring memory usage are convoluted at best. I ended up making my own tools after almost 20 hours of struggle with little progress to show for it all. After finally figuring out what types of objects were lingering around in memory it was only a matter of time before I squashed them, one by one. There are still some tiny leaks, 100kb's when you return to the main menu kind of small things, but nothing compared to the problems that were crashing the BKG California dedicated server almost daily most of last week.

What initially got me looking deeper into the problem was actually measuring the performance of a number of different operations to see what the main cause of the lagg spikes that can cause the mouse to spin are. I have some strong leads on 2-3 different systems that I can improve and spread out over time to decrease those spikes that I plan to work on in the near future.

With the BKG server crashing due to the memory leaks there were also instances where I would try to connect to it through the game client and the connection would time out, but the "unable to connect" warning wasn't triggering, leaving the client stuck in "connecting". I've improved that code to be more informational about what's going on, and not get stuck any longer.

I've applied this patch to both beta and live simultaneously.

v 0.6.4.43 2020.10.26
- Fixed several memory leaks causing the game to slow down over time
- Fixed multi-player connection issues causing the game to get stuck "loading"

(beta)
v 0.7.0.3 2020.10.26
- Fixed several memory leaks causing the game to slow down over time
- Fixed multi-player connection issues causing the game to get stuck "loading"

You may need to restart Steam for the update to begin.

To opt into Beta you only need to go to your Steam Library, right-click on Solace Crafting, select Properties, click on the Beta tab, and opt-in to the beta.

Join us in Discord! Interested in supporting development of Solace Crafting? Please consider becoming a patron via Patreon!

Memory leak fix incoming

Sad but true, I've spent all of yesterday and today tracking down a memory leak that has been crashing dedicated servers and causing the game to slow down over time. Memory can be a tricky subject as there are different scopes, or levels, of memory, not all of which you can see and track as "managed" objects. I've identified the majority of the problems and am working on implementing fixes, but wanted to get the word out there first as I know some people have been having the server go up and down frequently this past week as well as the game slowing down when traveling long distances.

Should you be experiencing the game slowing down over time, returning to the main menu is not the way to reset the memory, you need to save and close the game completely. Sorry if this has caused anyone trouble, and hope to have a fix up tomorrow!

Small hotfix to both branches

An error in harvesting exp math was brought to my attention that could result in zero exp rewards so I jumped on it as it was something a lot of people would run into very easily. Likewise, boats had a number of problems post 0.6.4 that were never properly addressed. This patch fixes these two problems on both the default live branch and the beta branch simultaneously.

v 0.6.4.42 2020.10.22
- Fixed a math error in harvesting exp
- Fixed a number of problems with picking up, saving, loading, and covering long distances with boats

(Beta)
v 0.7.0.2 2020.10.22
- Fixed a math error in harvesting exp
- Fixed a number of problems with picking up, saving, loading, and covering long distances with boats

You may need to restart Steam for the update to begin.

To opt into Beta you only need to go to your Steam Library, right-click on Solace Crafting, select Properties, click on the Beta tab, and opt-in to the beta.

Join us in Discord! Interested in supporting development of Solace Crafting? Please consider becoming a patron via Patreon!

Beta v 0.7.0.1

The default storehouse placement method via the town interface "construct" button, as opposed to using a summoning circle, will now place a "real" structure, that can be altered as normal. This also allows for the placement of crates to manually increase storage as is the new method instead of upgrading the storehouse repeatedly.

I ran into a number of problems with structure placement via the "load" option in the building menu while testing the building I made for the storehouse and making sure it placed and saved properly at different rotations, which had not be updated to work with 0.6.4, and was able to fix them.

v 0.7.0.1 2020.10.20
- The default storehouse town building now uses an actual structure that can be modified after placing which allows for the placing of crate boxes to increase storage
- Fixed custom structures loaded via the "load" building menu not reloading properly
- Fixed switching back to snap mode during structure placement not correcting the rotation properly

You may need to restart Steam for the update to begin.

To opt into Beta you only need to go to your Steam Library, right-click on Solace Crafting, select Properties, click on the Beta tab, and opt-in to the beta.

Join us in Discord! Interested in supporting development of Solace Crafting? Please consider becoming a patron via Patreon!

v 0.6.4.41 now live. v 0.7.0.0 now on beta.

This patch brings in the first steps in a number of different directions, all of which relate to town functionality.

One of my main underlying goals for Solace Crafting has always been to add meaning and reward to building. Having said that, building is not something that everyone is interested in. A lot of the systems I'm designing I want to reward players for making the extra effort, but make it optional, not punishing or forcing onto everyone.

With this patch all town buildings can now be built from scratch letting players customize their own town buildings and layouts however they like. That doesn't mean yet that there is a built-in reward for doing so, but I definitely have some plans for that in the near future. One of the best parts of this change is that storehouses can now have crates added to them manually to increase their storage capacity, rather than "leveling" them up. An unfortunate side-effect of this patch is that storehouses "plopped" down with the basic "construct" option from the town interface cannot yet accept crates, making them basically useless. I got stuck with some data management bugs getting this patch ready and haven't fixed that yet, but it's top priority for me tomorrow morning.

Custom buildings are now no longer started with facilities, and instead assigned using summoning circles. Many town buildings however have facility prerequisites, such as a miner needing a forge. I've also added in two other prerequisite systems, one for unspecified furniture, meaning two chairs, a table, and a carpet would meet the requirement for "4 pieces of furniture" if a town building were to require it, and a system for requiring specific "items" such as a forge or a bed for example.



Here I'm looking into a storehouse I threw together and added 3 crates to, awarding me 300 slots of storage using the same storehouse interface as before rather than interacting with the crates individually. This sort of a centralized storage system in much easier to manage than trying to move between various chests and locations. I think it would make a lot of sense to expand this system to work with all in-game items, perhaps with different tabs for different types of items, for example.

Now that storehouses are no longer upgraded, towns no longer rank up based on the level of the storehouse. Instead, there is a special town building required to increase a towns rank, all of which are now clearly marked with an arrow icon in the town interface. These buildings are the Storehouse, the Trader, the Market, the Town Hall, and the Guild Hall. There is also another new building called the Training Hall. All of these new buildings are works in progress and are not yet functional in this patch, though placeholders and/or custom structures can be placed in order to level up towns.

The Training Hall is intended to be a requirement to unlock a Job skill tree. The current four adventuring skills trees (which are scheduled for overhauling in version 0.8) are the Archetype skill trees, each of which is planned to branch into 2 different Job trees. The Guild Hall is then planned as a requirement for unlocking Class skill trees, which come after Job trees. These will each likely have a quest that the player will have to undertake in order to unlock them.

The Trader is intended to move resources from one town to another. The main idea behind this is for players to have a favorite town, or a main headquarters of sorts, even though that may be located in tier 0 territory, while their character is now adventuring in tier 10 or higher territory. Creating a new town in a higher level area will allow the gathering of higher tier resources, and using the trader will allow for sending those resources back to their main base in cases where that's preferred.

I do also plan to increase not only the base yield of resources from town harvesters, but also allow them to be equipped with player crafted equipment to further increase their productivity.

The Town Hall is intended to offer town specific upgrades, such as specializing in a specific resource or trade to increase productivity.

More to come!

You may need to restart Steam for the update to begin.

To opt into Beta you only need to go to your Steam Library, right-click on Solace Crafting, select Properties, click on the Beta tab, and opt-in to the beta.

Join us in Discord! Interested in supporting development of Solace Crafting? Please consider becoming a patron via Patreon!