• We have updated our Community Code of Conduct. Please read through the new rules for the forum that are an integral part of Paradox Interactive’s User Agreement.

Gatkramp

Kommandant
117 Badges
Jan 9, 2008
872
158
  • Victoria 2: A House Divided
  • Lost Empire - Immortals
  • Magicka
  • Majesty 2
  • March of the Eagles
  • Europa Universalis III Complete
  • Europa Universalis IV: Res Publica
  • Victoria: Revolutions
  • Europa Universalis: Rome
  • Semper Fi
  • Sengoku
  • Europa Universalis IV: Mare Nostrum
  • Europa Universalis IV: Cossacks
  • Europa Universalis III Complete
  • Victoria 2: Heart of Darkness
  • Rome: Vae Victis
  • Pillars of Eternity
  • War of the Vikings
  • 200k Club
  • 500k Club
  • Pride of Nations
  • Cities: Skylines Deluxe Edition
  • Crusader Kings II: Holy Knight (pre-order)
  • Europa Universalis IV: Pre-order
  • Stellaris: Galaxy Edition
  • Deus Vult
  • Cities in Motion
  • Cities in Motion 2
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Hearts of Iron Anthology
  • Europa Universalis III
  • Europa Universalis III: Chronicles
  • Divine Wind
  • Cities: Skylines - After Dark
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • For the Motherland
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Heir to the Throne
Will CK2 support two cores (4 threading) intel CPU [i.e. i3, i5, i7]? What about system requirements?

Multi-core support is an ongoing project for PI, with hints of it being introduced in the future, if all goes well.
I wouldn't hold my breath though, as there are considerable issues with making a game such as this supported by multiple CPU's, especially on an engine not originally designed to run multiple cores.
 

Nick B II

Field Marshal
13 Badges
Dec 22, 2005
4.420
2
www.detroitskeptic.com
  • Crusader Kings II
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Sword of Islam
  • Deus Vult
  • Europa Universalis III Complete
  • 500k Club
  • Cities: Skylines
  • Cities: Skylines Deluxe Edition
  • Crusader Kings II: Way of Life
  • Crusader Kings Complete
  • Crusader Kings III
  • Crusader Kings III: Royal Edition
Will CK2 support two cores (4 threading) intel CPU [i.e. i3, i5, i7]? What about system requirements?
The problem with making a dual-core program is that technically a dual-core program is two separate programs that happen to use the exact same RAM to store all their data.

It's no harder then writing a single-core program if you know what you're doing. OTOH adapting a single-core program to run on dual cores is virtually impossible. And CK2 is based on a single-core game engine.

Nick
 

Gaute65

Newbie
81 Badges
May 22, 2001
4.678
420
  • Europa Universalis IV: Pre-order
  • Rome Gold
  • Sengoku
  • Victoria 2
  • Victoria 2: A House Divided
  • Victoria 2: Heart of Darkness
  • 200k Club
  • 500k Club
  • Cities: Skylines
  • Cities: Skylines Deluxe Edition
  • Crusader Kings II: Holy Knight (pre-order)
  • Europa Universalis III: Collection
  • Europa Universalis IV: El Dorado
  • Europa Universalis IV: Res Publica
  • Pride of Nations
  • Crusader Kings II: Way of Life
  • Europa Universalis IV: Common Sense
  • Crusader Kings II: Horse Lords
  • Cities: Skylines - After Dark
  • Crusader Kings II: Conclave
  • Cities: Skylines - Snowfall
  • Stellaris
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Hearts of Iron IV Sign-up
  • Crusader Kings III: Royal Edition
  • Europa Universalis III
  • Cities in Motion 2
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Deus Vult
  • Diplomacy
  • Cities in Motion
  • Europa Universalis III Complete
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Art of War
  • Europa Universalis IV: Conquest of Paradise
  • Europa Universalis IV: Wealth of Nations
  • Europa Universalis IV: Call to arms event
  • Hearts of Iron III
  • Heir to the Throne
  • Europa Universalis III Complete
Looks like CK2 will support multicore.

In future games like Crusader Kings 2 I’ve had the luxury of not having to add multi-threading afterward, so the core processing things are built with this in mind. It's not as good as if our engine was built from the ground up for MT support but it makes things much easier than adding in support later. The model we follow there is also based around limiting any locks and works by splitting up tasks with shared data like this:

I'll use a simplified example from CK2, before we would have a single Character:: DailyUpdate function run serially for each character for anything that needed to be done on a daily basis, now this is split up in 3 steps:
Code:
step 1: Character:: DailyUpdateOnlyChangeSafePrivateAndCache (run in parallel)
step 2: Character::DailyUpdateSelfDontReadOthers (run in parallel)
step 3: Character::DailyUpdateSerial (run serially)
In step 1 a character is free to look at the public data of any other character and modify its secret internal data only. In step 2 the character is free to modify its public data, but not read any data from other characters. If it needs to decide something based on another characters data it would have to store this data in its secret internal data as part of step 1. Finally step 3 is run in serial for any algorithms too complex or slow to split up in the above way.

This means that we don’t need any locks at all that slow things down while guaranteeing that we always get the same results from calculations no matter what order characters are processed. Processing wise it is perhaps not 100% optimal but strikes a good balance between 1) being easy to use (important for developers to get stuff done) and 2) not wasting lots of memory by duplicating all states that multiple threads need to modify.
 

Enravota

