1. Solace Crafting
  2. News

Solace Crafting News

Beta v 0.7.4.2 - Map improvements

Regardless of my surgery, which is still very sore, the world map interface is definitely one of the most difficult things I've created. The old map, still on the main branch, had a number of things slowing it down, a big one of which is the runtime creation of textures and sprites. I knew for sure that I needed a way to recycle the textures and to set up a multi-threaded solution for altering them in runtime, but that doesn't mean there's a book I can refer to that says: "Ah yes, in that case, write it like this."

I tried several different ways to get what's called torodial updating to work, wherein you move tiles from the left edge to the right edge or top to bottom and vice versa. It doesn't sound very difficult, but when you're doing it on an undetermined scale, in two dimensions, in varying step sizes, and you're bad at math like me, it ends up being a serious puzzle.

In the end it feels like it was an exercise in simplification. I'm now using a method that tracks positions, checks them against the current desired tiles, and sends those that have fallen out of range to an "unused" bin for recycling, similar to a common system used in game development called pooling.

This system is now generating the map data based on the noise math in runtime, rather than waiting for a terrain to generate it's splatmap when it turns on for the first time and write that out to disk. That means that you can now drag the map around to anywhere and it will load it in, whether you've been there or not. The final step in this series of updates will be to predetermine the locations for encounters, town resources, and rare resources separate from the spawning rules for everything else, so that the map and resources scanners will also be able to show all of those things, whether you've visited them or not.

There are however still some minor problems with the map interface I want to address tomorrow, such as the rulers on the side of the map are not giving correct values (more math), and the map is loading from the bottom to top, as opposed to starting from the middle and building outwards. I wanted to first get the changes as are, up so that our beta testers could give them a whirl and hopefully give me some input or spot any problems I haven't yet uncovered.

There is also still a variety of ways I could make the map load much faster. For example right now, each map tile is 100x100 pixels, and there are 20x20 tiles on the map. Changing each tile to 50x50 pixels would make drawing the map 4 times faster. And that could be a user setting for people to set themselves if they're running on a lower end machine. I'll see how it feels to other players first though.

Additional changes to this patch include player icons with names on mouse over for when connected to multiplayer, as well as the ability to now mouse over solaces to see their names. This too could be a toggle, to be displayed always, without mousing over... I've yet to actually try that, but it wouldn't be hard, and may be better. Please let me know what you think.

I'm supposed to get my stitches removed tomorrow, but it's far from back to normal. Sorry for the sudden delay in everything.

v 0.7.4.2 2021.04.27
- Updated map tile and icon drawing and management methods
- Added other players to the map when in multi-player
- Fixed a math error causing sharp edges around the biome starting area
- Offset the initial noise to reduce the chance of the starting area being surrounded by ocean for new worlds (will not affect already created worlds)
- Added player and solace names to the map on mouseover

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! Follow development live on Twitch!

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

Check out the bug / suggestion tracker

Had to take a couple days off

Just wanted to chime in due to the latest patch not being out yet. I ended up undergoing a small surgery this morning, and had to go back later and some details I will spare everyone. I'm fine, just exhausted and need to lay here and be still for a bit. Be back shortly.

Beta v 0.7.4.0 - Biome Generation

The need arose to develop a new system capable of determining rare resource positions without rolling for all of the spawns in that area. The main user of this system would be the map, as it would gain the ability to scan for rare resources anywhere in the world. It's a complicated task though that touches on a variety of different systems, and at the root of most of those system was the biome generation math.

When I stopped using a third party tool for world generation last year due to its increasingly slowing performance, it was up to me to develop my own system for biome creation. I always had it in my mind that there would be some day in the future when there would be either procedural biomes, or dozens of hand-crafted biomes. I developed two very different systems to "force" biomes into certain locations after rolling a random number on a table that could do just that, generate any number of biomes. Unfortunately both systems were chunky, very unnatural, and not very perfomant.

Instead, I've for the first time (personally) written a much more normal noise based system that produces very random biomes:



This also brings back the ability to customize the frequency of each biome during world creation, as well as the size of the starting area, the blend distance to be used between biomes, the general scale, or frequency, of the noise used to determine biomes, as well as a new optional archipelago setting:



The archipelago setting will separate mountains and swamps from grasslands and desert with channels of water (whose width you can customize) make travelling around with boats a very viable system, and honestly just makes a lot of cool land formations. I love building on islands and sheer cliffs for some reason. Because of the extreme difference in height between the mountain biome and the ocean biome it is now possible to have quite steep cliff-sides, so I've upgraded the object spawning systems to be able to understand terrain steepness, and can now assign a maximum or minimum slope to any object:



