Rendering Architecture | Game Engine series

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ย. 2024

ความคิดเห็น • 87

  • @YINGHAI
    @YINGHAI ปีที่แล้ว +13

    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.

  • @PrimeBukkIT
    @PrimeBukkIT 5 ปีที่แล้ว +77

    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.

  • @johnkangwa4796
    @johnkangwa4796 5 ปีที่แล้ว +64

    Wow I am loving your videos. I am writing my own dx12/vulkan engine and you've opened my eyes.

    • @proferorz3778
      @proferorz3778 5 ปีที่แล้ว +5

      lucky! i suggest add dx 11, no all pc's have windows 10, someone have 7 or 8.1

    • @NymezWoW
      @NymezWoW 3 ปีที่แล้ว +7

      @@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 ปีที่แล้ว +4

      @@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 ปีที่แล้ว +2

      @@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 ปีที่แล้ว +26

    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.

  • @zetadimensions
    @zetadimensions 5 ปีที่แล้ว +9

    This is how PowerPoint presentations (and presentations in general) should be made. It's straight to the point and easy to understand. Good work!

  • @wexalian
    @wexalian 5 ปีที่แล้ว +60

    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 ปีที่แล้ว +17

      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 ปีที่แล้ว +8

      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 ปีที่แล้ว +11

      @@Shifticek Vulkan is very verbose, but somehow, it makes me feel better programming with it, no hidden code, no assumptions.

  • @darkmissionofficial
    @darkmissionofficial หลายเดือนก่อน

    I won't be a GameEngine Dev without you

  • @TheShadoDragon
    @TheShadoDragon 5 ปีที่แล้ว +4

    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.

  • @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.

  • @brennansalibrici
    @brennansalibrici 5 ปีที่แล้ว +2

    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?

  • @DaveAxiom
    @DaveAxiom 5 ปีที่แล้ว +2

    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 ปีที่แล้ว +3

      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!

  • @zetadimensions
    @zetadimensions 5 ปีที่แล้ว +6

    I, personally, am waiting on the DirectX 12 implementation in this series.

  • @csisyadam
    @csisyadam 5 ปีที่แล้ว +3

    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. :)

  • @gellertli2916
    @gellertli2916 5 ปีที่แล้ว +6

    You are the only youtuber that I hit like button before even watching the video

    • @juliusherbert709
      @juliusherbert709 5 ปีที่แล้ว +6

      Me too!
      He is definitely a very honest guys!
      I wish you the best with this channel and for your entire life!

  • @jonphillips4082
    @jonphillips4082 5 ปีที่แล้ว +1

    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.

  • @dominionscave4752
    @dominionscave4752 5 ปีที่แล้ว +2

    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.

  • @_Omni
    @_Omni 5 ปีที่แล้ว +2

    26:47 R.I.P.

  • @AmeshaSpentaArmaiti
    @AmeshaSpentaArmaiti 5 ปีที่แล้ว +13

    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 ปีที่แล้ว +2

      There is a good write-up from Intel. Also if you wanna look at finished code you can lookup the granite renderer on GitHub.

  • @shanebenlolo4866
    @shanebenlolo4866 5 ปีที่แล้ว +1

    This is amazing, thank you so much just wow

  • @idreesaziz569
    @idreesaziz569 5 ปีที่แล้ว +1

    Looking forward to the dx12 and vulkan implimentation.

  • @sam_is_people1170
    @sam_is_people1170 3 ปีที่แล้ว +1

    thanks!

  • @ArchiWorldRuS
    @ArchiWorldRuS 5 ปีที่แล้ว +1

    Hey, thank you so much for your lessons)

  • @nextlifeonearth
    @nextlifeonearth 5 ปีที่แล้ว +14

    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 ปีที่แล้ว +2

      It's way to complex for a tutorial series imo. Have you seen how hard it is to draw a triangle?

    • @nextlifeonearth
      @nextlifeonearth 5 ปีที่แล้ว +2

      @@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 ปีที่แล้ว +1

      @@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 ปีที่แล้ว +2

      ​@@nextlifeonearth Oh right. Forgot that he mentioned that. If he's not explaining the API, I would be interested in Vulkan too!

  • @4teapo
    @4teapo 2 ปีที่แล้ว +1

    What would u say about render/frame graphs? It looks pretty cool but a downside would be async compute.

  • @billycrooks8401
    @billycrooks8401 5 ปีที่แล้ว +1

    I'm Victorian too, thought you were European or something. Guess this proves that the best TH-camrs cone from 'straya

    • @brod515
      @brod515 5 ปีที่แล้ว +1

      no it doesn't

    • @chris_burrows
      @chris_burrows 5 ปีที่แล้ว +1

      @@brod515 I don't think he lives in Australia permanently.

  • @lucah4613
    @lucah4613 5 ปีที่แล้ว +1

    i know ur on that engine grind but i would love a mutex video for c++

  • @younghsiang2509
    @younghsiang2509 5 ปีที่แล้ว +1

    A lot of useful stuff!!!!!

  • @MrCipek1221
    @MrCipek1221 5 ปีที่แล้ว +1

    Nice vid :P Keep going!

  • @JakobRobert00
    @JakobRobert00 4 ปีที่แล้ว +1

    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.

  • @Youngermaster
    @Youngermaster 5 ปีที่แล้ว +1

    Excelent video

  • @zephyrox2
    @zephyrox2 5 ปีที่แล้ว +1

    You are not supposed to know about the bachelor party in advance!

  • @supersim1357
    @supersim1357 4 ปีที่แล้ว +3

    Vulkan!!

  • @renanangelodossantos4726
    @renanangelodossantos4726 5 ปีที่แล้ว +1

    Excellent, keep it up ;)

  • @BlackPointOutdoors
    @BlackPointOutdoors 3 ปีที่แล้ว +1

    17:41

  • @SFrankRicharrd
    @SFrankRicharrd 5 ปีที่แล้ว +1

    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 ปีที่แล้ว +3

      Because this is an educational journey designed to teach you how to write your own.

  • @duo1314
    @duo1314 5 ปีที่แล้ว +1

    Will you come to GDC this week??

  • @temps1959
    @temps1959 5 ปีที่แล้ว +6

    hey can the scripting language be lua?

    • @berthold64
      @berthold64 5 ปีที่แล้ว +3

      how about...
      Javascript?

    • @loryon
      @loryon 5 ปีที่แล้ว +6

      Or C#

    • @scrub6515
      @scrub6515 5 ปีที่แล้ว +1

      @@loryon C#

    • @berthold64
      @berthold64 5 ปีที่แล้ว +2

      @@loryon I think C# could be very complicated to implement, because you have to deal with MSIL compiler and runtime thingy.

    • @nextlifeonearth
      @nextlifeonearth 5 ปีที่แล้ว +1

      @@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.

  • @jesusredondo513
    @jesusredondo513 5 ปีที่แล้ว +2

    I would like to know... what do you think about BGFX?

    • @nextlifeonearth
      @nextlifeonearth 5 ปีที่แล้ว +1

      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.

  • @matanmigdal7108
    @matanmigdal7108 5 ปีที่แล้ว +1

    hmmm what whit skybox and lights?

  • @richardlighthouse5328
    @richardlighthouse5328 5 ปีที่แล้ว +1

    Before 50 viewers

  • @dnavas7719
    @dnavas7719 5 ปีที่แล้ว +1

    Can anyone recommend a book/video/ (paid/unpaid) to learn DirectX?

    • @adr_12_43
      @adr_12_43 5 ปีที่แล้ว +4

      Chilli tomato noodle yt channel

    • @dnavas7719
      @dnavas7719 5 ปีที่แล้ว +1

      @@adr_12_43: Awesome! thanks, not sure why couldn't find him before

  • @maxi-g
    @maxi-g 4 ปีที่แล้ว +1

    include directx

  • @agfd5659
    @agfd5659 5 ปีที่แล้ว +1

    Hewwo

  • @20270813978095210
    @20270813978095210 5 ปีที่แล้ว +2

    this is so exciting! also 💒💍💕😊

    • @JustARegularPlayer
      @JustARegularPlayer 3 ปีที่แล้ว +1

      A comment with 0 likes and 0 replies? With a creator heart? Wow, you don't see it everyday!

  • @seditt5146
    @seditt5146 5 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

      DirectX does not really work for development on Linux and Linux has over 20% market share with developers.

    • @seditt5146
      @seditt5146 5 ปีที่แล้ว +1

      @@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 TH-cam 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 ปีที่แล้ว +1

      @@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 ปีที่แล้ว +1

    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 ปีที่แล้ว +1

      DirectX is a good way to transition to Vulkan

  • @SFrankRicharrd
    @SFrankRicharrd 5 ปีที่แล้ว +4

    Im ur first viewer