Should you learn Vulkan(C++)? Can beginners learn it?

Should you learn Vulkan(C++)? Can beginners learn it?



Should you learn Vulkan(used with the C++ programming language), and can beginners learn it? In the video, we discuss the advantages of Vulkan VS DirectX VS OpenGL, for beginners, and where you would want to use it. A 2D platformer done with Vulkan would be some series overkill. Vulkan isn’t for everyone, and it isn’t for everything, but in it’s place, its a powerful API that specializes in performance and cross platform compatibility. Should a beginner learn Vulkan? . This is codergopher, and I’m Marty.

Benchmarking:
OpenGL VS Vulkan —
Vulkan VS DirectX12 —

#learn #VulkanC #beginners #learn

learn vulkan

vulkan,c++,programming,should you learn vulkan,should i learn vulkan,what is vulkan,vulkan for beginners,is vulkan for beginners,should a beginner learn vulkan,vulkan vs opengl,codergopher,vulcan,vulkan vs directx,directx vs vulkan,opengl,directx

49 Replies to “Should you learn Vulkan(C++)? Can beginners learn it?”

  1. So how great is the difference between the 1162 lines of Vulcan, to get a triangle on screen, vs. using pure home-written C++ to do it yourself? How many lines would that be, because I guess Vulcan is written in C or C++?

  2. Some notes. Vulkan and DX12 are faster and harder to program than OpenGL and DX11. The reason is abstraction. The former 2 are heavily abstracted, taking care of a lot of the memory management and other stuff for you. Vulkan and DX12 are low level APIs, giving far more control, and responsibility to the user. They cropped up after AMD showed of Mantle, which IIRC more or less morphed into Vulkan. For a while, AMD was behind Nvidia in DX11 performance, some was due to Nvidia drivers being heavily optimized for DX11.
    The newer APIs aren't necessarily that much faster on the GPU, but on CPU, there is far less overhead, and multithreading is much easier and more effective. Not quite as "close to the metal" as older consoles, but low enough to give vast control. You can even do things like use an Nvidia AND AMD GPU at the same time to render the same game, rendering the same frames….. since you aren't limited by the heavy abstraction of previous APIs.

  3. YtCommentCreateInfo commentCreateInfo;
    commentCreateInfo.sType = YT_STRUCTURE_TYPE_COMMENT_CREATE_INFO;

    const char *commentStr = "Good vid";
    commentCreateInfo.commentSize = strlen(commentStr);
    commentCreateInfo.ppComment = commentStr;

    YtComment comment;
    ytCreateComment(&commentCreateInfo, &comment);

    ytVideoPlubishComment(video, comment);

    Good vid

  4. What I've learned is that game dev is like web dev now. Web dev got killed by the likes of Squarespace and in a few years it'll be completely gone. Simply put there are service providers that give better packages and as such individuals are insufficient, except as industry workers that work on the tools. With game dev, quite frankly, you cant beat Unreal Engine. It integrates everything for you, provides free code updates (USE BLUEPRINTS!!! If you dont, you have work left to do for updates) and provides content that you literally cannot reproduce at any budget level (Quixel megascans is about 6 years of high intensity, costly work). So do yourself a favor, stop thinking you can do it better, you cant. Use Unreal Engine, it's simpler to learn and simpler to implement, any programmer will tell you the same, the tradeoff for speed of development is speed of operation, if you have anything that offers both, you'd be an idiot to try and diy it on anything else. As such, UE is killing off indie devs, not by destroying the competition, but by providing what otherwise would take you years of dev time to implement. A game is only as good as it's season, if you started development of a souls-like game when DS released, you'd be close to finished now with a team of 10 and uncapped budget, but with UE, you'd have deployed before DS3 even released, in the prime of the genre, where competition is welcomed and it's easy to earn 'me-too' money. If you have a new idea, then great, UE provides the cheapest platform to release it on and gives you years worth of revenue more than you'd have from developing it from scratch. If you're a small enough studio to watch this vid, then dont learn Vulcan, dont learn OpenGL, dont learn DX12, learn Unreal Engine and use it, dont reconsider or try switching API, just stick with it and never look back, you'll thank me when you release a game 2 years ahead of DIY schedule…

  5. Thumbs up for realising it was a triangle!!! hahaha Great video, great introduction to Vulkan. 1000 lines just to initialise it… jezz… you'd of thought with it being a "modern" replacement for OpenGL it would of been less and the setting up could of been an API call on its own. Guessing there is a valid reason for the way Kronos has done it this way. I know a little OpenGL (not much), but about to enter the world of Vulkan!!!

  6. I would make the prediction that in the not-so-distant future autonomous cars and other vision-based robots would use Vulkan quite heavily. So I don't think that it is just a video game/3D rendering API. I think soon people will realise how useful it is to have the 3D rendering pipeline plus compute shaders in the same low level API allowing for fast and efficient sharing of GPU resources on top of the faster overall performance compared to both 3D rendering and computing APIs.

  7. I disagree, vulkan has much better error reporting than opengl. The vulkan validation layers are awesome. And the fact that you finally have bytecode shaders is awesome. Opengl regularly has glsl code breaking on one gpu and working on another.

  8. I want to make a 2D game on a phone that has almost the same amount of battery drain as leaving the screen on while social media is on so Vulkan seems good. But I am not going to spend the next 5 years trying to learn it.

  9. If you want my advice, Learn C and code your own ray traced rendering engine instead. With that you're creating something from the ground up that you understand, its C, so crossplatform compatible and if you make any groundbreaking discoveries, it's actually pushing the industry forward… As an Indie game dev, you're going to make a splash in 2 ways, either you make a fun game (please just use a game engine for that, it's much simpler than making it from scratch… Unreal Engine is an amazing piece of tech and is made to make it easier for YOU, not to make them more money…), or you're going to create something new that nobody has done before and the best version of that is optimizing the resource management of a pc to make the most out of modern hardware (AMD SAM and shader core ray tracing is a great place to start). You will be paying royalties when you release your game on any platform, so you might as well make the most out of it by using a platform that does something for you (Like Unreal Engine… where you get assets for free a storefront for free and pretty much the easiest environment to make a game in that you'll find anywhere. It'll take you weeks to learn Vulkan, use that time instead to get proficient at UE4, it'll be astronomically more useful when UE5 releases).

  10. First lesson of Vulkan, its not C++, Second lesson of vulkan, use it in Unreal Engine, else leave it alone, because it's too complex to set up properly, because it's not documented well enough.

  11. So if vulkan uses alot of code to get started why don't you write a program to make it easier to do all the options with configurations, to get you started. So all you need to do is input your information in the fields provided and than select a option to auto write for you. Than all you need to do is inspect and write what U need to do.

  12. I tend to disagree with the concept that difficulty should measure weather it is for or not for beginners. Instant gratification has no place in programming. Directx has way to many training wheels and filled with garbage code and dead code and even more legacy code than opengl and garbage code left in from legacy code and dead code. Also opengl was actually on par with directx up until around 2014, in most cases ahead but most of the shift went to vulkan from 2012 to now with directx losing more and more support in the backbones and taking features that were being worked on for a long time like tessilation and ray tracing and shifting the focus into incoperating them into a newer faster API that didn't have all that legacy code. They also changed the license around to the apache license probably because opengl used this weird combination mix of bases off multiple licenses. FSF use to approve appache license but now they are against everything that isn't gnu gpl v3+, even going against gpl v2 software to claim its not free because they don't have policies in the license that feed their EGO driven war on everyone not FSF, even if it were to be basically the GNU GPLv3 re-written they would be against that.

  13. You now know C++, OpenGL and Vulkan and you are just like, 17 yo, while I'm barely holding on with c++ and couldn't really wrap my head around opengl. Might as well not even try.

  14. I'm a beginner C++ programmer and I've done some tutorials and then I thought; what do I want to use it for? Visual stuff. OpenGL is surpassed by Vulkan. I'm a gonna learn me some VULKAN! Thanks for the video. And yes do a Vulkan series.

  15. how did you set up vulkan in sublime text? i'm having some problems linking the vulkan-1.lib file and the glfw lib file(s). i keep getting unresolved external errors. would really like to move my project to sublime if possible (i finished the vulkan tutorial in visual studio 2019 but i dislike visual studio)

  16. Ssooooo.. If I'm trying to make a simple raytracer as a beginner in 3d graphics (I've done stuff with java's Swing). do I need the speed of Vulkan? or will OpenGL (or even OpenCL) do fine?

  17. Hey Marty, is there somewhere I could get your source code for this because I keep trying to get the source code on GitHub for the vulkan tutorial and when I upload the hello triangle CPP there's only like five hundred lines of code and I try to do the Shader base frag and vert files in a separate shaders folder and the window comes up and no triangle pops on screen I'm so frustrated I feel like I've been trying to find the answer forever hoping you could help if not I really like the videos and thanks for your time Agent Marty! 🙂

  18. The problem is if you want to directly acess the GPU without using some high level library that was built on top of one of the low-level API's there is basicly just OpenGL and Vulkan. The problem with Vulkan is really verbose and complicated to learn and use. OpenGL is significantly easier but is very old. It has tons of deprecated legacy functionality and design flaws. It comes from a time where GPU's simply worked different than how they function today. It also seems like KHRONOS more or less abandoned it in favor of Vulkan. In reality Vulkan isn't the answer to everything, for the same reason you don't code everything in C or Assembler. Simplicity and ease of use just are a important factor. When you write a sprite based 2D game having to write 1000 lines to see your first triangle would be ridiculous. If you just want to spice up the GUI in your application with some 3D you don't want to have to learn Vulkan. There either needs to be a reworked OpenGL 5.0, a new simpler API or a standardized high level wrapper for Vulkan that reduces it's complexity.

Leave a Reply