• 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.
But sometime between now and, say, 2020 they might consider making a game that could take advantage of multi-core capablities? I have no doubt this is no trivial matter, otherwise it would have been done by now. Sooner or later there's got to be a multi-core reckoning.
 
As someone in Paradox have stated (I think it was Johan or Frederik) the biggest investment (and thus gamble) Paradox have ever made was into the Clausewitz engine. And rewriting it to have multicore support is hard - the big hassle is the problem is making it thread safe. A thread (roughly a process) don't know what data is begin manipulated by an other thread. So if not done properly the engine can produce many wierd bugs.

The game and the engine is written in C++ with is the standard language to write games and desktop applications in (although there are exceptions), and it's good for that. But to my knowledge it's not great for making a piece of code multi threaded, since it's labour intensive. You have to do most things manually, in contrast to languages designed with the capabilities and makes them easily available - such as Googles language Go, but it's not so widely adopted yet. And I think it's untested in game development anyway.

To clearify how long and labour intensive it is: Vavlve (we all know Valve) implemented Multi-core support in 2007 but it remained "experimental and unstable" (Source) until the release of Left for Dead in 2010. Thats three years of development for a company with 225 employees (Source), I admit, they most likely had a bit fewer in 2007. But I don't think that Paradox is up to that number yet.

That said, yes! I'd like to have multi-core support, but I don't expect it any time soon.
So my best advice for good performance with the Clausewitz engine is to get a fast CPU, I personally have a 3.16GHz dual core, and I have never noticed any lag or sluggishness in HoI3.
 
It's not about wanting a pony.:rofl:
But it is.

You are asking for something for reasons that seem entirely rational to yourself and which I can fully understand, much like the child who has excellent reasons for wanting a pony rather than the goldfish promised by the parents, but which makes little economic sense.

Because i won't buy CK2 if the retail box doesn't state its multithreaded.
Unfortunately for you, it is an entirely reasonable position to say, "We understand why you want multicore support, but our budget does not allow it at the moment and currently prioritising developing an engine capable of it over developing new games is estimated to generate far less income; You'll just have to buy the games that we make rather than the ones that you want or not buy our games."

Of course they'll be sad to lose a customer but your wants don't trump their needs. :)
 
it would be nice if they could at least multithread what is likely the easier of 2 aspects, thread the UI on one and the rest on another. I doubt even that will happen though.
 
Hmmmm... At the very least would it be to much trouble to "off load" the music and videos as well as effects to other cores? I'm thinking a small applets type of thing.
 
Hmmmm... At the very least would it be to much trouble to "off load" the music and videos as well as effects to other cores? I'm thinking a small applets type of thing.

I think they did that already. Music and some threads automatically generated by DirectX are already off the main thread.

When people say 'single threaded', they rarely actually mean literally single threaded, but rather 'only has one major thread'. We usually only count the heavy threads, since they're the ones that count for determining if a program scales with cores.

Even very simple applications are often technically multithreaded if they have a GUI (and that's not even the ones that explicitly place GUI handler code in its own thread, that's the base ones you get from Visual C++ 98). This won't make them scale well though.
 
When people say 'single threaded', they rarely actually mean literally single threaded, but rather 'only has one major thread'. We usually only count the heavy threads, since they're the ones that count for determining if a program scales with cores.

So you say P-x already switched non-gameplay process into other threads? So the problem is gamedata access and there's no way engine would allow async access to data for several threads?

Oh guys, what were you thinking in 2005.
 
Is MTTH calculation already off the main thread? That's the only part I guess could be taken out from the main game process thread, though I could be very wrong.
 
So you say P-x already switched non-gameplay process into other threads? So the problem is gamedata access and there's no way engine would allow async access to data for several threads?

Oh guys, what were you thinking in 2005.

No, I'm saying they have some non gameplay processes moved to other threads. I don't have the code or the docs, so I can't tell you how much they could refactor off the main thread with more work.

However, the actual simulation part of the code has apparently proven unamenable to threading. The problem is almost certainly not data access (concurrent reads aren't really a problem if that's the only thing happening to that data). It's adding writes to the equation and race conditions that make programmers shave their heads to avoid pulling their hair out.

