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
this is my configuration:
Intel Core i9 11900K (11th Gen Intel (R) Core (TM) i9-11900K @ 3.50GHz)
Ram 64 GB DDR4
NVIDIA GeForce RTX 3070 8GB dedicated
n.2 970 EVO NVMe M.2 SSD
what features must a computer have to run this game well on a large prison?
Let me repeat it for you: CPU
The answer will always be: CPU
The rest of your computer is almost meaningless, any system that isn't 10+ years old will crush the requirements in RAM and GPU, but even modern CPU struggle with AI and will always struggle with AI due to the actual physical limitations of how CPU function
It's as simple as realizing your CPU actually has a pretty low individual core speed, even an i7-7700k is going to outperform it in most games, especially an AI heavy game like this
If I need explain the difference between single core and multi core processing, that's a comp sci 101 topic of its own. Here's the simple summary:
When you make a game AI you really only have two choices, sequential or parallel. The problem with parallel is that if a decision gets made that doesn't make sense to the other simultaneous thread, everything breaks. With a complex decision chain the easiest programing method then is sequential, a chain of decisions that all get made based on everything that comes before it.
Unlike most games where only a couple hundred AI decisions are being made at once, Prison Architect makes each individual prisoner into a unique AI point that is constantly reevaluating its decisions based on every other prisoner and staff before it, on every cycle of decisions. That means every time anything in your game makes a decision, every other prisoner and staff responds to that decision, in sequence.
That's done on a single core, because there's no point in bouncing it to another core when it would just cause the first to wait for a decision to come back, multi-coring a sequential decision chain doesn't improve performance.
You only get a performance gain with parallel decisions, which don't work if those decisions need to be based on the decisions of other things it has to wait for (sequential)
You'll see these same hardware limits in games like Dwarf Fortress, Rimworld and anything where 100's if not thousands of individual entities are given their own decision making abilities and then basing them on every other decision that comes from every other decision maker.
And before you go off on a tangent about how many cores you have and how the game should be multithreaded: it is. But the only things it can parallel compute on another core are things that are not sequential decisions. Lighting, shadows, and processing that don't directly require a response from the AI are all being done on your other cores, their processing requirements are minimal. It's the same with a GPU, what's your GPU doing? Rendering graphics, the game doesn't have any intense graphics, once you meet the needs of how to display simple 2D images your GPU is going to sit idle and barely get warm.
But what if you keep adding AI decisions to the sequential chain? How many entities can one of your cores process in sequence? 100? 200? 1000?
A trash CPU might slow down at 200 to 500 prisoners. Even getting to 1000 requires at least a mid range single core performance, and that's what you have. A very middle of the road single core CPU performance.
You might have great multi-threading capability, too bad most games don't use more than 2 to 4 of your 16 cores and AI rarely uses more than 1. Prison Architect AI uses 1 core, it can't be changed to use more cores as those cores would still have to wait for all other decisions to be made by all other individual prisoners and staff before making its next decision.
This is a physical hardware limitation that has existed in computing since the invention of computers. Feel free to try and solve it and make billions of dollars.
In the mean time, game designers either lean into it and make games like this that scale with your hardware limits or they cheat and do group simulations.
Very few games attempt to even allow you to have this many individual entities that can "think" due to this limit. Your CPU can only handle a specific number of decisions before it has to slow down and wait to catch up, once you exceed whatever that limit is, it's going to feel slower (lag)
Most other games avoid this by using artificial caps, Prison Architect won't stop you from exceeding your limits. Some games simulate large numbers of people with either group batches (where huge groups are making the same decision) while Prison Architect lets each entity decide for itself. Other games use various split techniques, like Tropico where once an entity has made a choice (like visit X building) it's removed from the decision chain for a certain number of cycles while it sits in that building it can't change its mind until a timer runs out, this lets a CPU that might otherwise cap out at 1000 entities atempt to simulate a few thousand extra because it's not making decisions for most of them with each passing cycle as the majority are sitting in a building on a wait timer and it's processing only maybe a tenth of the population at a time (and on top of that it has a sliding soft cap of 2000 to 10,000 and will still cripple a low end CPU even with the pause cap design) where as Prison Architect never takes a prisoner/staff out of cycle, so there's no decisions being skipped.
We could examine every game one by one, it might take a few years.
The bottom line is simple, any game that is sequential AI that allows all of the individual entities to make on-the-fly decision changes in response to every other entity is going to be extremely heavy on single core performance, no matter how many other cores it uses for non-AI processes.
I summarized all of that in my original post:
This isn't something that can just be optimized away. It could have in theory been designed different, but at this point that require writing an entirely new engine (building a new game from scratch, this was a custom engine) and the actual design of how to "avoid" this hardware limitation would need to be decided during that redesign.
But since it's a hardware limitation that no one has actually been able to avoid in the last 40 years, there's only so many design choices that could be made to attempt doing that and most of them come with their own drawbacks.
The original designer wanted to allow you to have as many prisoners as your CPU could handle so he didn't put in a cap. He wanted those AI to all respond to each other, so he didn't put in group decision making and he wanted all decisions to effect all other decisions so there's no entity being paused out while others continue to function.
Name any other game with this many or more entities and they've chosen to use one of those copouts or some other limitation of their own design to avoid the single core computing constraint of sequential AI decisions.
---
And don't think the industry as a whole doesn't look at how hardware limits effect design. The very fact that GPU exist is due to these types of limits, it was discovered and decided long ago that if you branched off GPU processing to its own processing unit you could free up cycles on the main CPU for better performance, thus the majority of your visual processing is done "in its own threads" on an entirely different add on card with its own processing unit (it's why you have GPU, at all)
Imagine a world where you could have a separate process (thread) running for each type of processing, you could have a physics core, a sound core, a networking core, a graphics core, you can chain out parallel decisions to as many other processing units as you want. In fact all of these have been experimented with over the years, but the only one that remains a mainstream separate processor are GPU. The rest have mostly become novelty or obsolete by the fact that modern CPU have so many cores that those cores can be tasked to do those functions without being on separate add on cards.
Thus the world of modern multithreading where as much "other" processing is done on other cores as possible, why? To free up your primary single core, to do what?
Well, that depends on what you are running, but with games it's generally going to be the AI, since everything else is already being handled by your GPU or some other core thread.
Now show me a game with 1000 individual entities that all act in sequence and I'll show you a game that relies on your best single core performance.
---
If you need me to explain how hardware actually functions, I can, but that's another 100 pages and requires you understand how circuits work.
If you need me to compare and contrast with other game designs, please actually note which games you want compared or we can sit here and look at how 1000's of other games over the last 5 decades have had to cope with this hardware limit in one way or another.
the Devs never spent time to do a Multicore Support. This Game has plenty of ways how to split the CPU load, like core 1 makes the inmates calculations, core 2 the staff calculations
and so on.
Before some1 says now "nah not possible blabla"
YES IT IS .. Devs and Whiteknights talked same at Rimworld not possible blabla, surprise, modders made actually Multicore support by Splitting the Calculations and forcind them into different Cores, and Surprise, from 21 FPS Rimworld at a ultra large map, to over 120FPS at the same Map ...
btw same worked in Simairport and many other of those "CPU" heavy Games the same way.
It's the AI that can't be split and that's an engine limitation
What you might be confused about is that rimworld had no multi core to begin with, adding it offloaded what it could to other cores. It's also built in an engine that had multicore, and didn't bother to use it, so it was a matter of turning it on.
It's already turned on here but has limits to what can be split
You're very passionate about something you don't actually understand much about
rimworld uses unity
PA uses C++ Custom Engine
Using a Custom Engine special with C++ makes it easy to split tasks into multi core
Just an sample
it would be possible to split Guards into one core
Low sec into one
med sec
and so on
and all you need is one core for the auto sec status
at a custom engine you can group up tasks and force them to use differenct cores if available
a strong single core cpu like the 7700k outperfoms a strong multicore cpu like the 3700x this clearly shows the game
A does not support multi core
or
B is realy bad optimised
Thank you for showing that you did not understand anything.
The sequential AI in this game allows every entity to respond to the actions of every other entity, that means no AI makes a decision until every other AI has made a decision. Once all entities have made a decision, the cycle starts over again.
It makes no difference if you split some onto another core: that core will have to wait for the others to finish anyway.
This is the sequential AI dilemma.
Parallels in AI decision making would have some entities making decisions at the same time as another, this becomes a problem as they no longer react to immediate changes.
Many games respond to these limitations by either limiting the number of individual AI that can be active or by making "groups" that all act the same or it's just not as big an issue if the game has groups that can act independent and don't need to see/respond to simultaneous behaviors.
C it shows you didn't actually understand what was explained. Everything that isn't AI relegated is multi-core and shifted to the other cores, it's just the game is so lightweight that none of that stuff is taxing on the CPU. Do you think this game is graphics heavy? Do you think the simple shadows make a huge difference by being on another core? Other than AI this game simply doesn't have a large CPU load. Regardless, that load was shifted to the other cores during alpha, and it did improve performance a teeny tiny bit.
But what's left on the main core is AI, because the AI design is sequential, because the game was designed intentionally for every entity to respond to every action of every other entity on every single decision. Individual AI all making decisions in sequence does not get split over multiple cores.
Go ahead, show me you don't grasp this by repeating yourself again.
https://forums.introversion.co.uk/viewtopic.php?f=42&t=50378&p=575040&hilit=multicore#p575040
https://forums.introversion.co.uk/viewtopic.php?f=42&t=50723&p=576796&hilit=multicore#top
https://forums.introversion.co.uk/viewtopic.php?f=42&t=59368&p=603832&hilit=multicore#p603832
https://forums.introversion.co.uk/search.php?st=0&sk=t&sd=d&sr=posts&keywords=multicore&fid%5B%5D=42
Or feel free to watch the dozens of vidoes introversion made while building the game
https://www.youtube.com/user/IVSoftware/search?query=prison%20architect%20
Here's one for example
https://www.youtube.com/watch?v=vIx92W6Q3dk
https://forums.introversion.co.uk/viewtopic.php?f=17&t=46032
Listen to the video, they considered 300 entities (that's prisoners and staff included) to be "ginormous"
I'd really love for you to show me a Rimworld colony where you exceed that number into the 1000+ range and still pretend your comparison is relevent