I've found most of those "24 Hour Games" or "Make x in y" examples are usually pretty rough. Non-extensible, often slapdash code and buggy, doing things the 'wrong' way, lacking polish and features. It compiles and it runs, therefore it's eh good enough. One guy did Breakout in 10 minutes in Unity and it didn't even have a scoring system, all you did was make blocks disappear by hard deleting them with the Destroy/Dispose and they were all the same colour. Nah.
Thanks for watching everyone! I know this is a shorter video than usual without a lot of progress shown but I can assure you the next video will not be the same... Hope you enjoyed it anyway and got some use out of it 🙏
This is really cool, I’ve just finished my first year of Uni. Time to start learning about OpenGL and more about graphics rendering overall! Keep up the great work bro 🥳
A little tip for fixing performance in vulkan: make sure you don't have the "apidump" layer enabled (on windows, that's defined in the layer path environment variable). apidump can be useful, but it will trash your perfomance, and spam the console with every single vulkan call/command.
Its so frustrating to find an amazing project and see its only five days old so you cant binge it... I will definitely keep watching! Im currently also reading through the spec, implementing my API along the way. I'm a Kotlin/JVM developer so I have to wrap everything vulkan has anyways lol
The struggle is real lol... Honestly, your API might be done before mine because I'm working on a bunch of stuff at the same time, but it will get done, I assure you. Thanks for watching and welcome to the channel!
I love it how you spend hours on something, you've written shedloads of code and it still doesn't work properly. You then look up someone else's example/tutorial and they've done the same thing in like 4 lines of bug-free perfection in a really slick way you'd never thought of. Makes me feel so small and so stupid. Like I should give up and work in a warehouse.
Stuff like this just puts me more in awe of professionals. To think that AAA games have multiple renderers built in (you can switch between them) and look universally gorgeous while working like Swiss clockwork is just amazing. The sort of talent that works on that part of the codebase is simply inhuman.
that's ok for someone like me who isn't into 3d modelling of any sort but interested in knowing the least what is vulkan that people have been talking about
I don't have much experience with mobile development but I believe Vulkan does support mobile devices. That's about the limit of my knowledge lol... Thanks for watching!
@@yoyo12345 I mean you have to make the app of course. I never used it for mobile debelopment. I only know Vulkan and that Vulkan Supports Mobile devices, but the mobile device has to Support Vulkan too of course. That being said, I think Unreal Engine works with Vulkan on mobile. If you want do develop on a lower level (meaning without an engine) there is a Vulkan API in the Android NDK. For apple devices you generally have to use MoltenVK as a compatibility layer because Apple only support their own graphics API, but since Apples API is the same across all devices MoltenVK should work on iOS as well.
My Experience with Vulkan was terrible xD. After I finished writing all the code to draw a triangle it just dropped the gpu and gave me a device lost error code :(
@Dragoo glfw is a library responsible for creating the window of your app. Glut is a library for graphics, so you basically render stuff (triangles, quads) inside your window you made with glfw. Glut is a library that works with opengl but it is very much abstracted and nobody uses it nowadays. I would recommend to start with glad or glew (they are mostly the same). The difference is that those 2 are basically raw opengl without any abstraction. So everything is a bit harder but it will make more sense than using something that does everything for you and you don't know whats happening behind the scene. After you learn opengl really really well (mostly won't happen soon) you can start using more low level api like vulkan or directx12.
@Dragoo Performance. For example vulkan gives you full control over the gpu drivers. One of the key points of using vulkan over opengl is that vulkan is thread friendly that means that you can make your renderer multi-threaded. Its the same as programming languages. For example why we use c++ instead of python.
What purposes does implementing support for both OpenGL, DirectX and Vulkan serves ? I thought one would be enough to cover any hardware, is that wrong ? Great video anyway, congrats to you for managing to do such low level stuff.
On a practical level, you are correct that just supporting Vulkan or OpenGL is probably enough. However, there is a wide variety of hardware that one may want to target and you can't always assume that they will support Vulkan or OpenGL. For a serious game engine that intends to be cross-platform, having a solid abstraction layer is essential and in addition to this, writing an abstraction layer is a good learning experience and allows you to see similarities and patterns in the different APIs. Hopefully that answers your question, thanks for watching!
In short... DirectX usually has the best driver support, but is only available on Windows and X-Box, pretty much. If you want your game to run on Linux, Mac or in the browser, you'll need to use OpenGL. But OpenGL tends to have really poor driver support, and has a lot of annoying quirks - that's where Vulkan comes in. Vulkan is designed for absolutely minimal drivers in the first place - you have a much closer access to the hardware. That means opportunities for really deep and powerful tweaks and optimizations... but it also means that you're working with something that's _really_ annoying to use and it's a lot of effort to support a variety of graphics cards. Basically, Vulkan is designed for people like John Carmack, who are constantly let down by the limitations of graphics drivers :) Unless you already have an OpenGL background, DirectX is probably the most convenient and fun to use, but it does mean essentially Windows only. And giving the user a choice between OpenGL, DirectX and Vulkan can actually result in performance gains, since different computers will tend to perform differently using each of these, even with all else equal. I actually prefer Vulkan to OpenGL, but that might be my constant bad experiences with OpenGL over the decades :D
Well considering I made a ray tracer which is essentially a CPU only renderer, then I can probably manage a software rasterizer. My friend T3V made a software rasterizer, you can check it out on his channel. Thanks for watching!
Yah honestly I just started reading through books to learn c++ open GL & python and I’d say I probably retain 40% of each chapter at most. At first 3D design was so alien and hard for me now I know the hot keys how to bounce from Maya to c4d to blender u name it. Imma start taking some community college courses and continue to learn things like python at my art school but yah it’s a lot harder then anything I have ever learnt but 3D thought me if u put ur brain in anything you can learn it! U just gotta have the passion
Tbh I can't tell if you're being sarcastic or not haha... it actually was 5 hours though which kind of seems like a long time when I think about it. All I did was read through the Vulkan documentation and write some skeleton code, not much to it haha... thanks for watching!
What a great series. We need deep knowledge instead of 24 hours game engine series, please go on.
Haha absolutely! 24h videos are entertaining don't get me wrong, unfortunately most projects actually take a bit more time 😅 Thanks for watching!
I've found most of those "24 Hour Games" or "Make x in y" examples are usually pretty rough. Non-extensible, often slapdash code and buggy, doing things the 'wrong' way, lacking polish and features. It compiles and it runs, therefore it's eh good enough.
One guy did Breakout in 10 minutes in Unity and it didn't even have a scoring system, all you did was make blocks disappear by hard deleting them with the Destroy/Dispose and they were all the same colour. Nah.
Thanks for watching everyone! I know this is a shorter video than usual without a lot of progress shown but I can assure you the next video will not be the same... Hope you enjoyed it anyway and got some use out of it 🙏
a very comfortable short video
Writing bindings for vulkan is more fun than writing vulkan applications (at start)
Maybe I should try that lol
It is always the third technology under your API that really solidifies your decisions. Onward and upward. Up n atom! To infinity and beyond!
Please continue investing on the series. Great content!
I'm planning on releasing a follow-up to this soon, I know it's been a while haha... Thanks for watching!
This is really cool, I’ve just finished my first year of Uni. Time to start learning about OpenGL and more about graphics rendering overall! Keep up the great work bro 🥳
That's a perfect time to start! The earlier the better. Good luck on your journey and thanks for watching!
Excellent video! It's great to see you start on this.
Thank you!
feel just like you man! And the game is wayyyyyyy better now than when you posted this video
Finally some Vulkan content
A little tip for fixing performance in vulkan: make sure you don't have the "apidump" layer enabled (on windows, that's defined in the layer path environment variable). apidump can be useful, but it will trash your perfomance, and spam the console with every single vulkan call/command.
I'll remember that, thanks for the tip!
1:53 what app is that logger util youre adding comments into? - EDIT: Anki was the name :)
Its so frustrating to find an amazing project and see its only five days old so you cant binge it... I will definitely keep watching!
Im currently also reading through the spec, implementing my API along the way. I'm a Kotlin/JVM developer so I have to wrap everything vulkan has anyways lol
The struggle is real lol... Honestly, your API might be done before mine because I'm working on a bunch of stuff at the same time, but it will get done, I assure you. Thanks for watching and welcome to the channel!
I love it how you spend hours on something, you've written shedloads of code and it still doesn't work properly. You then look up someone else's example/tutorial and they've done the same thing in like 4 lines of bug-free perfection in a really slick way you'd never thought of.
Makes me feel so small and so stupid. Like I should give up and work in a warehouse.
This is so cool!
Thank you and thanks for watching!
Congrats for making a video about writing a Renderer interesting. Didn't think it was possible haha
Thank you! It is a bit difficult to capture the process in a video but hopefully a few people found it useful. Thanks for watching!
Stuff like this just puts me more in awe of professionals. To think that AAA games have multiple renderers built in (you can switch between them) and look universally gorgeous while working like Swiss clockwork is just amazing. The sort of talent that works on that part of the codebase is simply inhuman.
Please share all the anki cards you made & used.
Will this series continue?
that's ok for someone like me who isn't into 3d modelling of any sort but interested in knowing the least what is vulkan that people have been talking about
How many flash cards do you end up with when studying a new topic?
Man thank you your a great teACHER, curious I noticed you used the sequencer for drums, but can't I just play those softs via the
via the what? just gonna end there? why sooooo soon :(
I also want to learn vulkan, is there a way to code it in a phone
I don't have much experience with mobile development but I believe Vulkan does support mobile devices. That's about the limit of my knowledge lol... Thanks for watching!
Mobile is definitely supported - there are even features in the API that are commonly only useful on mobile devices!
Nice, I didn't know that. Thanks for sharing your knowledge!
@@fxshlein really!
Then how do I code Vulkan in my phone, is there any app that supports it??
@@yoyo12345 I mean you have to make the app of course. I never used it for mobile debelopment. I only know Vulkan and that Vulkan Supports Mobile devices, but the mobile device has to Support Vulkan too of course.
That being said, I think Unreal Engine works with Vulkan on mobile. If you want do develop on a lower level (meaning without an engine) there is a Vulkan API in the Android NDK. For apple devices you generally have to use MoltenVK as a compatibility layer because Apple only support their own graphics API, but since Apples API is the same across all devices MoltenVK should work on iOS as well.
My Experience with Vulkan was terrible xD. After I finished writing all the code to draw a triangle it just dropped the gpu and gave me a device lost error code :(
Lool that sucks... maybe I'm headed for a similar fate 😬 Thanks for watching and for sharing your tragic experience!
@Dragoo glfw is a library responsible for creating the window of your app. Glut is a library for graphics, so you basically render stuff (triangles, quads) inside your window you made with glfw.
Glut is a library that works with opengl but it is very much abstracted and nobody uses it nowadays. I would recommend to start with glad or glew (they are mostly the same). The difference is that those 2 are basically raw opengl without any abstraction. So everything is a bit harder but it will make more sense than using something that does everything for you and you don't know whats happening behind the scene.
After you learn opengl really really well (mostly won't happen soon) you can start using more low level api like vulkan or directx12.
@Dragoo Performance. For example vulkan gives you full control over the gpu drivers. One of the key points of using vulkan over opengl is that vulkan is thread friendly that means that you can make your renderer multi-threaded.
Its the same as programming languages. For example why we use c++ instead of python.
@Dragoo vulkan-tutorial.com/Introduction make it through this and you have a solid footing to start with at least.
What purposes does implementing support for both OpenGL, DirectX and Vulkan serves ? I thought one would be enough to cover any hardware, is that wrong ? Great video anyway, congrats to you for managing to do such low level stuff.
On a practical level, you are correct that just supporting Vulkan or OpenGL is probably enough. However, there is a wide variety of hardware that one may want to target and you can't always assume that they will support Vulkan or OpenGL. For a serious game engine that intends to be cross-platform, having a solid abstraction layer is essential and in addition to this, writing an abstraction layer is a good learning experience and allows you to see similarities and patterns in the different APIs. Hopefully that answers your question, thanks for watching!
In short... DirectX usually has the best driver support, but is only available on Windows and X-Box, pretty much. If you want your game to run on Linux, Mac or in the browser, you'll need to use OpenGL. But OpenGL tends to have really poor driver support, and has a lot of annoying quirks - that's where Vulkan comes in. Vulkan is designed for absolutely minimal drivers in the first place - you have a much closer access to the hardware. That means opportunities for really deep and powerful tweaks and optimizations... but it also means that you're working with something that's _really_ annoying to use and it's a lot of effort to support a variety of graphics cards. Basically, Vulkan is designed for people like John Carmack, who are constantly let down by the limitations of graphics drivers :)
Unless you already have an OpenGL background, DirectX is probably the most convenient and fun to use, but it does mean essentially Windows only. And giving the user a choice between OpenGL, DirectX and Vulkan can actually result in performance gains, since different computers will tend to perform differently using each of these, even with all else equal. I actually prefer Vulkan to OpenGL, but that might be my constant bad experiences with OpenGL over the decades :D
Awesome 😄 can you also make a software rendere? no gpu 😅
Well considering I made a ray tracer which is essentially a CPU only renderer, then I can probably manage a software rasterizer. My friend T3V made a software rasterizer, you can check it out on his channel. Thanks for watching!
Should I study vulkan
Did you just tell me to study, that's criminal
Just wait until my "clean your room" video drops
@@AngeTheGreat Actually it's pretty clean except for everything on the floor
When next video
dad
boys cute
misread as "driver"
lmao you're pretty funny
Lol I try at least
Why not size_t subs? 🤭
I didn't understand a single thing
Yah honestly I just started reading through books to learn c++ open GL & python and I’d say I probably retain 40% of each chapter at most. At first 3D design was so alien and hard for me now I know the hot keys how to bounce from Maya to c4d to blender u name it. Imma start taking some community college courses and continue to learn things like python at my art school but yah it’s a lot harder then anything I have ever learnt but 3D thought me if u put ur brain in anything you can learn it! U just gotta have the passion
5 hours? thats impossible.
Tbh I can't tell if you're being sarcastic or not haha... it actually was 5 hours though which kind of seems like a long time when I think about it. All I did was read through the Vulkan documentation and write some skeleton code, not much to it haha... thanks for watching!
no offense but this video is completely all over the place and unfocused
Lol I don't disagree with you. I want to delete it but I've kept it up because I want a historical record of my old videos, even bad ones