[Question] Simulation CPU threads specifics - how many?

MrTwister

Well-Known Member
Joined
Apr 22, 2017
Messages
538
Likes
773
Points
505
Age
34
#1
Just a quick performance-related question regarding CPU thread handling done by the game.

How many parallel computation threads maximum does the game engine generate currently and/or is planned to generate in the future?
2-4-6-8? I am interested in endgame situations with multiple large techs and vast quantities of blocks and chunks in one area.

Just buying a new desktop machine for my sis and we are both fans of Terratech :), which is known to eat up all CPU it can get.
So just wondering if the game can use, or is planned to be upgraded to be able to use, 8 cores or more; or I can just stop at 6.

Looking to put a Core-i5 9600k at the moment, which is very fast, but is 6-core, unless the game can genuinely support more or will support at some point.

P.S. The question is to the developers.
 
Last edited:

Sdarks

PAYLOAD STUDIOS
Joined
Jun 13, 2018
Messages
200
Likes
366
Points
270
Age
25
#3
I should be able to answer some of these questions.

How many parallel computation threads maximum does the game engine generate currently and/or is planned to generate in the future?
2-4-6-8? I am interest
We don't exactly just decide "this game is going to use 2 cores of your machine". In general software creates threads (sometimes way more than you have cores on your machine) and the operating system decides which cores to run these threads on. I wouldn't be able to just pick a number and say "TerraTech runs on exactly 3 cores". In general though the more cores you have the better as games are becoming more and more multithreaded.

Looking to put a Core-i5 9600k at the moment, which is very fast, but is 6-core, unless the game can genuinely support more or will support at some point.
The i5 9600k is a good processor, I have an i7 9700k myself. It will be more than enough to run Terratech :)


So just wondering if this is current events, or a thing of the future and if Terratech is going to be engine-upgraded to benefit from all this.
This is an interesting one. The main part of what you've linked there is Unity's ECS (Entity Component System) implementation which is a type of Data Oriented Programming. Data Oriented programming is a completely different way of writing code, it means Unity is completely reworking how their engine works to support it (hence why it's currently only available in the latest versions and as a beta package) and it means (if you want to do it properly) completely rewriting your code in a completely different style. Basically we'd have to rewrite the entire game to get the most out of it.

However, lots of games are starting to be written in this style, a notable example being Overwatch which Blizzard wrote a custom ECS engine for and I can say that games coded in the ECS style are much easier to multithread so more likely to be able to make the most out of a CPU with more cores.

Hope that helps a bit :)
 
Likes: MrTwister

MrTwister

Well-Known Member
Joined
Apr 22, 2017
Messages
538
Likes
773
Points
505
Age
34
#4
I should be able to answer some of these questions.



We don't exactly just decide "this game is going to use 2 cores of your machine". In general software creates threads (sometimes way more than you have cores on your machine) and the operating system decides which cores to run these threads on. I wouldn't be able to just pick a number and say "TerraTech runs on exactly 3 cores". In general though the more cores you have the better as games are becoming more and more multithreaded.



The i5 9600k is a good processor, I have an i7 9700k myself. It will be more than enough to run Terratech :)




This is an interesting one. The main part of what you've linked there is Unity's ECS (Entity Component System) implementation which is a type of Data Oriented Programming. Data Oriented programming is a completely different way of writing code, it means Unity is completely reworking how their engine works to support it (hence why it's currently only available in the latest versions and as a beta package) and it means (if you want to do it properly) completely rewriting your code in a completely different style. Basically we'd have to rewrite the entire game to get the most out of it.

However, lots of games are starting to be written in this style, a notable example being Overwatch which Blizzard wrote a custom ECS engine for and I can say that games coded in the ECS style are much easier to multithread so more likely to be able to make the most out of a CPU with more cores.

Hope that helps a bit :)

I think I found a perfect chip for future TerraTech 2 when it comes :)

https://www.anandtech.com/show/1418...inum-9200-cpu-intels-biggest-cpu-package-ever
 
Likes: Aardvark123

Zorgomol

Not a Number
Joined
Apr 9, 2018
Messages
190
Likes
331
Points
270
#5
ECS is hardly a new thing, most of them being based more or less on the paper on how Dungeon Siege game engine was implemented, back in 2003. It isn't necessarily data oriented either, but can be implemented that way. That said, people are finally waking up to the fact that single-core performance has been incremental for a while, not exponential, and is unlikely to go up much anytime soon and to get more stuff happening in games means you have to make use of those cores. Not just two or three but all of them, even the hyperthread "cores" and the old-fashioned "game thread and render thread" approach is just not going to cut it as we are already seeing these days.

But it is a new thing for Unity and the guy who designed it engineered some frightfully fast stuff on PS2 and PS3, neither one an easy platform. Unlike before, you can now actually write some very fast stuff in Unity - but if you don't properly wrap your head around the Data Oriented thinking, it's only going to be slightly faster than before.