> It also doesn't help that Vulkan development is basically C++ and Windows and there is no negotiating this as a beginner. Trying to develop Vulkan through a language wrapper or on Linux/OS X adds an unnecessary amount of pain to the process--quadruply so if the wrapper tries to be "idiomatic" in your language of choice.
Actually Vulkan uses C, not C++ as usual in most Khronos APIs, and only GNU/Linux and Android 10 onwards are the only platforms where Vulkan has any meaningful usage.
On Windows everyone just uses DirectX, OpenGL ICD which are also used by Vulkan drivers aren't even allowed on Windows sandbox driver model, and on Switch, Vulkan might be supported, but so is OpenGL and NVN is actually the one holding the GPU keys.
In what concerns Sony and Apple, Vulkan doesn't even exist.
> Actually Vulkan uses C, not C++ as usual in most Khronos APIs
You are technically correct--Vulkan is a C API. However, all the tutorials you will use are written in C++.
I have never seen a C-only Vulkan tutorial. Link welcomed.
On Windows, everyone is using DirectX 11. That is a very different (and much simpler!) beast than DirectX 12 (which--unsurprisingly--looks very much like Vulkan).
And, as for Apple, I suspect the fact that Valve/Steam is all-in on MoltenVK(Vulkan on top of Metal) for development means that way more gamers are running games with Vulkan on OS X than plain Metal. (DotA 2--for example--is MoltenVK only on OS X, IIRC).
However, most game developers DON'T CARE. They are writing to a game engine that handles all that behind the scenes. As long as the game engine is ported to the appropriate system, the underlying implementation is irrelevant to them.
Which is quite different from "It also doesn't help that Vulkan development is basically C++ and Windows".
On Apple, all relevant engines support Metal directly, no need for MoltenVK at all. That is just for the usual FOSS anti-Apple folks that buy Apple hardware and then complain it isn't GNU/Linux.
Nope. Leaving aside the fact that the book isn't that great and that I only see snippets and not a compilable codebase, look at the snippets:
"VkResult vkapp::init()"
"std::vector<VkQueueFamilyProperties>"
> It also doesn't help that Vulkan development is basically C++ and Windows
I stand by this statement. If you are doing Vulkan (and not DirectX) the highest probability is that you are on Windows in C++.
> On Apple, all relevant engines support Metal directly
Source 2, at the least, does not as far as I know. Which means that DotA2, CS:GO, Artifact, etc. all only run on iOS via MoltenVK since Apple has dropped OpenGL support.
> Source 2, at the least, does not as far as I know. Which means that DotA2, CS:GO, Artifact, etc. all only run on iOS via MoltenVK since Apple has dropped OpenGL support.
CS:GO is definitely not Source 2 (yet?), and I'm not sure about Artifact, but it was at least at one point developed using Unity.
Why would you be doing Vulkan on Windows, if the targets are GNU/Linux and Android?
Source 2 belongs to the "that is just for the usual FOSS anti-Apple folks that buy Apple hardware and then complain it isn't GNU/Linux." given it is from Valve.
Actually Vulkan uses C, not C++ as usual in most Khronos APIs, and only GNU/Linux and Android 10 onwards are the only platforms where Vulkan has any meaningful usage.
On Windows everyone just uses DirectX, OpenGL ICD which are also used by Vulkan drivers aren't even allowed on Windows sandbox driver model, and on Switch, Vulkan might be supported, but so is OpenGL and NVN is actually the one holding the GPU keys.
In what concerns Sony and Apple, Vulkan doesn't even exist.