Desktop Tuesday: Steam Workshop



I bet it’s a bandwidth optimization on their side, I’m guessing they can figure out which files have changed and only upload diffs of those; that way patches are smaller when they come in and they don’t have to stream the whole thing over again to all players.


Agree as it makes the most sense. Thanks.


So I checked the biggest qb in the game, the ent, with 6mb. After zipping it went to 10kb. I’m impressed.


Yeah the qb have a load of compressible “white space” in them due the voxel nature which is evident if you open one in a text editor.


Yes, it’s still planned. Alas, they seem less related than we’d initially hoped.


Good to hear :slightly_smiling_face:

I won’t ask if macOS and Linux porting will run concurrently.


Hey. You have done a great job of developing the engine, adding appeal and other improvements.

But I have one question when you plan to optimize and solve problems with memory leaks, problems with AI with a population greater than 15, etc.

Could you tell us about the known problems on Tuesday and how and when will you fix them?


I think it’s something they always have somebody working on, I believe @Albert, but I could be wrong.


Slightly OT, but props to whoever came up with “Biolumin Essence”.


If ya watched the vid you likely heard the bit (starts around 6:20) that said they’d be pivoting to performance issues and bug fixing after this alpha push.

As for when they’ll get to it, I imagine it’ll be when they get to it. Soon™


I am SO EXCITED for multiplayer to release!! I’ve been sharing this video with all my friends to drum up some fellow Hearthlings when MP releases! Will your hearthlings interact with your friends’ hearthlings? Will they be able to help build or will combat be the only thing that both can do? Will your clerics be able to heal their hearthlings? Or will this be dependent on mod support and just the base MP provided? (I’m cool with that as long as I can get my hands on MP)


@max99x posted this wonderful story, The Chronicles of Emerald Overlook , about a recent experience. On the 23rd frame of his story he mentions helping one of the other devs build their structure after they joined his map.


I must say I am a bit worried when you say the engine will soon be “feature complete”. After all, you have one critical feature that has as bad UI as the old builder. That is the “Hearthling Therapist”. I think it requires a similar level of study as the builder UI, and creating something inspired by other games. For example Rimworld or Oxygen not included.

It is quite frankly, impossible to reason about what hearthlings will do next. You simply need to learn by heart how their priority works and arrange for work to be present in that order so your town moves forward.

Example of odd behaviors that you cannot foresee:

  • Turn of “job” for combat classes, great they will now help with hauling when not fighting… But why are they running away from combat?
  • Why will no one ever collect the berries even though they are starving? Oh, it’s because I promoted all my worker and no other class may harvest them.
  • The performance interactions… Why don’t my hearthlings do anything? Oh it’s because the CPU is overloaded and the game does not degrade in a graceful way.

I really hope you do a full overhaul of this. I don’t need to be able to control exactly what the hearthlings do, but I need to be able to UNDERSTAND why the don’t do this task. And preferably override it, if this is what blocks the progress of my town.

And please take this the best way possible. I think you have done an amazing job cleaning up old problem areas that never worked well enough. This is just the one remaining issue that I think need a large scale rework (or two, since I included how the game degrades when out of CPU).


Those are all valid problems, but they are content-related, and have nothing to do with the engine. The engine covers things like graphics rendering and multiplayer. If you read the Steam reviews, what most people are having an issue with at this point is the building editor. If you’ve been keeping up with the recent Desktop Tuesdays, you’ll know they’re on the cusp of releasing a new building editor. I think at this point Radiant can’t be accused of blurring priorities, they are definitely addressing the biggest pain point in the game. I’m certain that once that’s done, they’ll move on to address many of the issues you’re mentioning.


We may do a DT about performance, but not just yet. The primary problems at the moment are:

  • Entity AI. Hearthlings/monsters etc spend a lot of CPU time thinking about what to do next because they each have their own AI code. Maybe we could create central managers for some tasks so we do fewer redundant calculations. In game, you can think of this as hearthlings sharing insights about what to restock and how to get to things. The realistic truth, though, is that no matter how much we optimize performance, the more hearthlings you have, the more CPU you will consume. The game will eventually have a max # of hearthlings for performance reasons, based on modern CPUs. @max99x will be examining this.
  • Data sent from client/server. This mostly affects multiplayer, but we send a LOT of data between players, which creates lag when you’re playing with friends. Can we trim this down/send only diffs/compress the data? @ayazar and @linda have made a lot of progress here on a separate branch, but there’s always more to do.
  • Memory leaks. @Albert has been tracking these down for a while across multiple systems, and I also think he’s made a lot of recent progress here. A lot of them seem to do with region math, and so affect terrain, building, and water.
  • Stability/fault tolerance: for a long time, we’ve default to showing all the errors and hard-crashing the game whenever anything goes wrong, even when the game could theoretically recover, so that we’re sure to see the errors and fix them if necessary. This leads to some games becoming unplayable when they don’t actually need to be. After we get building and MP to a good state, we’ll work on these across the board.

Thanks for bringing this up! It sounds like understanding what actions each job enables, plus some performance cleanup, would go a long way to disambiguating what’s going on here. We’ve always wanted something far simpler than the rimworld AI, which is why we batched tasks by job in the first place, but I certainly agree that it’s very frustrating when hearthlings aren’t working and you don’t know why.


Hi @Moai - Are you seeing any memory leaks on the unstable build? I believe we tracked down and fixed the big one in Alpha 24.2.


I have not, but I have been using the rickety_building branch. Either way, I haven’t seen any leaks myself. I was replying to @Chymor who did appear to have some performance related issues.


If DT about performance comes in a few weeks or more its ok.

My point is that players need to see progress not only in a various content, but also in various types of fixes.
Such reviews of problems from developers “calms down” players who see that optimization and fixes are also given enough time :slight_smile:


That is understandable. The question is, what is the relation between the number of hearthlings and system resources usage. Algorithmic computational complexity and scalability. Something half-forgotten in my mind already starts mumbling about such horrible concepts as “cubic dependence” and “logarithmic dependence”


The way this will work is that for each Task, there will be a Project Leader. Reporting to the Project Leader will be Project Managers each of whom will oversee the work of Individual Contributors. Before a Task can begin, each Project Manager will call one or more meetings to determine the Sub-Project Plan. The Project Leader will then iteratively review all Sub-Project Plans and provide feedback to each Project Manager until the plan is approved. Finally, all Sub-Project Plans will be merged into the Master Plan. Each Project Manager will then review their dependencies on each of the other Sub-Project Plans and submit both a Gantt Chart and a Risk Analysis for Idle Hearthlings. After all cross-dependencies have been resolved and circular dependencies have been removed, the Task can begin.

In a nutshell, that’s why we need more CPU as the number of hearthlings increases. Hope this helps.