All-in-all I hope it makes for a much more interesting landscape, but the improved performance and capabilities that it offers me under the hood are very real. I have fixed the funky lines that show up on the map in this patch, but for the most part have yet to switch on the new features that I'm working on with the map.

This patch will require a world "update" which will attempt to reposition buildings to the now changed surface height of the new biomes wherever they may end up. Or of course this would be a great time to start a new world, into which you can bring any already made characters. The map update will reset some of the spawned objects and rare object positions, but it won't mess with the biome noise, which is really the only reason I ever need to force a world update.

Outside of all that, I've fixed a few problems with multi-player, and animations in general. One bug that looks like it has been around for a long time was only affecting clients connecting to servers or hosts that turned up their stone spawn frequency, causing server and client resource positions to not match up. Found today and fixed, thanks to a player report!

Thank you so much to everyone that has put up with my mistakes and adventures in coding as I try to bring Solace Crafting to a solid 1.0 release. I know we were in the middle of working on animations, but there was an increasing number of problems and performance issues cropping up due to the old biome system, and wounded ego aside, I'm quite happy to be rid of it.

Work on map improvements continues!

v 0.7.4.0 2021.04.14
- Replaced circular "forced" biome system with a noise based system
- Reduced maximum ocean depth (meaning less deep)
- Added an "archipelago" setting to world creation
- Updated world setting restrictions and added more descriptions
- Added the ability to check the slope of an area for object spawn rules
- Updated MP nametags to reposition themselves based on the height of the player
- Fixed a number of animal animation running twice
- Fixed a number of animals not playing their attack animations
- Fixed MP animations jerking funkily
- Fixed a bug causing clients to load resoures different in MP worlds than the server if the stone spawn frequency was altered

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! Follow development live on Twitch!

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

Check out the bug / suggestion tracker

Beta v 0.7.3.6

Big patch setup for tomorrow, a couple things need a closer look before I give it the go though, so here is a smaller patch addressing some recent performance problems, as well as some multi-player specific bugs that crept in over the past few patches.

v 0.7.3.6 2021.04.13
- Improved multi-threading of distant terrain generation
- Disabled an unneccesary physics check eating performance in single player
- Disabled player bound render probe causing performance drops for some players
- Fixed fish throwing errors in multiplayer
- Fixed player animation in multiplayer reverting to a constantly falling animation
- Fixed monoliths not unlocking properly in multiplayer

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! Follow development live on Twitch!

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

Check out the bug / suggestion tracker

Beta v 0.7.3.5

I've been working on an upgrade to resource scanners that ties into a lot of different systems including the map and resource node spawning. All in all it's been a difficult endeavor, but should generate a lot of benefit and I'm looking to improve the map quite a bit, performance wise, while I am it.

Taking a break from that today I answered a few bug reports and made some improvements to general monster AI as well as goblin dungeons. I ended up making the goblin dungeons pretty dark, darker than I had shown while streaming, but added much more prominent light sources with randomized color, so they should still be largely well-lit, with patches of darkness.



I've also gone through all of the building pieces and a lot of in-game decorations making sure that shaders and batching settings are set as they need to be to squeeze out better performance.

There was also a problem where running around the world zero, or any point where four terrain corners meet, would cause terrains to spawn and despawn due to the terrain occupied by the player changing in rapid succession. I fixed this problem a couple weeks ago, but the grass was actually still behaving this way causing lagg spikes. That should now be fixed in this patch as well reducing lagg spikes while running around in a set area such as the starting platform.

v 0.7.3.5 2021.04.06
- Improved a variety of shaders used by different objects
- Improved batching of building pieces
- Improved monster turning, stopping, tracking, and acceleration
- Darkened lighting in goblin dungeons
- Randomized color of torches in goblin dungeons
- Monsters killed will no longer block movement/skill target checks
- Fixed some pathing issues in goblin dungeons
- Fixed grass turning on and off around the starting area causing lag
- Fixed a missing material on standing torches
- Fixed scanners not being placeable in creative mode
- Fixed a bug that could reset game settings when creating a new world
- Fixed goblin dungeons being able to spawn staircases directly underneath staircases creating inaccessible routes

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! Follow development live on Twitch!

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

Check out the bug / suggestion tracker