Rendering Architecture | Game Engine series

  Рет қаралды 65,420

The Cherno

The Cherno

Күн бұрын

Пікірлер: 86
@PrimeBukkIT
@PrimeBukkIT 5 жыл бұрын
I might not create my own engine through your tutorials but I love your videos anyway. It is nice to find a well-structured video about C++ coding with someone who's as experienced as you.
@ShivamJha00
@ShivamJha00 5 жыл бұрын
Yes, true
@wexalian
@wexalian 5 жыл бұрын
I have no idea how Vulkan code looks and it sounds scary but i'm looking forward to seeing you implement it and learn it myself as well.
@jamesmnguyen
@jamesmnguyen 5 жыл бұрын
Vulkan is beast, but if you already know OpenGL, then you'll hate it but secretly love it. Vulkan is very similar to DX12.
@Shifticek
@Shifticek 5 жыл бұрын
you can look up 'creating vulkan renderer from scratch' here on yt, it looks scary at first since it's very verbose, but once you get used to it it's quite fun to use
@jamesmnguyen
@jamesmnguyen 5 жыл бұрын
@@Shifticek Vulkan is very verbose, but somehow, it makes me feel better programming with it, no hidden code, no assumptions.
@YINGHAI
@YINGHAI 11 ай бұрын
Even after all these years, this is still the best C++ game engine tutorial series. I hope you know that your videos have been a tremendous help and inspiration to me, and they greatly influenced my decision to enter this industry. Through your videos, I have gradually developed an engineer's mindset, not just limited to implementing certain features. I am extremely grateful.
@johnkangwa4796
@johnkangwa4796 5 жыл бұрын
Wow I am loving your videos. I am writing my own dx12/vulkan engine and you've opened my eyes.
@proferorz3778
@proferorz3778 5 жыл бұрын
lucky! i suggest add dx 11, no all pc's have windows 10, someone have 7 or 8.1
@NymezWoW
@NymezWoW 3 жыл бұрын
@@proferorz3778 This is not a good advice. No one cares about Windows 7 / 8.1 anymore. And if you start developing an engine now, by the time you are going to release something build on top of your engine, those operating systems will be even less relevant.
@iamlogdog
@iamlogdog 3 жыл бұрын
@@NymezWoW I know that this is a pretty old thread, but the statement "no one cares about windows 7 anymore" is just flat out false. Windows 7 still has a much higher market share than Linux for example, and I don't think you could say "nobody cares about Linux" as easily.
@NymezWoW
@NymezWoW 3 жыл бұрын
@@iamlogdog Linux is still maintained. Windows 7 is not. It has no future.
@bltzcstrnx
@bltzcstrnx Жыл бұрын
​@@NymezWoW you're generalising a lot here. Linux is to Windows, not Windows 7. Saying Linux is still maintained is like saying Windows is still maintained. Doesn't make any sense at all. Older Linux such as version 3 are in fact already not maintained at all. There are a lot of features that exists only in latest Linux version, just like there are more features that exists in Windows 11 compared to Windows 7.
@Matt23488
@Matt23488 5 жыл бұрын
Definitely would like Vulkan support at some point. I do plan on adapting this engine and hopefully using it to make my own game(s) in the future. It would be super cool to get games on something like the Nintendo Switch and if that requires Vulkan, I want it, lol. Thanks again for this series, it's extremely valuable to me and I'm sure many others.
@csisyadam
@csisyadam 5 жыл бұрын
Thanks for the videos! Just a side note: some of your "Game engine series" videos (like this one) are actually not added to the playlist. It is recommended to make a filter that automatically adds these kind of videos to your playlist. :)
@AmeshaSpentaArmaiti
@AmeshaSpentaArmaiti 5 жыл бұрын
Every time someone mentions Vulkan I get an itch to learn it, but I've never even got a triangle up. Just the setup is miles more complicated than OpenGL. I'm gonna try it again, I really do want to learn.
@ticdonutac
@ticdonutac 5 жыл бұрын
There is a good write-up from Intel. Also if you wanna look at finished code you can lookup the granite renderer on GitHub.
@zetadimensions
@zetadimensions 5 жыл бұрын
I, personally, am waiting on the DirectX 12 implementation in this series.
@TheShadoDragon
@TheShadoDragon 5 жыл бұрын
I like the way this series is heading. With more OpenGL videos we can learn more in-dev things about for example the frame buffers you mentioned while this series can focus more on the general approach of how a game engine can be designed. With OpenGL as it's base it also means we don't have to wait forever for the basic things to work. This way, people who want to use Vulkan can still implement Vulkan while others might go with DX11/12 or OpenGL or Metal 1/2 without having to wait so long just because it might be faster to implement with their API as it would be if you would go with Vulkan instead. Thought I'd love to see first of all Vulkan and later on DirectX in the future as well. It should be especially interesting to see how a game engine interacts with multiply rendering-api's in code. For my own projects so far, my biggest problem has always been where to draw this line between render API and renderer, especially as I'm still learning C++ and Vulkan. At the end of one project, I always find myself in the position that I could have done thousands of things differently, be it either because I learned new things in Vulkan/C++ or because one or another design decision didn't play out in the end. Guess I'll start another engine in the near future. It'll be interesting to see the differences between your design, someone who works on Games as a professional and the design decisions I made in the past. :) For scripting, I would love to see a C# integration. Another idea of mine would be to port the engine to Android. I always wondered how game engines create APK files and how they integrate with all those native java or kotlin based android libraries and APIs. Especially since so much changes between android versions, like the app permissions or the new app bundles or instant apps.
@dominionscave4752
@dominionscave4752 5 жыл бұрын
Rather than trying to create a renderer API engine for all Render APIs, would not game developers select a single Render API, and depending upon which platform one is developing for, select a render API for a single platform, or in the case of cross platform, select the API that is cross platform? So, would not for cross platform, it is Vulcan, or even openGL for lower requirements. And would not each Render API have different features not present on others that would determine which is selected depending upon ones needs ? But any way, I find all these videos quite informative and good to give a better understanding of C++ and how game engines are put together. Keep up the good altruistic work.
@nextlifeonearth
@nextlifeonearth 5 жыл бұрын
I would love to see this engine in Vulkan. I'm concerned that if you start in OpenGL that you can't get all the benefits from Vulkan (or D3D12/PS4 graphics API) without refactoring a lot of code later on, like multiple draw call threads etc. Just an idea.
@dw2843
@dw2843 5 жыл бұрын
It's way to complex for a tutorial series imo. Have you seen how hard it is to draw a triangle?
@nextlifeonearth
@nextlifeonearth 5 жыл бұрын
@@dw2843 Yes. I've done it, which is also why I'd like to see it in the series.
@dw2843
@dw2843 5 жыл бұрын
@@nextlifeonearth If you've done it, you would know how long it would take to explain all those lines of code. We wouldn't get too far.
@nextlifeonearth
@nextlifeonearth 5 жыл бұрын
@@dw2843 That's just the setup. And like OpenGL, he won't explain the API in the game engine series. He has a separate series for that. And as such, he only needs to explain the game engine side. Setup is partially copy paste and tweaking the settings to your needs. Compared to the setup the rest is not much harder than D3D11, and though it's more code, it's quite straight forward.
@dw2843
@dw2843 5 жыл бұрын
​@@nextlifeonearth Oh right. Forgot that he mentioned that. If he's not explaining the API, I would be interested in Vulkan too!
@zetadimensions
@zetadimensions 5 жыл бұрын
This is how PowerPoint presentations (and presentations in general) should be made. It's straight to the point and easy to understand. Good work!
@JakobRobert00
@JakobRobert00 4 жыл бұрын
Is it some kind of natural law, that the more low-level an API is, the more flexible and the more performant it is? Or could we some day reach a state where we can program very high-level and reach the same amount of performance as with Vulkan or DirectX 12? E.g. nowadays there is almost no need to program in Assembly, because compilers are well optimized and it is unlikely that you will do it better by hand than the compiler does it for you. And compiled languages like C++ are still very generalistic.
@brennansalibrici
@brennansalibrici 5 жыл бұрын
I have learned more here from these videos than any course I've taken to date!!! This is a little throw back to the C++ series. Would you be willing to do a video about best practices or the most efficient methods of 'interop-ing' between managed and unmanaged code?
@4teapo
@4teapo 2 жыл бұрын
What would u say about render/frame graphs? It looks pretty cool but a downside would be async compute.
@DaveAxiom
@DaveAxiom 5 жыл бұрын
The reason that's given for why Vulkan is a low priority in this project is that it's not beginner friendly. It sounds like there should be a wrapper library for Vulkan to make it more accessible. This game engine is a library though but regardless, DirectX 12 and Metal are proprietary. Looking at it from a teaching perspective and tech perspective, adopting proprietary APIs binds learners and end users to specific platforms and their respective business models.
@oahda
@oahda 5 жыл бұрын
I recommend looking into bgfx by bkaradzic on GitHub if you haven’t heard of it! c: It’s a low level wrapper around the most common graphics API’s. Vulkan is still WIP but on the way!
@SFrankRicharrd
@SFrankRicharrd 5 жыл бұрын
Why are you not using ogre3d or bgfx or nvidia optix, which already has decent rendering techniques. ? Bgfx support almost every rendering platforms. Is there any specific reason?
@chris_burrows
@chris_burrows 5 жыл бұрын
Because this is an educational journey designed to teach you how to write your own.
@zephyrox2
@zephyrox2 5 жыл бұрын
You are not supposed to know about the bachelor party in advance!
@jonphillips4082
@jonphillips4082 5 жыл бұрын
Congrats!, just do your thing man, always appreciate all your time and effort, you need to have time for yourself. Just don't get in any trouble at that Bach. party, we would like to see you again! Hehehe, hope you have a lot of fun man.
@temps1959
@temps1959 5 жыл бұрын
hey can the scripting language be lua?
@berthold64
@berthold64 5 жыл бұрын
how about... Javascript?
@loryon
@loryon 5 жыл бұрын
Or C#
@scrub6515
@scrub6515 5 жыл бұрын
@@loryon C#
@berthold64
@berthold64 5 жыл бұрын
@@loryon I think C# could be very complicated to implement, because you have to deal with MSIL compiler and runtime thingy.
@nextlifeonearth
@nextlifeonearth 5 жыл бұрын
@@berthold64 Unity uses mono too, it's not that complicated. Though any GC language is not really desirable for game development. You're better off with using native scripting performance wise.
@supersim1357
@supersim1357 4 жыл бұрын
Vulkan!!
@idreesaziz569
@idreesaziz569 5 жыл бұрын
Looking forward to the dx12 and vulkan implimentation.
@graph2001
@graph2001 Жыл бұрын
AIGC: - The video is part of a game engine series and focuses on rendering architecture. - The presenter expresses gratitude to patrons for supporting the series and keeping it going. - There are two sides to the rendering system in a game engine: the render API, which is specific to graphics APIs such as OpenGL and DirectX, and the platform-independent side. - The presenter talks about the various components needed for the render API, including the render context, swap chain, frame buffer, vertex buffer, index buffer, texture API, shared API states, pipelines, and render passes. - The video is geared towards practical implementation and will be using OpenGL as an example.
@maxi-g
@maxi-g 4 жыл бұрын
include directx
@gellertli2916
@gellertli2916 5 жыл бұрын
You are the only youtuber that I hit like button before even watching the video
@juliusherbert709
@juliusherbert709 5 жыл бұрын
Me too! He is definitely a very honest guys! I wish you the best with this channel and for your entire life!
@duo1314
@duo1314 5 жыл бұрын
Will you come to GDC this week??
@sam_is_people1170
@sam_is_people1170 2 жыл бұрын
thanks!
@_Omni
@_Omni 5 жыл бұрын
26:47 R.I.P.
@ArchiWorldRuS
@ArchiWorldRuS 5 жыл бұрын
Hey, thank you so much for your lessons)
@younghsiang2509
@younghsiang2509 5 жыл бұрын
A lot of useful stuff!!!!!
@BlackPointOutdoors
@BlackPointOutdoors 3 жыл бұрын
17:41
@shanebenlolo4866
@shanebenlolo4866 5 жыл бұрын
This is amazing, thank you so much just wow
@jesusredondo513
@jesusredondo513 5 жыл бұрын
I would like to know... what do you think about BGFX?
@nextlifeonearth
@nextlifeonearth 5 жыл бұрын
Not Yan, but IMO it's too much of an abstraction to get what you really want. What Yan was talking about here, that some parts would still need to be native, BGFX still tries to abstract. For high performance/high fidelity you will hit a ceiling sooner than later if you're using BGFX.
@lucah4613
@lucah4613 5 жыл бұрын
i know ur on that engine grind but i would love a mutex video for c++
@chris_burrows
@chris_burrows 5 жыл бұрын
@Pro PlexTM sunday?
@billycrooks8401
@billycrooks8401 5 жыл бұрын
I'm Victorian too, thought you were European or something. Guess this proves that the best KZbinrs cone from 'straya
@brod515
@brod515 5 жыл бұрын
no it doesn't
@chris_burrows
@chris_burrows 5 жыл бұрын
@@brod515 I don't think he lives in Australia permanently.
@20270813978095210
@20270813978095210 5 жыл бұрын
this is so exciting! also 💒💍💕😊
@JustARegularPlayer
@JustARegularPlayer 3 жыл бұрын
A comment with 0 likes and 0 replies? With a creator heart? Wow, you don't see it everyday!
@Youngermaster
@Youngermaster 5 жыл бұрын
Excelent video
@MrCipek1221
@MrCipek1221 5 жыл бұрын
Nice vid :P Keep going!
@matanmigdal7108
@matanmigdal7108 5 жыл бұрын
hmmm what whit skybox and lights?
@chris_burrows
@chris_burrows 5 жыл бұрын
huh?
@renanangelodossantos4726
@renanangelodossantos4726 5 жыл бұрын
Excellent, keep it up ;)
@richardlighthouse5328
@richardlighthouse5328 5 жыл бұрын
Before 50 viewers
@agfd5659
@agfd5659 5 жыл бұрын
Hewwo
@SFrankRicharrd
@SFrankRicharrd 5 жыл бұрын
Im ur first viewer
@wawied7881
@wawied7881 5 жыл бұрын
first
@dnavas7719
@dnavas7719 5 жыл бұрын
Can anyone recommend a book/video/ (paid/unpaid) to learn DirectX?
@adr_12_43
@adr_12_43 5 жыл бұрын
Chilli tomato noodle yt channel
@dnavas7719
@dnavas7719 5 жыл бұрын
@@adr_12_43: Awesome! thanks, not sure why couldn't find him before
@seditt5146
@seditt5146 5 жыл бұрын
You keep talking about liking DirectX and how its better, nicer, faster( a lot faster from benchmarks I have run) Why do you do all your tutorials on OpenGL? When are we going to get a C++ DirectX tutorial already? There is not really many out there but tons of OpenGL tutorials. I want to see a DirectX 11 or 12 Tutorial from you instead.
@dariusduesentrieb
@dariusduesentrieb 5 жыл бұрын
DirectX does not really work for development on Linux and Linux has over 20% market share with developers.
@seditt5146
@seditt5146 5 жыл бұрын
@@dariusduesentrieb I know but at the same time the overall market share of linux hovers around 2% total so it basically is linux developers developing for nothing other then other linux developers lol. I think I got that recursion right. But seriously though, most people use Windows, and DirectX is much faster and better supported cleaner API since its native to the OS itself. As he himself states many times DX is better yet we see him doing no directX code. I personally would like to see it because OpenGL tutorials are a dime a dozen. I mean hell, if I am not mistaken Apple is cutting OpenGL in favor of Metal and Apple has a much larger share then linux so a tutorial should stress that before it panders to the linux market. Don't get me wrong, I like linux and do some code there myself but that is not the point right now. Almost everyone has Windows machines anymore.
@dariusduesentrieb
@dariusduesentrieb 5 жыл бұрын
@@seditt5146 You can develop with OpenGL on Linux for Windows and Linux so Linux developers do *not* develop only for other Linux users. Also, DirectX is not really faster than OpenGL. If it is indeed faster then not that much that it would matter for our level of understanding. Additionally, it seems like the current trend is towards portability (see for example how much Steam tries to get games working on Linux (Proton)). So it is easier to just start with OpenGL, instead of doing it with DirectX and then again with Vulkan or OpenGL.
@seditt5146
@seditt5146 5 жыл бұрын
@@dariusduesentrieb Your fucking kidding me, this new KZbin reply system just caused me to lose a massive response I wrote for you. TL:DR because I aint writing that shit again... DX is for Windows, by Windows with a heavy hand in the hardware development. Its born and breed faster. I had a PS2 emulator( yes terrible benchmark but still) 120+ fps for DX11, 4fps for openGL if it didnt crash. The Linux thing, a joke, a slightly accurate joke lol, but still a joke. Sorry response is hacking but I aint writing that wall of text I just lost all over again because I clicked outside this friggin chat box.
@chris_burrows
@chris_burrows 5 жыл бұрын
@@seditt5146 Surely those PS2 emulator stats are meaningless. The framerate in each of those emulators is dependent on the prowess of the programmer who wrote them and not a reflection of the graphics API's rendering speed. And anyway this course seems to be focusing on general engine structure and management which is something covered publicly nowhere to my knowledge, huge deal, API is mostly irrelevant here, can't fucking wait holy shiiit.
@rikseth9606
@rikseth9606 5 жыл бұрын
Please do the directx API after opengl......Directx is a very good SDK...It would be better to implement it at first.....
@jamesmnguyen
@jamesmnguyen 5 жыл бұрын
DirectX is a good way to transition to Vulkan
Introduction to Rendering | Game Engine series
28:42
The Cherno
Рет қаралды 61 М.
Game Engine Architecture 101 // Code Review
16:19
The Cherno
Рет қаралды 56 М.
ДЕНЬ УЧИТЕЛЯ В ШКОЛЕ
01:00
SIDELNIKOVVV
Рет қаралды 3 МЛН
LIFEHACK😳 Rate our backpacks 1-10 😜🔥🎒
00:13
Diana Belitskay
Рет қаралды 3,9 МЛН
Which One Is The Best - From Small To Giant #katebrush #shorts
00:17
Our First Triangle! | Game Engine series
28:33
The Cherno
Рет қаралды 53 М.
How to Build a 2D Renderer | Game Engine series
39:30
The Cherno
Рет қаралды 89 М.
TIMESTEPS and DELTA TIME | Game Engine series
28:06
The Cherno
Рет қаралды 47 М.
Rendering Context | Game Engine series
27:03
The Cherno
Рет қаралды 48 М.
OpenGL Shaders | Game Engine series
42:47
The Cherno
Рет қаралды 49 М.
CAMERAS and How They Work | Game Engine series
38:54
The Cherno
Рет қаралды 40 М.
Transforms | Game Engine series
25:03
The Cherno
Рет қаралды 27 М.
Renderer API Abstraction | Game Engine series
47:17
The Cherno
Рет қаралды 54 М.
Event System | Game Engine series
35:40
The Cherno
Рет қаралды 162 М.
ДЕНЬ УЧИТЕЛЯ В ШКОЛЕ
01:00
SIDELNIKOVVV
Рет қаралды 3 МЛН