What Is a Build System and Why Do I Need it? But I am Dumb - Game Engine ep. #5

Поділитися
Вставка
  • Опубліковано 30 тра 2024
  • One last push in the preparation to start implementing new features. After this I will make spaghetti versions of all game engine features in existence.
    Huge Thank You for watching!
    Github: github.com/Code-Gains/DX11-En...
    Video from @TheCherno: • How to Properly Setup ... and his template: github.com/TheCherno/ProjectT...
    LearnD3D11 - graphicsprogramming.github.io...
    0:00 Intro
    0:25 How .exe Files Are Made
    1:35 Visual Studio
    1:47 Current Project Structure
    2:13 Build Configurations
    3:25 C++ Build Systems
    4:18 Cherno's Template
    4:38 Applying The Template
    5:16 Why Still Visual Studio
    5:32 Moving Main To Editor
    6:18 Code Separation
    7:55 Changing LearnD3D11 Code
    8:33 Editor Class
    Music:
    Intro:
    Spring - Vivaldi
    Background:
    Cosmic Jungle - Filo Starquez
    Breakout - Luke Hall
    Jazz in Paris - Media Right Productions
    Fish Cannot Climb Trees - Ferco
    Staycation - Corbyn Kites
    Old World Saga - Hanu Dixit

КОМЕНТАРІ • 26

  • @thomasp9511
    @thomasp9511 3 місяці тому +22

    knowledge acquired (IQ inceased +1 total 69)

  • @rileyhawksworth8362
    @rileyhawksworth8362 Місяць тому +2

    I'm back from a previous episode. I remember commenting about my interest in creating my own game engine. I followed through with it and I have a GitHub for it. Development is slow though and it is in a very early state. I only started it 2 weeks ago. As a challenge I'm using Vulkan for rendering.

  • @rordo.
    @rordo. 3 місяці тому

    Excited to see where this goes next!

  • @python_n_c
    @python_n_c 2 місяці тому

    Subscribed because you use C++. Cool project!

  • @NexusGamingRadical
    @NexusGamingRadical 2 місяці тому

    I never thought to cook my spaghetti code, good thinking!

  • @dontuo
    @dontuo 2 місяці тому +2

    It's cool that you finally chose the build system. But I'm interested in one question. Will you make the engine cross-platform? (at least for linux and windows)

    • @Code_Gains
      @Code_Gains  2 місяці тому +3

      Yeah. I have plans for Vulkan in the future once the core architecture settles a bit. The plan is to make some sort of preprocessor code that would allow to compile for all platforms.

    • @dontuo
      @dontuo 2 місяці тому

      ​@@Code_Gains cool😎

  • @dontknow7863
    @dontknow7863 3 місяці тому

    💪

  • @Benjaneb
    @Benjaneb 2 місяці тому +1

    8:40 I see a lot of people write code like this, having a pretty much empty main function that just calls another function. I usually think it looks stupid but is there actually a good reason to do it? Did you do it because you know you want other code around the editor?

    • @Code_Gains
      @Code_Gains  2 місяці тому

      I don't think there are any hard set rules for this (because the program won't run faster or better), but for me
      If I have a project and see the main function I want to immediately understand what the entire application does and in this case it runs the editor (this is opposed to reading that messy code to understand that this is the editor).

    • @scrapmine
      @scrapmine 2 місяці тому

      I know that with rust it reduces build times by a significant about, might be the same for other languages.

    • @Benjaneb
      @Benjaneb 2 місяці тому

      @@scrapmine Build time would only be reduced if the code is separated out into another compilation unit (i.e. another file) and that unit is already compiled and you haven't made any changes to it, so if that's the piece of code you're actually working on it would do nothing to build time.

    • @thundertastic896
      @thundertastic896 2 місяці тому

      The cherno video he referenced touches a bit on this but it's a combination of DX ergonomics when debugging & having the ability to restart your whole editor "view" without closing your application process completely (which may be a hard requirement for certain features).

  • @DeuxisWasTaken
    @DeuxisWasTaken 2 місяці тому +1

    dx11?? but why tho
    edit: ok I saw the explanation in #0, doing it just to learn because it's beginner-friendly is probably the only sensible reason to use it. It's a shame that by choosing it you've immediately committed to the engine being Windows-only and kinda outdated from the get-go, but it's better than trying to start with Vulkan and then giving up because it's too hard.

    • @scrapmine
      @scrapmine 2 місяці тому

      dxvk and proton exists.

    • @DeuxisWasTaken
      @DeuxisWasTaken 2 місяці тому +1

      @@scrapmine yeah, and they're translation layers that introduce overhead and bug surface just to run an outdated (by 8+ years at this point) graphics API meant for Windows by design.
      It's awesome that they exist and have gotten to the point of working (pretty) well; it's understandable when people fall back to relying on them due to learning or severe time/budget/workforce constraints, but using them is still quite a bit worse than developing for native support using the modern multiplatform API that is Vulkan.

    • @scrapmine
      @scrapmine 2 місяці тому

      @@DeuxisWasTakenRunning dx11 games in proton gives near native performance for many games.

    • @DeuxisWasTaken
      @DeuxisWasTaken 2 місяці тому

      @@scrapmine many, not all, and that's only because the wine/proton people poured sweat and tears implementing it. "Performance in best case scenario" isn't all there is.
      Besides, I've seen that some games run faster on Proton than on Windows. That's not due to Proton being magic but due to the linux kernel, drivers and whatnot being more optimised enough to offset the overhead brought about by Proton. Running natively they'd get even better performance.

    • @dynamo_38
      @dynamo_38 2 місяці тому

      Vulkan only opens up the possibility for running on Linux which doesn't expand the userbase much at all. It might be a good idea compared to DX12, but it's not worth the headaches caused if it's unnecessary.

  • @tutacat
    @tutacat 2 місяці тому

    visual studio is literally just an editor. it doesnt do anything except integrate.

  • @Samrax86
    @Samrax86 2 місяці тому

    Nerd

  • @Alguem387
    @Alguem387 2 місяці тому +4

    build.ps1 > build systems