Engine Performance Improvements

Job scheduling is in C++.


I had 8gig ddr3 in my system and doubled it too 16g ddr3. Now i have 36 citizens on speed mode 2 without any real slowdown issues.

1 Like

Oh weird. So I guess I’m kinda baffled at how much of a performance hit the extra villagers are costing. Though I guess I’ve never actually played a comparable game (Dwarf Fortress’ UI is terrifying to behold), so I I wouldn’t be able to guess how much of a jump in processing cost there would be from having all the same things going on in a fully 3D setting vice informed properties locked to grid positions.

Job scheduling is in C++.

Then I’m baffled.

Would you mind taking a look at this:


…and telling me if tell me if Stonehearth’s job control/scheduling is comparable?

Thanks :slight_smile:

For a game with 42 hearthlings, when running at 3x speed, with no building, mining or anything happening (mostly just hauling, farming and patrolling); it jumps around a lot (a static screenshot won’t tell the whole story) but it’s about 50% “lua”, 10% “luagc”, 20% “astar”, 10% “bfs” (and some smaller stuff).

If LUA isn’t being used for path finding or job scheduling, I’d be curious to know what it is doing that’s taking a massive amount of time (more than what should be the 2 largest performance problems combined).

Note: The path finding (astar, and I assume bfs too?) is perfectly understandable (path finding is always expensive).

Well, the I stands for intelligence. Hearthlings don’t have any understanding of who to attack best, where to hide, no real sense of self-preservation, they drop things they are carrying on the spot when they are hungry, even if the food is in the same direction they were going in anyways.

Bottom line. Hearthlings are increadibly dumb. So yes, of course they have an AI, but you said it was super developed compared to other games an I disagree. It is pretty barebones and doesn’t justify the amounts of performance it eats.

almost sounds like a lemming :slight_smile:


My PC starts to slow down at like 25 hearthlings at x1 speed, the performance bar always shows 50% astar 50% bfs, I honestly haven’t a clue what either of those mean or if there is anything I can do to help.

Those are both used for pathfinding. Can’t really do much to help that but keep your towns small and not very complex I would say.

I did not say it was super developed compared to other games. I myself disagree with that. I was asking you what would be AI for you, but you did answer that, so I’ll reply:

They currently choose their target by a combination of its remaining health and how threatening it is. I find them all to be concentrating on one target, which is really awesome (at least while they’re in melee). Sure, when there are ranged units, it’s different, but part of the whole point of enemy ranged units is to break up your army by kiting them and picking them off one by one. That’s up to you, the player, to deal with. Hint: traps, spiked arrows.

Gotta agree with that one. They don’t really think ahead when they run away. That said…

…I’d say that their sense of self-preservation is TOO real. When you’re inches away from death, facing something stronger than you that wants you dead, I don’t think you’ll always have time to find the best path to escape – your primary objective is to get away as far as possible as quickly as possible, and 9 times out of 10, their panicked flailing does accomplish this.

True, it’s a bit annoying. But I wouldn’t say that this little thing is equivalent to “no real AI”. It’s just under-optimized AI. See my other replies in this thread about tuning code.

Would you rather have 80 hearthlings who flawlessly, performantly do nothing? Or do you want things like buildings, ranged combat, mining, enemies, quests, classes?..

SH team is 6 people. You can’t do everything at once with that small a team. Especially one without any previous projects as a team – they’ve all gotta get to know each other too. SH right now is a small, unpolished version of a much grander vision. The alternative would be super-optimized hearthlings who WOULD do everything without lag… were there anything for them to do, since everyone spent their time pre-optimizing hearthlings.

What Avairian said, also avoid doing work far away from all your hearthlings. The further they have to walk (and the more of them have to find their way there), the more you’ll see those two flare up.

1 Like

Exactly. The player has to manage, that’s the very opposite of AI.

This is not about where they run when getting slaughtered… this is about seeing enemies approach and continuing to do their farming or running at them not waiting for back up. Those are two serious indicators of lack of AI.

And yes, I know most of things CAN be addressed or changed. We are talking about the game as it is though, and not some potential future.

You seem to completely miss the point. I didn’t say that the hearthlings are horrible and I neither said the Ai needs to improve or become worse. What I said, and you completely ignore by asking me things like if I want unmoved statues instead of hearthlings, is that the AI is NOT sophisticated enough to justify the bad performance it causes. That was my point from the very beginning and I think I have given more than enough examples where the AI is very lackluster, while still eating my PC when I have 30 idiots, while I can run new AAA titles at decent graphics and good performance. So stop defending something that doesn’t deserve being defendet. I love Stoneearth, but that doesn’t mean I cannot point at obvious problems.

Alright. Yes, it is a problem. An obvious one. They’re working on it, so I don’t know why you’re pointing at it. Relevant post by Albert:

We’re not in the “optimization” phase yet of the current batch of alphas. I reiterate my advice: leave for a few months, if slow hearthlings are upsetting you. I’ve said what I wanted on this subject.

I was, like other people in this thread, stressing that performance is a major concern and therefore hopefully showing the devs that I would love performance updates sooner rather than later :slight_smile: