Can not find out why the game is in low FPS

#1


With normal game speed or two time speed, fps is 10~15 and all resources are underutilized.
When pause, fps is 30 and resource usage is almost the same as above.
PS: there are 26 citizens in my world.And I’m already using low quality.
Need help for any suggestion to improve fps ?Thanks a lot

#2

look at use per core, you should find a single core at max usage
the game does not run smooth no matter the hardware

#3

My $20, second hand computer with tech that was only middle-shelf when it was new (and that was 5 years ago… yes, really!) begs to differ with you @nightlancer.

There are a TON of factors which can influence the performance of a game, and Stonehearth is sadly at risk to more of them than most other games are… but that doesn’t mean it’s impossible (or even hard, really) to get good performance and stability.

The first thing to take into account is the fact that Stonehearth is built to run off a single thread. This means a few things, but the most basic one is that a top-of-the-line “gaming rig” with heaps of processors and multiple graphics cards offers basically no advantage over a well-built “office spec” computer. While modern gaming PCs are built to take advantage of multi-threading and up-to-date hardware, most games are built to use hardware features which are common to a wide group of players, not just “specialised gaming PCs”… so a PC which defaults to spreading its workload over as many cores as possible and handing off as many calculations to GPU and RAM as possible is going to have a nightmare of a time running Stonehearth, since so much of the game is handled directly within a single thread of the CPU.

Many people are saying this is a poor design choice; but given that the game literally does not work when it’s split across multiple threads (this is, like, the biggest area that game developers are working to optimise; being able to pass data across multiple threads seamlessly without delays would be the holy grail of development progress), it’s kind of a moot point… what we CAN usefully take away from that info, though, is that a PC designed without large numbers of cores in mind can actually handle the game better than a supposedly “beefier” gaming rig. It all comes down to how those cores are used, how quickly they talk to the rest of the computer, how quickly the HDD/SSD (the latter being a much better choice here, which is clearly stated in the game’s system requirements) can read and write data, how quickly data can be passed to and from the GPU…

Think of it this way: current PCs are a highway with many lanes, whereas slightly older PCs have a single lane. Both highways have the same speed limit (actually the speed limit on the multi-lane highway is theoretically higher); but the key difference is that traffic on the multi-lane highway has to change lanes in order to use the on and off ramps; whereas the single-lane highway has on and off ramps built to allow entry/exit without disrupting the flow of traffic. If you’ve ever seen what happens to traffic when people are constantly changing lanes and merging in/out of the highway… yeah, that’s how traffic jams form. And it’s exactly the same thing with game data – the more that the data has to be called up by a different thread, the more it gets held up in traffic rather than being able to continue straight through. And that is why, in turn, a single-lane road running parallel to a multi-lane road will often be the faster route during high-traffic periods than the multi-lane route.

So, how do we take that analogy and use it to make Stonehearth run better and smoother? Well, for starters, the on and off ramps are the most important part of the story – if they’re built well, they don’t slow traffic; but if they’re built poorly then traffic gets slowed down regardless of how many lanes there are. In this analogy, there are on and off ramps connecting between the CPU, HDD/SSD, GPU, and RAM. In other words, having fast RAM and SSD makes a big improvement over having “big” (lots of storage) hardware with a slow read/write speed. When it comes to the GPU/graphics card (and there can be a difference based on how they’re set up! All graphics cards have a GPU, but not all GPUs are a graphics card), all modern GPUs are built to have high “throughput” (amount of traffic) anyway but the software that translates this throughput and works with it to do calculations is where traffic can get held up instead. When it comes to graphics cards, having efficient software is more important than having lots of space/memory to use. People assume that bigger is better; but newer graphics cards aren’t always as smooth or fast as they claim to be and the newer you get, the less compatability work has been done.

This is why my “not very good” PC is able to run Stonehearth stably and with consistent FPS – it’s built to get the most out of its main thread (it’s a quad-core, but it’s mostly used to run games from before multi-core processors were commercially available, so I made sure to use a processor which was built with that older software taken into account), the HDD was chosen for its read/write speed over its storage capacity, and the same with the RAM. The graphics card is an Nvidia750 TI, which surprises a lot of people… until they look up the difference that the “TI” part makes – it runs at a higher voltage so it can have much faster through-put than the rest of the 750 family, and it’s roughly on par with a 1060 when only a single thread is in use. And that’s the thing about current generation graphics cards – they’re all based around multi-threading; and while that’s super useful for all the post-processing effects in FPS’s and such which can afford to split their graphics processing into many threads, it doesn’t work so well when the things to be rendered have to get information from multiple sources on every rendering pass (again, multi-lane highway with people changing lanes to get on and off vs single lane with accommodating on/off ramps built to not disrupt traffic.)

