1. Solace Crafting
  2. News

Solace Crafting News

Incoming 0.6.4 - World generation upgrades!

As posted on Patreon

It's been a crazy start to the year! We've got an outsourcing agency working on reskinning the UI, adding UI sounds, and programming the fishing system per my directions. I've also been hard at work on a number of big changes to different systems that the game uses both for performance reasons, bug fixes, and looking forward towards the future of Solace Crafting. I want to go over some of the more major improvements quickly, and hope to have to patch out in within the next couple of days.

1. World Generation

I've been using a 3rd party tool to help generate the game world since day one. In short, it's a tool that lets you organize a variety of objects onto a node based graph, and then outputs the actual game world data for Unity to generate in runtime. It was helpful to get going, and it is definitely a powerful tool. The more objects and biomes I add to it though, the slower and slower it has started to run.

In lieu of this and the need for a number of improvements, I've been working on replacing that tool with my own custom system built specifically to cater to our needs. I made a short clip (see below) to show how it's working thus far and you can see an improvement on my 6 core CPU from about 34 seconds down to around 6.5 seconds. The older version running at 34s is however using 5 of my 6 cores to generate the data. If you were running on a 4 core CPU of equal GHz that time would be roughly doubled. If you were running on a 2 core CPU of equal GHz that time would be roughly quadrupled. So you can see why I decided it was time for an upgrade. The newer version is actually currently only generating on a single core, so that 6.5s, will be 6.5s, regardless of how many cores someone with equal GHz has. I should mention also those were both recorded in the Unity editor, which makes things a bit slower as it's recording and logging a variety of data for real time development.

[previewyoutube][/previewyoutube]

Though I don't quite have buttons and knobs for everything yet, this system will also allow for much more fine tuning of render settings, letting players with stronger or weaker machines specify rendering distances for grass, trees, resources, monsters, terrains, buildings, and so forth each individually.

What about the "need for a number of improvements"? I started writing the core code of Solace Crafting back in 2016, after years of refining ideas and honing my amateur skills as a programmer. Some of that code was just frankly wrong, and a lot more of it was not smart. I've replaced a variety of poorly written sections with improved code in the upcoming 0.6.4 patch, and will continue to upgrade a number of internal systems as we move forward with the 0.6.4 branch.

2. Compression

Since the beginning I have also used a compression tool that is free for anyone to use and so hey, sounds great right. It does the job, often turning 150kb data files down into 10kb files helping out with disk usage a lot, and personally I've run into very few, though not zero problems using it. Unfortunately this tool does not seem to work on all machines as intended, creating problems for a very small number of players, as well as rare but very real input/output problems for a small, but still noticeable number of players.

I've thus replace all usage of this tool with a paid and actively supported compression tool with a much more intelligent workflow. Hopefully this will see the end of all compression based errors for all players.

3. Save Files

Recently we turned on Steam cloud save files, but it's been a bitter sweet outcome. The main problem stemming from the sheer amount of files that I've been using to store data, not necessarily their size. To remedy this, I'm consolidating what was previously up to 129 files into a single file per "chunk". This should speed up cloud sync a lot, and is also in thanks to a pretty heavy restructuring of save data and runtime data management. This is still an ongoing "upgrade" but is already resulting in faster, more intelligent saving and loading.

4. Biomes

Biome generation and management is something I'm very serious about and have tried to improve a number of times without ever quite reaching a final solution. Having rewritten the bulk of world generation over the past few weeks I've had time to re-approach the problem of, how to allow for an infinite number of biomes, and have come up with a new approach I'm currently putting the finishing touches to for the big 0.6.4 patch.

Previously we went from mishmashing biomes all on top of one another, to each "chunk," an 8km square area, being assigned a specific biome. Chunk based biome generation certainly worked a lot better than mishmash, which can in no way support unlimited biomes nor does the double layers of noise that a lot of games like Minecraft make use of, but was very... chunky, to be honest, creating very sharp edges, and lacking in control.

The new system currently being implemented is still chunk based, but it generates patches of biomes at random within each chunk, overriding what is otherwise a default noise pattern of lakes, grasslands, and forested areas. That means it can be circular, square, or even non-uniform, and of varying sizes, so long as it does not breach the outer border of it's 8km square chunk. This way a chunk can actually have multiple non-default biomes within it, depending on how the chunk rolls to generate itself, and also allows for me to specify certain areas to generate as specific areas.

Two of the problems with the current 0.6.3 build are how flat the starter area is, a math error from yours truly, and how long it takes to get to any of the other biomes from the starter platform. Now I can specify that there always be a bit of mountains in one of the first terrains, for example, making sure players can experience different settings much quicker, and still leave the rest of the world to randomize itself based on the world seed. This will also allow for a lot more world settings in regards to biome control, letting players create water worlds, mountainous worlds, etc. I've also fixed the extra flat starting area, back to a 100m radius from the start like it used to be.

In closing...

There's still a bit of biome work to do, and I do expect some new bugs to crop up with so many changes to the way saving and loading data is now managed, but hope to have a patch out in the next day or two. Having said that, I had to go to a chiropractor today for some x-rays and shots as I messed my back up pretty bad somehow last week, and trying to just stomach the pain actually ended up making things worse. Thankfully it doesn't seem to be anything serious, something along the lines of, I probably shouldn't sit in front of my monitor for 100 hour a week or something like that, but you know, priorities =D

