Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
The problem is that I think at high population, even "only" a X10 speed will cause issues as it seems the AI doesn't have time to finish assigning all jobs and doing all possible pathing calculations for each "round" before the next one starts.
I'm guessing that's the reason why a lot of people run into problems where people just stop working entirely and iddle for no apparent reason, and why they all start working again if you exit/restart the game and then play it at a lower speed.
The modkit itself lets you go up to higher speed (x25?) for the purpose of testing things, but it is not really meant to play a whole developped town with super high population either, and I'm not sure how it would hold up against the AI confusion if you tried.
It is probably much more compicated and I may said something stupid, but it's just an idea.
It is indeed the CPU which is the choke point for Banished. If a program sees performance losses, you can be fairly sure one of the two, though with video games it can be GPU/graphics RAM instead of CPU/system RAM, it's also still core time/memory space when it is ththe graphics card that is the issue. I highly doubt it is the graphics side which is the problem but hey, I could be wrong.
During gameplay, the banished client never really grows in size in RAM. Whether 10 settlers or 1,000, whether you have the initial crate to start or a fully developed city, the client is the same size in the memory. I'd imagine it isn't EXACTLY the same size but it doesn't grow substantially. Memory is not the issue and more memory could be used to store data instead of re-computing it. That's where the trade-off comes in.
AI is hard, in the computer science use of the word. It takes a lot of time. But you can do a couple of things to make AI run faster. Heuristics, which are low-computation estimates such that horrible paths aren't explored very long. There's also storing future paths, but I think the biggest problem the guys in Banished are probably running across is just having a city which synergizes at all. Each settler needs its own AI to maintain stuff like food, tools, coats, firewood in the house, showing up to work, etc. But how does each settler get their job in the first place?
If you just arbitrarily assign one dude from anywhere, there's a decent enough chance he'll have to turn around and walk home before he gets to his job. So you want to assign the nearest settler possible to keep walk time down. But each settler nearby has a job already. So, since settlers are relatively stationary in their lodgings, each time the whole job profile changes, including a newly adulted laborer, or you shift 30 around, the job assigner has to attempt to minimize the paths for *all* of your settlers. In a town over a thousand, you'll get reassignments constantly.
There's dozens of ways to make guesses as what the shortest will be, but to find THE best path is legitimately impossible on a home computer with more than a thousand settlers. Heck it's probably more than a hundred for anything still resembling a video game. So they have to accept an optimal solution rather than the perfect solution. But that kind of stuff, the programmers have already dealt with, guaranteed. I'm just explaining where I'm pretty sure the problem's coming from.
Store more data, compute the data fewer times. When you run a path search, run it once and only once, store the path, have the settler use the path. When you have new homes built, run the pathing searches to every job site, and throw away the unreasonably long. If you need to find them again later you can make a way to do that but cutting all the things out which you can be pretty sure of will improve CPU use. Two "towns" in opposite corners of a large map do not need to have much contact, besides vendors and traders, so there's no need to search any search spaces which have crossover settlers.
All of this is, of course, easier said than done, and to find a working solution to those problems is the dream of many an AI programmer.