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

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
    @thomasp95112 ай бұрын

    knowledge acquired (IQ inceased +1 total 69)

  • @python_n_c
    @python_n_cАй бұрын

    Subscribed because you use C++. Cool project!

  • @rordo.
    @rordo.2 ай бұрын

    Excited to see where this goes next!

  • @rileyhawksworth8362
    @rileyhawksworth8362Ай бұрын

    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.

  • @Code_Gains

    @Code_Gains

    Ай бұрын

    Good luck!!

  • @rileyhawksworth8362

    @rileyhawksworth8362

    Ай бұрын

    Thanks! Good luck too!

  • @NexusGamingRadical
    @NexusGamingRadical2 ай бұрын

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

  • @dontknow7863
    @dontknow78632 ай бұрын

    💪

  • @dontuo
    @dontuo2 ай бұрын

    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 ай бұрын

    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

    Ай бұрын

    ​@@Code_Gains cool😎

  • @Benjaneb
    @Benjaneb2 ай бұрын

    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
    @DeuxisWasTaken2 ай бұрын

    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 ай бұрын

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

  • @dizimo1188

    @dizimo1188

    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Ай бұрын

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

  • @Samrax86
    @Samrax862 ай бұрын

    Nerd

  • @Alguem387
    @Alguem3872 ай бұрын

    build.ps1 > build systems