So, from a hardware standpoint, that’s how my PC manages to run Stonehearth pretty well. However, that’s only half the story.

On the software side: I’ve made sure my graphics drivers are up to date (and the nice thing is that there’s compatability patches to keep my graphics card playing nicely with newer software), I’ve made sure my processor and graphics card aren’t trying to do a bunch of tasks in the background, and my computer’s BIOS is set up such that it takes maximum advantage of the read/write speeds of my various hardware.

On top of that, there’s a whole level of how I play the game to reduce extra work it doesn’t need to do. I’ve been a fan of simulation games for as long as I’ve been playing video games; and in that time I’ve learned a lot of tricks to make things happen more quickly and also make less work for the game figuring out what I’m doing… I won’t repeat all that info here (I’ve said it dozens of times recently, and besides this reply is already too long hahaha!); but I will give you the highlights reel:

  1. never do more tasks than you actually need to at the moment. Sounds obvious, right? But almost everyone’s first action upon starting a new game is to clear-cut half a forest, or mine out a bunch of rooms for a mountain fortress at once… And then, create massive storage areas and expect all the products to be hauled quickly. Another common one is over-farming food (trapping, harvesting berry bushes and so on are all included here.) Every item on the ground is another item for the game to keep track of, i.e. another car on that highway. If you don’t need all those cars on the highway, why put them there? They travel extremely quickly so there’s no point making them wait in line to begin with. In other words: don’t order the whole forest to be harvested at once; harvest a small patch and use up that wood before starting an order to harvest another patch… that way, all the calculations for those small orders can travel at full speed rather than having to deal with traffic.

  2. Speaking of travelling quickly; your hearthlings don’t, really. Watch them in-game doing a complex task like building or making a complicated item… most of the time they spend walking, right? Well, as a player you can design their town so that they don’t have to walk around much at all, and if you do so you’ll be amazed how much smoother everything goes. There’s multiple factors at play, but long story short, you’re not just making tasks happen faster because of reduced waiting time… you literally reduce the amount of work the computer has to do too! Pathfinding calculations are some of – or possibly THE – most expensive calculations the game has to do. So, if you cut down on those instances you free up even more space on our highway analogy – if a hunk of stone laying on the ground is a car, then the job for a hearthling going to pick it up is a freight truck with a trailer; and the task of taking that rock to a work site means that truck has to change lanes to take the exit, drop off its load, then merge back onto the highway so it can get to the next destination. The key to avoiding this is to build your in-game town with storage areas related to nearby workstations (e.g. keep farms and kitchens close together with food storage for raw food between them, and storage for cooked food between the kitchen and dining room); and if you know you’ll need a lot of a material in some place (e.g. you need a lot of stone for building a castle) then move the material near where it’s needed before starting the job. Using the castle example, I would build a few input bins and wait until they’re filled before starting construction; and I would make sure I have at least as much stone going into those bins as is coming out of it once construction starts (i.e. make sure there are more hearthlings/golems hauling than are building.) That way, the builders never run out of nearby stone to use, so they only ever have to walk around the building site; not like halfway across town to collect stone from storage or worse where it fell when I mined it.

  3. Lighting, and more importantly shadows, interact with everything nearby – so again, if a chunk of stone is a car on our highway analogy then a lamp can be anything from a large car to a truck with multiple trailers (depending on how many other items’ data it interacts with)… but even worse, all those items will be moving together at the same time towards the GPU off-ramp every time the lighting updates. So, if you plan to play with a lot of lights or shadows on then you need to keep space on the highway for those convoys, e.g. you know that every nightfall and morning the lights will turn on/off so it’s probably not a good idea to issue new orders then; wait a few moments and give out those orders when your computer isn’t already busy figuring out where every shadow and pool of light should be. There are various graphics and gameplay settings to do with lights, and these are all trade-offs you can consciously make to support the way you like to play. I personally like to look at my city with lights and such; but when I’m in the middle of heavy construction I might turn the lighting down/off while the game figures out the construction; I’ll turn them on when I’m done so I can enjoy the buildings properly sooner.

  4. AI brains are another expensive thing for the game to calculate, so again, any time you can cut down on the amount (without sacrificing how you want to play the game) it’s a worthwhile trade-off. For example, there’s no need for lots of livestock if they’re not really doing anything; and having lots of enemies around your town can draw processing power away from things you’d prefer the computer to work on. I play with enemies enabled but I constantly send out patrols to keep their numbers down – not only does it help keep my game running smoothly, it means more chances to level up any new recruits so that I don’t need as large of an army to defend my town when I choose to take on the gongs/Ogo/etc. And, once again, I make sure to send those patrols in the late morning once the shadow calculations are figured out; and to clear up the loot before sending another patrol out to a different camp.

  5. Water is another thing that can be difficult to calculate, however, this one’s tricky because there’s nothing you can really do as far as using less/more of it – either you interact with it, or you don’t. 2 things you can do, though: try to make any changes gradually, and always let water settle before making another change to it. Don’t mine around flowing water, don’t merge several water sources/multiple bodies of water at once, keep the number of drystones and wetstones connected to a single body of water to a minimum; and again try not to do other “big”/expensive tasks at the same time as processing a task with water.