I know they've tried to multithread Clausewitz during HOI3 development. I'm pretty sure they had to abandon that fork, as they couldn't squish the bugs and stability problems that came up in time to deliver anything. As buggy as HOI3 was on launch, apparently that branch was far worse.

Thing is, they won't introduce it now since they know the engine's limits and don't intend to push it any harder than HOI3 did. Given a choice between a stable CK2 release and a multithreaded CK2 release, they'll choose a stable one every time, especially if they can still squeeze performance from the main thread. The best part of the catch-22 is that the number of features that would be dropped to add multithreading would probably reduce demands enough that it wouldn't really need multithreading.

What we don't see that is probably immensely valuable to them is lessons learned in the previous attempts, both in engine design and threading.
 
Personally, if I were Paradox, I'd keep the current engine for a bit longer. It works, and there are plenty of singlecore computers around.

The next engine should have multithreading, but more importantly, 64bit support. Your computer can have 20GB of RAM, if the game is in 32bit, it'll only use ~3GB of that.

So, next engine should have multithreading and 64bit support. And it's not economically viable for Paradox to write that engine before both multicore and 64bit are on the majority of player's computers (~80%+ for start, I would estimate).
 
Personally, if I were Paradox, I'd keep the current engine for a bit longer. It works, and there are plenty of singlecore computers around.

The next engine should have multithreading, but more importantly, 64bit support. Your computer can have 20GB of RAM, if the game is in 32bit, it'll only use ~3GB of that.

So, next engine should have multithreading and 64bit support. And it's not economically viable for Paradox to write that engine before both multicore and 64bit are on the majority of player's computers (~80%+ for start, I would estimate).
This makes complete sense, from the point of view of the processor's capabilities. I wish they would apply the same reasoning to the capacity of video cards! They push the limits of those more readily, I guess on the grounds that they're easier to upgrade.
 
But sometime between now and, say, 2020 they might consider making a game that could take advantage of multi-core capablities? I have no doubt this is no trivial matter, otherwise it would have been done by now. Sooner or later there's got to be a multi-core reckoning.

I'm sure they'd make their next engine multicore. It's just not going to be a good idea to rewrite an existing engine for multicore support, and we're probably not at the point where Paradox should develop a new engine. EU3 did only came out in 2007.
 
Paradox has moved the slighter a lit bit to far against quantity and not quality. :(
All Paradox games are currently full of a lot of bugs while they are released now, it's pretty sad that they don't test enough. I hope CK2 will be a good game, without any major bugs at release.
 
Paradox has moved the slighter a lit bit to far against quantity and not quality. :(
All Paradox games are currently full of a lot of bugs while they are released now, it's pretty sad that they don't test enough. I hope CK2 will be a good game, without any major bugs at release.

What does this statement have to do with this thread ?
 
I am pretty sure I saw a post during the development of HOI 3[but can't quite remember] saying something like

“we tried to add muti core support for EU 3 but it didn't work. We tried again for EU Rome and HOI3 and got a bit further but it still did not working”

If I am remembering correctly and that they are always doing at least some work to try to interment it with each game then there is always a chance they will make a breakthrough with CK2 and get it working but I am not expecting it.
 
I am pretty sure I saw a post during the development of HOI 3[but can't quite remember] saying something like

“we tried to add muti core support for EU 3 but it didn't work. We tried again for EU Rome and HOI3 and got a bit further but it still did not working”

If I am remembering correctly and that they are always doing at least some work to try to interment it with each game then there is always a chance they will make a breakthrough with CK2 and get it working but I am not expecting it.
EU3 was the game that introduced the current engine, and it came at a time when multi-core processors were still quite high end, so I don't believe they attempted to adapt the engine to reach that end of the market.

EDIT: Sorry, I misunderstood your post. I guess you weren't saying they wanted EU3 game to run only/primarily on multi-core, but instead that they claime they wanted to make it possible for later versions of the engine to do so.
 
Releasing a game that wouldn't support dual-/multi-core in 2012 would be a travesty. I don't care how hard it is (I'm just the consumer); I just know it must be done. Look, this already creates huge performance problems and by 2012 a large of portion of us are going to have new computers. I challenge anyone to find a single-core desktop/laptop on sale right now.