Jump to content

DST and CPU scaling


Recommended Posts

I got a question and want to ask the community about their experiences with DST and different kinds of processors. What tends to works better, a CPU with fewer cores (let's say two) running at a higher frequency or a CPU with more cores albeit at a comparably lower frequency? Is DST good at utilizing many cores?

For those who have been able to to compare Intel processors; does Hyper-threading have a big impact on DST? For those who have been able to compare AMD processors; does Simultaneus Multi-Threading have a big impact on DST?

I don't know how well DST can utilize these technologies, but it would be nice to know if they make any significant difference for CPU's with the same number of cores at similar frequencies.

The usage scenario that I'm thinking about is running a non-dedicated game with 2 shards (surface + caves) and 5-6 players.

It would be very interesting to know how well DST runs on AMD's new Ryzen processors also, if anyone can chime in on that.

A quote from the wiki (http://dontstarve.wikia.com/wiki/Lua):

Quote

"Lua is a lightweight scripting language that is used by the game engine which runs Don't Starve. The core game is written in C++, although all game prefabs and modifications for the game are written in Lua. Lua is free to download, and is released under the MIT license. To learn more about Lua, visit the official website at Lua.org. This typed scripting language is compact enough to fit on a variety of platforms. It supports only a small number of  data structures such as boolean values, numbers, and strings. Lua implements a small set of advanced features such as first-class functions, garbage collection, closures, proper tail calls, coercion (automatic conversion between string and number values at run time), coroutines (cooperative multitasking) and dynamic module loading."

According to this text it sounds like DST could benefit fairly from multiple cores. However, the wiki article might be outdated (I assume that DST received a moderate number of tweaks and modifications upon its conception) and it is always relevant to hear about the first-hand experiences from the users. Cheers. :D

Link to comment
Share on other sites

  • Developer

Very much not a multi-core friendly game. We have some stuff shunted off to other threads, and caves/overworld use different processes, but each world's lua is a single thread of execution that cannot benefit from a second core

Link to comment
Share on other sites

54 minutes ago, nome said:

Very much not a multi-core friendly game. We have some stuff shunted off to other threads, and caves/overworld use different processes, but each world's lua is a single thread of execution that cannot benefit from a second core

Since we are talking about threading, one technical question: What you guys use for threading? SDL's own threading functions; C++'s thread class(assuming the game was written in C++11 or above.); or another API entirely?

Link to comment
Share on other sites

18 hours ago, nome said:

Very much not a multi-core friendly game. We have some stuff shunted off to other threads, and caves/overworld use different processes, but each world's lua is a single thread of execution that cannot benefit from a second core

Huh, cool. So a quad-core could run say, DS, Caves, alternate DS, alternate Caves?

Link to comment
Share on other sites

  • Developer
37 minutes ago, Sudura2017 said:

Huh, cool. So a quad-core could run say, DS, Caves, alternate DS, alternate Caves?

Yeah, should be able to, but you'd probably want to have the client running on a different machine.

Link to comment
Share on other sites

9 minutes ago, nome said:

That's correct.

Dang. No nome like?

 

How about for a Potato Cup? Uh... a spiritual potato cup?

 

<there should be one here but it disappears on submit>

 

 

does it work now 

 

EDIT: wow, this worked.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...