By putting those tips together – break big tasks into small steps, keep resources where they’re needed + allow hauling to happen before using the resources so there’s less walking for everyone, and generally keep the town tidy… well, when I play that way I can run 30-33 hearthlings (depending also on map complexity, number of buildings and items, that sort of thing) without lag and without compromising how I like to play; when I play “messily” I start getting stuttering at 26 hearthlings. By fully optimising how I play (e.g. no lights, no messing with water, everyone living in a simple cave base with a single giant room that’s got everything in it), I’ve been able to run 40 hearthlings on otherwise maximum “vanilla” settings, and that was before the final round of optimisations released in December last year.

So, there’s a LOT of factors which impact how well Stonehearth runs on any given PC. Some are easy to control, others require technical knowledge of how your PC operates, and some are outside most players’ control… but it’s not true to say that the game “doesn’t run smooth no matter the hardware.”

I keep posting these kinds of replies (not in this much length/detail though LOL!), rarely in these forums but commonly in the Steam forums, and I’m always amazed how many people start out by posting “the game runs bad on my [insert supposedly amazing PC build here] why is it made so badly?” and then, once someone stops by to help them and explain how they can have the game run more smoothly, they reveal that the whole time they’ve been pushing their computer to its limits for no good reason (i.e. with easily avoidable situations) and they’ve never put 2 and 2 together that making all this extra work for the computer is naturally going to impact how well the game performs. As I’ve said many times in many slight variations: if there’s a way you can simplify the job, why would you expect the hearthlings (and by extension the computer that runs those hearthlings) to do everything quickly when they have to start out by trying to figure out how to simplify the jobs you gave them? And, on top of that, as a human player we’re much better at simplifying tasks down to their steps than a computer will be in the foreseeable future…

Honestly, there are times I wonder how differently Stonehearth’s development would have gone if every player understood these ideas and played with them in mind? I suspect we’d have a lot less complaints about “poor optimisations” and more people trying to explore the power that Stonehearth has which is lacking from other games in the genre (I mean, compare Stonehearth to the generation of games before it like Towns, Gnomoria or such, and there’s a marked improvement in how much the game is able to automate/quietly handle behind the scenes without making crazy/un-intuitive decisions); less people wanting the game to make decisions for them and more people taking advantage of the many decisions they can control to build unique towns… and I reckon that in turn would lead to more people loving the game in the way that some of us do now; the players among us who build massive structures and towns for the joy of watching it all click together as opposed to those who build such massive structures or towns while wrestling with the game the whole way.

1 Like
#4

I stay by my comment of the game not running smooth no matter the hardware
stonehearth isn’t an efficient game
it would be interesting to know if a higher graphic quality setting affects how the game runs for silver47gin mainly fps numbers
i run it on a beastly laptop(8700k and 1080) and it still isn’t smooth (after about 30 minutes of playing) when there is only farming, hardly any hauling and most crafting work finished

#5

