The precise percentage of 64-bit Windows on Steam (among all Windows machines, and according to the most recent Hardware Survey) is 88.35%, across all versions. So it's approaching 90%, and will likely hit 90% by the end of the year. The remaining 10% may justify having a 32-bit binary for those potential customers, but IMO it does not justify going only 32-bit, especially for a game with a 5-6 year shelf life.
Multithreading is more difficult than single-threading, but it's also certainly possible to do it without threading errors. It does take some design consideration of how you will do the multithreading, as well as some thought by the programmer. But if you are going into the task with a mindset to make it multithreaded, and have some prior experience with it, you can get it reliably correct. Given that Firaxis was a pioneer of AMD's Vulkan API, they clearly have some programming chops, so my hope is that that extends beyond graphics APIs and they are up to the challenge with multithreading as well.
I'm also hoping they're allocating more resources to AI than they have traditionally; IIRC Civ3 had one AI programmer. Not sure how many Civ4 had, but the community made significant improvements to the Civ4 AI (which Firaxis partially incorporated into BTS), and the Civ5 AI was worse than the Civ4 AI - although part of that may have been due to 1UPT issues. Regardless, I think it's an area that should be a focus in strategy games, and AI performance is part of that equation. While not the only reason I've switched mostly to Paradox games, I have to admit the lack of waiting for AI is really nice once you get used to it.
stealth_nsk said:
Sync requires both programming, processor and memory resources. Advantages are not necessary bigger than cost.
True, synchronization does have an overhead cost, and if done poorly can be a net decrease in performance. But it can also be kept pretty minimal, and depending on what you're doing, you may be able to use lockless multithreading - such as if your threads are analyzing some of the same data, but not modifying any of the same data (storing their results in separate locations, perhaps to be aggregated by a short-running single thread later if need be). I used this approach in my Civ3 editor to speed up its data processing with minimal overhead - only thread creation - and without a possibility of race conditions/etc. due to the design.
I have had cases where multithreading didn't yield much benefit, such as when it wound up being the case that I was limited much more by disk I/O than CPU resources. But I think Firaxis has some significant opportunities here.
Larsenex said:
Gal Civ III is multi thread, in that 'each ai uses its own thread' if available.
This is perhaps the most obvious approach Firaxis could use. They may also be able to break down the AI calculations into sections, such as calculating unit/city decisions more locally and in parallel rather than in sequence. Stardock has proven it can be done, and done well.
anandus said:
Regarding big maps: That's only nice if the turn times have been improved and optimized.
What use is a bigger map if you need to wait 5 minutes between turns?
That's a very good point, and a good reason why a move to 64-bit
should be accompanied by parallelizing the AI.
Gorbles said:
And let's actually do a bit of nerding out here. Multithreading support is not the same as multicore support.
I think you're referring to the difference between
concurrency and parallelism. Essentially we're saying we want a parallelized AI, and that the concurrency between the graphics and the Civ5 serial AI isn't really enough.
Multithreading (whether concurrency or parallismism) is necessary for multicore support though - although an application without them will still run fine on a multicore CPU.
Vic Adams said:
Its on the stardock forums. Specific link (you may need an account there to access):
http://forums.galciv3.com/474109/page/5/#3617136
The post was made last December. About three-fourths of the way down, he mentions "GalCiv III remains the first and only 4th generate 4X. All the other games out there are still 3rd generation (32-bit, DirectX 9c, single core design)."
Interesting piece, but I didn't see him specifically say Civ6 would be 64-bit, rather that, "Eventually, everyone will have to move to 4th generation". While Stardock's decisions imply that if they were designing Civ6, it would be 64-bit, that doesn't necessarily mean Firaxis will agree that it is time to move Civ to what Stardock considers 4th generation.