Hey all it’s time for your weekly update. As I mentioned last week Flavien is now moving into his new apartment and will be without internet access until next week. I’ve combined code cleanup with the final testing for the UI path rendering which I hope to have wrapped up soon. Once that’s all finished I’ll move onto font rendering which is the last step before I can begin building UI widgets. You may recall from a weekly update a few months ago that the new UI code supports Vulkan in addition to D3D11. After working with Vulkan for the last few months I’ve reached the conclusion that it isn’t mature enough yet for our purposes and I’ve decided to replace it with D3D12.
Initial material pass on the land base command center
Why do Vulkan and D3D12 matter? They contain special new optimizations that are particularly relevant to how we generate and render procedural planets. Obviously procedural planets are a cornerstone of Infinity: Battlescape and we want to be able to take full advantage of these performance enhancements at some point in the future. For now the majority of the game will continue to run on our legacy renderer, including our procedural planet generation, but sometime after the game ships to retail we’ll move everything over to the new rendering system so we can fully realize all available compute power.
On the art side things continue to move along at a good pace. Jan recently returned from being out of town for a week and is resuming his work on station materials. Kristian is working on the support modules for the land base which includes power generators, orbital defense, communications, etc. Lastly Dan is focused on the final geometry pass for the destroyer. Capital ships are something we haven’t really discussed much yet. Flavien already has an idea for how he wants to implement the initial control scheme and it will be a high priority item after we release the next patch.
Man, we’re not talking about DX9. This is not DayZ, please.
DX11 is very fine as Windows 7 still represents a huge proportion of player’s OS. Plus it’s stable and proven.
Because DX12 is specific to Win10, and because the Microsoft bullying into going Win10 (among other things) triggered so many red flags, I’ll take my sweet time before considering if Win10 is really worthwhile.
Win10 is already significantly better than Win7 for plenty of reasons other than D3D12.
The reason for supporting it is for performance reasons. The original renderer was written before consumer CPU’s had multiple cores and therefore is severely constrained with what it can do in a multi-core environment. Unfortunately ripping out and replacing that renderer would be a massive job so instead of building more and more systems on top of a legacy system we know we want to replace we’re building them on top of the new renderer and we’ll move over the rest of the engine once we have more time.
I apologize this update seems to have created some confusion regarding D3D11, D3D12, and Vulkan. To elaborate on the questions from @Sense and @SpaceJay:
1) Infinity: Battlescape will always support Windows 7 as this is what we promised during the Kickstarter. Windows 7 support can come in two flavors - either D3D11 or Vulkan.
2) When the game ships to retail it will only support D3D11 so you can play on all flavors of Windows version 7 and above.
3) We will patch in support for our new rendering backend sometime after the game ships to retail. This will include D3D12 and/or Vulkan. As of right now the engine supports both.
4) I did the initial implementation of the new rendering backend using Vulkan with the hope that I wouldn’t need to ever implement D3D12. Unfortunately Vulkan’s shader compiler ecosystem is too immature and it quite literally doesn’t work right with some of our shaders. This is why I ultimately decided to bite the bullet and implement D3D12. If the Vulkan shader compiler ecosystem improves by the time we actually decide to move the game over to the new rendering system then it will be patched to support Vulkan instead of D3D12 and D3D11 support will be completely removed since Windows 7 also supports Vulkan.
5) We need a valid implementation of D3D12 or Vulkan to validate the new rendering runtime as we build new systems on top of it. While it also supports D3D11 we cannot use D3D11 for validation because it lets you get away with doing bad things without telling you about it. D3D12 and especially Vulkan don’t let you get away with anything therefore it forces your usage of the API to be correct in every sense of the word.
Actually supporting D3D12 is pretty straightforward - it’s more similar to D3D11 than I had expected it would be. The station images are rendered in our editor which is nearly the same as in-game except it uses different depth precision and tonemapping parameters. The image of the land base CoC was rendered using a 3rd party renderer - specifically MODO.
I’m having a hard time expressing my reaction to the idea that a computer game company is posting images that don’t come from its own rendering pipeline. You guys either need to cut that out, or be very clear that the images use some other rendering tool.