again… “beastly” doesn’t always mean “efficient” either. Your laptop should theoretically be great at multitasking computations, but it’s a laptop, so there’s no way it will compete with a well-built monotasking PC (the key to effective mono-task processing is high threadwidth rather than lots of threads; and that requires high power usage and powerful cooling systems… two areas that laptops simply can’t compete with a PC in right now.) And as I’ve mentioned, Stonehearth is mostly built on monotasking rather than multitasking/multi-threading.

Stonehearth doesn’t run well on your laptop, that doesn’t mean it can’t run well.

And, as I’ve mentioned already, if the problem is keeping up with all of the calculations to be made then no, there shouldn’t be much change between min and max graphics settings. There IS a major performance difference between those settings; but most players seem to bottleneck long before that point anyway.

#6

Thanks for explaining in such detail. Not familiar with game programming. Maybe it’s time for me to learn multi-thread model.
After searching on google, realize it’s hard to design a game according to a multi-thread model since the global variable lock and intensive I/O operations. Many games which I thought is using multi actually use single like rimworld. However, still confused about the architecture of stonehearth. I mean how modules/engines work together in this game.
btw, stonehearth is really interesting, if I have to buy a new PC, is there any recommended CPU or how much frequency is enough?

1 Like
#7

I am using dual E5 cpu 2.1Ghz per core. Maybe this causes my problem.Thanks for reply

#8

I’m glad you’re taking the time to learn – when you understand how the game works, you can do much more interesting things with it, and thus have a lot more fun! :slight_smile:

Stonehearth runs mostly from a single thread, using a single core. There are other threads used for some things (and I believe that in multiplayer games there’s one thread for the server and one for the client); but generally, that one main thread is handling everything important. As you say, the I/O operations are the main consideration for this, and many games which seem to take advantage of multi-coring are actually still doing everything important in just 1 thread while the stuff happening in other threads is usually not strictly necessary for the game to run (or sometimes it’s pre-loading or computing something that will be called in the main thread later; this is one of the few current uses of multi-core operations that can actually improve the performance of simulation-heavy games.)

If you are looking to build a PC optimised to run Stonehearth, there’s some good news and bad news: the good news is that you don’t necessarily need expensive components, the bad news is that the components you want can be hard to find or not available new anymore. What you want to look for are:

  • a CPU with a high clock rate/MHz. Number of cores doesn’t matter, I’d aim for a quad-core since that tech is really stable now and should still be available. I’m using a high-end Intel i5 quad-core processor from about 7-8 years ago, no overclocking or anything fancy like that (it’s actually completely “stock”) but it was specifically built with a high I/O capacity in mind. That’s the key thing to look for.

  • with RAM it’s the same deal – working speed is more important than capacity. Of course more RAM is a good thing; but if you have the choice between, say, 32gb running at 1600MHz or 16gb running at 2400MHz, take the 2400 MHz every time (this doesn’t just apply for Stonehearth, by the way; it’s good advice for any game. It doesn’t matter how much RAM you have if reading the data on it takes as long as the computation does in the first place.)

  • for storage, again, speed is king. A solid state drive with the highest possible read/write rate is your best bet, this is probably one area where it will pay to go with cutting-edge tech over tried-and-true tech from the previous generation.

  • for GPU, there are 2 factors to consider. The first, as always, is clock rate rather than memory size – a small, fast brain is better for this job than a big, slower brain. However, it’s also important to make sure that your GPU is as compatible as possible as it can be with your CPU; since the amount of time it takes for these two components to “talk to each other” will have an effect on both visual quality and performance. It’s a good idea to go with a GPU from the same manufacturer as the CPU, and this is where closely comparing the specs for those alternatives (and weighing the pros and cons of different pairings – e.g. “does this GPU go better with this CPU, even though the other CPU on its own has slightly better performance?”) becomes important.