Please be careful out there! The Corona virus is very real, and we're not yet sure why it hits some people so much worse than others. Wash those hands, and keep on gaming!

Hotfix v 0.6.3.15

Some more small fixes for a couple reported problems.

The big beta patch I'm working on is taking longer than I had hoped! C'est la vie. It's a weird time depending on where you live. Stay safe out there!

v 0.6.3.15 2020.03.23
- Fixed ladder popup text and interaction
- Fixed containers dropped into tombstones upon death becoming unusable

Hotfix v 0.6.3.14

Some more small fixes for bugs that were brought to my attention. Thank you again for the bug reports!

v 0.6.3.14 2020.03.19
- Fixed dropped item bags throwing errors when still be looked at but empty
- Fixed dropped items being able to merge into facilities other than dropped item bags

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

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

Hotfix v 0.6.3.13

Here are some quick fixes for recently reported problems with the latest build.

I'm hard at work on the replacement world generation system, which I hope to have out at the end of the week. As well as catching the agency I've hired part-time help from up to speed as to where the game is right now, and what it most needs work on.

Thank you to everyone posting about any problems they encounter, that very sincerely helps me out a lot. There have been a couple posts about entering caves causing crashes. I have yet to reproduce this or find a plausible cause other than (just maybe) outdated graphics drivers. If anyone is encountering this, any further details you can provide are much appreciated.

Be sure to wash your hands after going out!

v 0.6.3.13 2020.03.17
- Fixed boar death animation looping

v 0.6.3.12 2020.03.17
- Fixed tombstones not saving and loading properly
- Fixed Spider's Nest not rendering properly
- Fixed townspeople and town building signs not displaying their text properly

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

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

Version 0.6.3.10 now live!



Now live! This patch brings in the first phase of Workshop integration. Structures can now be uploaded to Steam Workshop, and other players structures can be subscribed to, making them available under the new "Workshop" tab in the structure load menu. Workshop support is intended for nearly all systems within Solace Crafting including items, enchants, recipes, monsters, skills, quests, encounters, and so forth.



Currently the item template creation/editing interface is also accessible. Though still undergoing some improvements, you can access the interface with the "i" key while in creative mode. Already the interface allows you to create new items, equipment, recipes, and so on, but is lacking in some information that should be made clear, cannot yet import sprites(icons), and is not yet connected to Steam Workshop.

There are two major changes going on right now that are going to heavily affect further Steam Workshop integration. For one, I have been re-writing the world generation system from scratch to replace the 3rd party tool that we have been using from day one. It's a handy and well written tool, but doesn't work well in the way Solace Crafting needs to use it, and is the main reason why currently loading takes so long. The current system takes around 37 seconds to load on my computer. The new system, though not yet finished, loads in less than a couple seconds. It's also designed specifically to allow for new biomes, monsters, encounters, and everything to be easily added into new and existing worlds to really work in unison with Steam Workshop and community content. A wide variety of encounters, procedural quests, and just things to do in general has always been the number one long term goal for a long-lasting mod-driven community. I'm also building it so that several different categories of render distance settings will be available to players. This way stronger computers can turn up the terrain, tree, building, or resource draw distances for example, while older computers can fine tune them to what works best for them. There are some more advanced changes in the works with distance rendering as well, but I don't want to get ahead of myself...

The other major news being, I have hired the part-time services of an outsourcing company. It's no doubt going to take them some time to dive into my 100,000+ lines of code, but I'm very excited to have some help in general with some of the things that I'm just not very good at. Namely animation and GUI design/graphics. I'm also looking to set our partners in audio to work in more sound effects in general as there are now quite a few monsters and animals with no audibles.



Also included in this patch are updates to the "new" building pieces that were added in last month, which had a number of problems, as well as 12 new animals. The animals are kind of all over the place right now, and the starting grass area is extremely flat and uninteresting due to some math errors with the current world generation system. These and a number of other problems that have been around for some time will be addressed with the replacement system which should be ready for beta before much longer.

The condensed patch notes are as follows

- Added Creative mode
- Added Item Template Editor interface to creative mode
- Added "Workshop" tab to structure loading interface
- Added "Upload to workshop" button to structure save interface
- Added thumbnail selection to the structure upload interface

- Added boars, chickens, cows, crocodiles, does, foxes, goat, hippopotami, rabbits, scorpions, snails, and stags (unique drops pending)
- Updated the majority of the new building models from 0.6.2.5 with tighter more performant models

- Facilities are now upgradeable in Multiplayer
- Items dropped within one meter of other dropped items will now combine into one bag
- Items on the ground will now decay after 24 hours
- Added /itemDecayTime and /tombstoneDecayTime to world settings and console
- Added tombstones that spawn and store the items dropped by player death
- Tombstones will decay after 7 days

- Changed the fps counter (F3) position and color and updated it to a proper UI element
- Added a new BGM track
- Upgraded Unity to 2018.4.16 LTS
- Turned on cloud saving

The latest beta patch notes are as follows:

v 0.6.3.10 2020.03.08
- Fixed navmesh data being unnecessarily recycled in some situations
- Fixed entity AI engaging navigation prior to being enable in some situations

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

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