\\\
87 Badges
Jul 24, 2004
1.554
6.258
  • Crusader Kings II: Way of Life
The problem with making a dual-core program is that technically a dual-core program is two separate programs that happen to use the exact same RAM to store all their data.

It's no harder then writing a single-core program if you know what you're doing. OTOH adapting a single-core program to run on dual cores is virtually impossible. And CK2 is based on a single-core game engine.

Nick
There are different ways to use multiple cores (threads, processes being the most widely used), that may or may not share memory and can communicate in different ways.
Writing parallel software and using multiple cores efficiently is still a major issue in computer science, if you know am easy way to do it you can make a lot of €€€ as a software developer or architect :D. Paralleling a sequential program is doable and theoretically at least appropriate for games (you most probably have independent task to be run in parallel), it depends though on how the specific software was written and in any case costs money to do. It is up to PI to decide if it is worth the effort.
 

FinnN

Captain
95 Badges
Mar 13, 2003
421
0
  • Mount & Blade: Warband
  • Victoria: Revolutions
  • Rome Gold
  • Semper Fi
  • Sengoku
  • Victoria 2
  • 200k Club
  • 500k Club
  • Cities: Skylines
  • Cities: Skylines Deluxe Edition
  • Crusader Kings II: Holy Knight (pre-order)
  • Pride of Nations
  • Rise of Prussia
  • Europa Universalis III Complete
  • Mount & Blade: With Fire and Sword
  • Crusader Kings II: Way of Life
  • Pillars of Eternity
  • Crusader Kings II: Horse Lords
  • Cities: Skylines - After Dark
  • Crusader Kings II: Conclave
  • Cities: Skylines - Snowfall
  • Achtung Panzer
  • Stellaris
  • Stellaris: Galaxy Edition
  • Stellaris: Galaxy Edition
  • Victoria 3 Sign Up
  • East India Company
  • Hearts of Iron II: Armageddon
  • Cities in Motion
  • Crusader Kings II
  • Crusader Kings II: Charlemagne
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sword of Islam
  • Darkest Hour
  • Deus Vult
  • Arsenal of Democracy
  • Europa Universalis III
  • Divine Wind
  • Europa Universalis IV
  • For The Glory
  • For the Motherland
  • Hearts of Iron III
  • Heir to the Throne
  • Europa Universalis III Complete
  • Iron Cross
  • Majesty 2
There are different ways to use multiple cores (threads, processes being the most widely used), that may or may not share memory and can communicate in different ways.
Writing parallel software and using multiple cores efficiently is still a major issue in computer science, if you know am easy way to do it you can make a lot of €€€ as a software developer or architect :D. Paralleling a sequential program is doable and theoretically at least appropriate for games (you most probably have independent task to be run in parallel), it depends though on how the specific software was written and in any case costs money to do. It is up to PI to decide if it is worth the effort.

Absolutely. Writing parallel code is not easy and (although frameworks can dramatically lower the entry bar) probably never will be. It strikes me that games like CK should lend themselves very well to being parallelised as each character and province could be working their way through the various calculations independently. The problem then would be coordinating all the results. Lightweight threads, the actor model, map-reduce - there's plenty of techniques for dealing with this sort of thing, and looking at podcat's quote it looks like they're going to use them, but that doesn't make it easy - even for someone who knows what they're doing.

Have fun
Finn
 

safferli

academic outlaw
Moderator
114 Badges
Mar 10, 2006
12.070
462
  • Europa Universalis III Complete
  • Europa Universalis IV: Call to arms event
  • For the Motherland
  • Hearts of Iron III
  • Hearts of Iron III: Their Finest Hour
  • Hearts of Iron III Collection
  • Heir to the Throne
  • Impire
  • Europa Universalis III Complete
  • Knights of Pen and Paper +1 Edition
  • Leviathan: Warships
  • Magicka
  • March of the Eagles
  • Europa Universalis IV: Wealth of Nations
  • Naval War: Arctic Circle
  • Europa Universalis IV: Res Publica
  • Victoria: Revolutions
  • Europa Universalis: Rome
  • Semper Fi
  • Sengoku
  • Ship Simulator Extremes
  • Sword of the Stars
  • Teleglitch: Die More Edition
  • The Showdown Effect
  • Victoria 2
  • Victoria 3 Sign Up
  • Darkest Hour
  • Hearts of Iron II: Armageddon
  • Cities in Motion
  • Cities in Motion 2
  • Crusader Kings II
  • Crusader Kings II: Legacy of Rome
  • Crusader Kings II: The Old Gods
  • Crusader Kings II: Rajas of India
  • Crusader Kings II: The Republic
  • Crusader Kings II: Sons of Abraham
  • Crusader Kings II: Sunset Invasion
  • Crusader Kings II: Sword of Islam
  • Commander: Conquest of the Americas
  • Hearts of Iron Anthology
  • Deus Vult
  • Diplomacy
  • Dungeonland
  • East India Company Collection
  • Europa Universalis III
  • Europa Universalis III: Chronicles
  • Europa Universalis III Complete
  • Divine Wind
  • Europa Universalis IV
  • Europa Universalis IV: Art of War
Will there be a way to tell the game what cores it can use? For example in a 4+ core system i might not want to use core 1 for the game, only core 2-4.

You can do that via your OS already. It's called affinity in windows AFAIK.

Yep, this definitely is a setting that the OS would need to take care of.