Before building a new PC though, you should absolutely take a look at the options with your current one. It’s possible to “tune” most PCs for different conditions; so you may well be able to squeeze more out of your existing processor or GPU with the right settings. Your current processor isn’t exactly slow, but it’s not exactly as fast as it could be either (I believe mine is 2.4Ghz or around that) and I’m not even up to date with the theoretical speeds for current generation processors. Another common trick in modern PC builds is to keep a small, very fast SSD for the operating system but use an older/traditional and very stable HDD for your games; however, if you have that “operating system and essentials” SSD and can fit Stonehearth onto it then that should make a marked improvement in performance (otherwise, you could invest in a fast SSD for use with games that have a lot of simulation to handle.) Check that your existing RAM has a high clock rate, and if it doesn’t, consider replacing it with faster RAM; sadly you can’t effectively mix RAM of different clock rates so it’s either replace the entire amount or stick with your current selection (simply adding more isn’t likely to help, and if you already have fast RAM then it’s probably not causing a bottleneck anyway.)

Like I said before though, my PC is second-hand and cost virtually nothing; of course there’s more to that story* but the point of it is that having that understanding of what you want the PC to do is more important than anything else. There’s an old adage about computers that’s said “garbage in, garbage out”, it usually applies to programming but really it’s true for any kind of design project (whether you’re designing a computer, a game for a computer, an IRL product or whatever.)

And, like I mentioned above, it’s more than just hardware – there’s software considerations (mostly compatability between software you’re running and the hardware; which operating system you’re using can also have an impact), and how you choose to play the game can also have a massive impact on its performance.

Before doing anything about changing your computer, actually, I’d suggest you go through those tips I listed in my other post about reducing the amount of work your PC has to do. If you focus on just a couple of hearthlings and try to set them up in a “perfect” working environment where they never waste time on unnecessary work (e.g. no running around cleaning up hundreds of items, no harvesting food only for it to rot, no walking across town just to find somewhere to sit and eat/sleep, etc.) then you’ll learn a LOT about how to run an “optimal” town, even if you don’t need to micro-manage to achieve that. In fact, learning how to optimise your town allows you to move further away from micro-management in the long run, so you can focus more on the big picture and watch your workers move like clockwork as you focus on the challenges you could never even tackle before.

As far as Stonehearth’s architecture: there’s the main engine which runs the game “in the background”, this operates as both a server and a client at the same time (meaning that the whole game is technically a multiplayer game, when you play singleplayer it’s just a local client and host with the data staying inside your PC.) The engine reads the modules in order to run them within the game, so effectively the engine does all the work and the modules tell it what to do, when to do it, and sometimes how to do it (or at least making decisions about what can and can’t happen right now.) It’s a lot like your relationship as a player with the Hearthlings, really! Just like how you as a player can decide when and where tasks will happen so you can set limits or work to prevent problems (e.g. "I know I’m going to send miners to collect that gold vein later, so I should make storage now but keep it un-filled and I should send soldiers to clear out any enemies between my town and the mountains before I send the miners out); content modules can set up or prevent certain events and work in a certain order so that the game runs smoothly. Some of the mods available will accidentally disrupt that order or will add in such a large amount of content that it can’t fit neatly into the existing order (for example, the Glassworks mod adds so many new items that most players experience a little bit of UI lag when they open the glassmith’s crafting menu); but on the other hand, some mods (like ACE) are able to improve the flow of events so that they prevent lag or at least severely reduce it. Technically even the base Stonehearth game is built as a mod for the engine to run, and the mods like Rayya’s Children and Northern Alliance that ship with the game are identical; they simply override some of the base game content while adding some unique content too. That’s also why ACE is able to be a mod which is “included by default”, it’s built exactly the same way as the base game and RC/NA kingdoms. So, Stonehearth’s architecture is very modular when it comes to content; and the engine runs in the background to bring that content to life.

*short version of that story: my Dad worked in IT at the time so he took advantage of good deals when they were available; my computer was built out of spare parts and the cannibalised leftovers from gaming computers that he repaired/replaced for other people… he was smart about letting people “trade in” a computer he was replacing in return for a discount, which was basically taking the value of any re-usable parts out of the price of his work hahah. That’s why I know the parts used are built for specific jobs, I worked with him to design a computer for my needs/wants rather than just “the biggest and the bestest available!”

#9

the current intel cpu’s max out at about 5 ghz single core
i think around 4ghz all core on the lga115x and 3,5 - 4 on the lga2066
this is the maximum clockspeed not what you may achieve in real life
intel has shown a 28 core cpu run at 5 ghz all core during ces( or a similar show) with an extreme coling solution

amd maxes out at 4-4,5 ghz
when the new ryzen cpu’s come out they should achieve similar clockspeeds as intel if the rumors are correct