So I Made My Own Game Engine...

Поділитися
Вставка
  • Опубліковано 27 січ 2025

КОМЕНТАРІ • 275

  • @nofalldamage
    @nofalldamage Рік тому +101

    Sets up OpenGL for communication with GPU, proceeds to do all pixel calculations on the CPU and use the GPU as a pass through.
    Jokes aside, nice work 👍 I think its really creative to use the texture buffer like this and given that its low rez the performance isn't really needed anyway.

    • @nofalldamage
      @nofalldamage Рік тому +6

      Normally, the GPU receives an input like triangles of a mesh and produce pixel colors from that. That is a lot of work depending on how complicated the mesh is. In this case the GPU is given a texture with all colors already set. The only thing the GPU has to do is pass it on to the screen. This is a whaste of the GPUs power but given the pixel nature of the engine I don't think that power is needed yet.

  • @TheExtremeCube
    @TheExtremeCube Рік тому +278

    Just a little correction, OpenGL doesn't handle your input, that's GLFW, which is the framework that creates the OpenGL context and Window, OpenGL is just for rendering. Awesome stuff though

    • @Brahvim
      @Brahvim Рік тому +19

      _I was looking for this comment._

    • @moosethegoose8581
      @moosethegoose8581 Рік тому +9

      All i have to say: 🤓

    • @Brahvim
      @Brahvim Рік тому +25

      @@moosethegoose8581 For some people, this doesn't matter. However, as somebody into game engines, I immediately, uhh, 😅 """felt offended""" when he stated that OpenGL does the windowing work 😂

    • @Chadderbox
      @Chadderbox  Рік тому +31

      To clarify, I did initially have a section discussing this in the video, but it was super boring so I cut it out.

    • @anon1963
      @anon1963 Рік тому

      @@moosethegoose8581 nah

  • @Komanturne
    @Komanturne Рік тому +119

    Dude, I don’t think I could ever do this. This is genuinely one of the better things I’ve seen.

    • @Chadderbox
      @Chadderbox  Рік тому +43

      Nah you could do this. Just a bit of Googling and a tiny bit of prior knowledge and you'll be on your way.

    • @VoyivodaFTW1
      @VoyivodaFTW1 Місяць тому

      You'd be surprised at how simple game engines are. I started making them as a teenager. Currently making one for a terminal based roguelike. Learning how to organize your code is the most important part. Once you get past that, it's just plugging in the code for each of the parts.

  • @thisgamedev
    @thisgamedev Рік тому +15

    Wow this is impressive. I have always wanted to do this, but never understood how to. Great video dude! Amazing job 😊

  • @m4rt_
    @m4rt_ Рік тому +101

    there are lots of good reasons for making your own engine.
    - for fun
    - avoiding bloat
    - making it only have what you need
    - performance
    - having it support niece features you want
    - it is your own (you won't have to pay anyone else for using it, since it is your own)
    - getting better at programming (when you use something like unity you learn how to make something using unity, but when you make a game engine you begin to learn how to make a game by yourself, so you get better at programming, and in case unity ever goes away, you can continue making games without it)
    and more that I don't remember atm.
    A portion of a Jonathan Blow talk on this: ua-cam.com/video/SOtxjOLst2k/v-deo.html
    Another portion of a Jonathan Blow talk: ua-cam.com/video/cL6vluhfKw8/v-deo.html

    • @danielllanes5298
      @danielllanes5298 Рік тому +2

      i love niece features

    • @tapthelvete
      @tapthelvete Рік тому

      @@danielllanes5298 🤣

    • @yiit9914
      @yiit9914 Рік тому +2

      you can actually sell it.

    • @pbthroggy
      @pbthroggy 9 місяців тому +8

      My game engine only supports nephew features. Should I divert some time to adding niece ones too?

  • @Ozzymand
    @Ozzymand Рік тому +13

    Insanely well timed video. I was thinking of making a game engine just to swap the engine of another game. Hopefully I can learn something from this!!

  • @scottcurrall
    @scottcurrall Рік тому +17

    this was honestly one of the chadderbox videos of all time

  • @noxagonal
    @noxagonal Рік тому +8

    This is neat, and a good learning experience for sure. I've been doodling with Vulkan for a few years now. It's really REALLY good, but it's also a ton of work. I've been building my own general purpose game engine for a year now. I'm still working on the basic core fundamentals of it. I wanted to make my own reflection system so I'm writing my own C++ parser... I'm still at it. It's been pretty fun so far though.

  • @samuelyigzaw
    @samuelyigzaw Рік тому +4

    Whoaaa, this video has so many coincidences with me it's crazy. Everything from your thought process choosing learning OpenGL, the tutorial you used, the idea for a game engine that would run in the shader code instead of in the cpu code. All the same. My idea was inspired by Noita, trying to see if a game like it could be optimized further by runing it's pixel simulations on the gpu. It might be use a cellular automaton to define the physics too, and the double buffering in the rendering pipeline is also coincidentally necessary for the cellular automaton to be stable. It was so perfect. But I never got past the point where you ended, i.e. the texture page. I know that's probably all I need, but now I'm procrastinating haha. Maybe your project will give me the push I need.

  • @guitarman256
    @guitarman256 Рік тому +5

    I genuinely laughed out loud when you mentioned pipelining. It had approximately 0 effect on the speed of that loop. That was 100% due to making a O(1) algorithm into a polynomial.

  • @KaidenBdot
    @KaidenBdot Рік тому +36

    This was great! How much torture would it be to create bindings for something like Haskell or COBOL lmao

    • @Chadderbox
      @Chadderbox  Рік тому +15

      It might be possible, I've never used either so I've got no idea but it could be fun.

    • @rallokkcaz
      @rallokkcaz Рік тому +2

      CHAD stack AAA game

    • @KaidenBdot
      @KaidenBdot Рік тому +1

      @@rallokkcaz Hello fellow primeagen viewer lol

    • @thephoenixsystem6765
      @thephoenixsystem6765 Рік тому +1

      @@KaidenBdot Love these callouts haha

    • @origamitraveler7425
      @origamitraveler7425 Рік тому

      comparing Haskell to COBOL should be a crime punishable by death

  • @RobLang
    @RobLang Рік тому +30

    Superb video. I do think you're quite, quite mad for building your own but there were great lessons in there - especially about performance. I'd probably use Rust for low level. Tantan has had some good experience with wrappers for opengl.

    • @Chadderbox
      @Chadderbox  Рік тому +6

      Rust is an excellent shout, and I love Tantan videos. I've made a small project in Rust before but then forgot the interesting bits about how I made it before I made a video. I might have to give it another look. Thanks Rob 👍

  • @randcoding
    @randcoding Рік тому +1

    You finally came back!!
    (Cool video btw)

  • @Brianwiz
    @Brianwiz Рік тому +1

    This is such a cool concept and you explained it in a way that was both interesting and understandable. Subscribed!

    • @Chadderbox
      @Chadderbox  Рік тому

      Awesome, thank you! Glad you liked it :)

  • @BananaMan6763
    @BananaMan6763 2 дні тому

    This might be my favorite video in the ‘without a game engine’ series of videos.
    Also, I know there are ways to make a game/game engine without a graphics framework/api without having to make a graphics card. Some people will use the cpu for rendering, and this method was used in the past for game consoles or any device that didn’t have a gpu. CPU rendering can be less performant than gpu rendering from what I’ve heard, but it’s still an option, and for small projects like 2d projects performance shouldn’t be bad. You could also make an ascii game which is even simpler since it involves just printing text to the screen. The only problem is you won’t have actual graphics, but people still make awesome ascii games, some with great color too. You could check out asciicker, ascii patrol, and other ascii games to see the potential ascii games can have.
    Currently now I’m looking forward to make ascii programs. Soon I plan to learn about cpu based rendering and making games without graphics frameworks/apis. Later eventually I think I’d like to learn graphics frameworks/apis also.

  • @Stondonk
    @Stondonk Рік тому +4

    finally the long 10 month wait is over, the only classic game dev youtuber to not die in the nuclear blast or something I mean they all just disappeared, in some cases that was for the better tho *cough *cough Barji, There is some kind of conspiracy I tell you.

    • @Chadderbox
      @Chadderbox  Рік тому +2

      What happens if I engineered the nuclear blast? I was actually off for 10 months to assassinate everyone.

  • @aviationbutterr
    @aviationbutterr 8 місяців тому +2

    this architecture isn’t actually all that bad. It’s a common technique called Software Rendering. Although the converting it into texture isn’t the most common thing. You could of also used SDL2 which would of also let you convert a pixel array into a texture and then render it with the GPU but just with a fair simpler API.

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

    Learned a lot and you were hilarious; thanks very much for sharing your experiences in this video 😆

  • @bl4ckk
    @bl4ckk Рік тому +5

    NEW CHADDERBOX!!!

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

    6:28 - Mother of God. You know exact location of your pixel in the array and yet, instead of just setting it, your wrote a double for loop? o_O It's the strangest thing in programming I have ever seen.

  • @Skeffles
    @Skeffles Рік тому

    Cool to see you take on your own framework! Great video

  • @deino4753
    @deino4753 Рік тому +3

    I feel like there is another good reason now to make a game engine...

  • @lilboiUK
    @lilboiUK Рік тому

    This is a fantastic video, nice work! I made a game engine using the opengl wrapper opentk so I could use c#. Trying to create a game engine gives you so much insight into how most game engines work and is great for learning new programming concepts.

  • @marcoesbach1702
    @marcoesbach1702 Рік тому +2

    I can think of a couple of reasons to make a game engine now.

  • @rosepark222
    @rosepark222 Рік тому

    This is great, explained what the engine does without fancy frills.

  • @Twingamerdudes
    @Twingamerdudes Рік тому +3

    This is pretty cool! Much better than what I've done lol.

    • @Chadderbox
      @Chadderbox  Рік тому +1

      You've got to do something cooler and show me now!

  • @FileFN3
    @FileFN3 Рік тому +1

    “What did you do over the weekend “
    “I made a game engine”

  • @m4rt_
    @m4rt_ Рік тому +2

    0:20 if you want a bigger challenge, do it in C, or worse x86 assembly

    • @Chadderbox
      @Chadderbox  Рік тому

      I've been trying to make a game in Assembly for ages, it's super hard!

  • @smokedice
    @smokedice Рік тому

    This is pretty awesome! I feel like that this could be made pretty well with SDL2 instead of OpenGL, it’s really lightweight and handles everything, like windows, rendering, input, sound, you name it!

    • @Chadderbox
      @Chadderbox  Рік тому

      Yeah SDL would be so much better, but part of the challenge was using OpenGL :)

    • @smokedice
      @smokedice Рік тому

      @@Chadderbox ooohhh
      Man, you really hate yourself, don’t you?
      😂
      Unless you used GLFW lol
      (You prob did, I just forgot)

    • @Chadderbox
      @Chadderbox  Рік тому

      I used GLFW, so I don't hate myself too much.

  • @John223
    @John223 Рік тому +6

    you could add lua bindings. You can already use lua code in C and viceversa, so it shouldn't be hard, and the pool of reserved keywords is quite small

    • @Chadderbox
      @Chadderbox  Рік тому +1

      I'm not a fan of Lua but this could be fun, I could finally make a game in Lua.

    • @jaemspio
      @jaemspio Рік тому +2

      @@Chadderbox May I ask why you don’t like lua? It’s fast, easy to learn, very readable, and has easy C/C++ integration built-in. It kinda just seems like the perfect tool for the job in this situation.

  • @GamesBySaul
    @GamesBySaul Рік тому

    Goodness your brain is big, unlike my smooth one.
    Some impressive stuff being done here mate! :D

    • @Chadderbox
      @Chadderbox  Рік тому +1

      I've played your multiplayer game, you are much smarter than me :)

    • @GamesBySaul
      @GamesBySaul Рік тому

      @@Chadderbox disagree! Don't make me challenge you and prove that you're smarter

  • @nickgennady
    @nickgennady Рік тому

    Using function pointers for user to specify there start, update and finish is the correct way so good job. It allows user not to worry about going into your engine code.
    Only thing bad about your engine is there no audio.

    • @Chadderbox
      @Chadderbox  Рік тому +1

      I can't lie, I completely forgot to add audio. Coming soon? Maybe?

    • @nickgennady
      @nickgennady Рік тому

      @@Chadderbox I don't got audio yet in my engine as well lol.

  • @samdavepollard
    @samdavepollard Рік тому

    "if i went much lower level i'd be making my own graphics card" - LOL
    very nice work

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

    0:16 i feel called out

  • @slendi9623
    @slendi9623 Рік тому +1

    Welcome back!

    • @slendi9623
      @slendi9623 Рік тому

      Next up: directly writing to a framebuffer

    • @Chadderbox
      @Chadderbox  Рік тому

      Building my own processor to run my own programming language with my own game engine

    • @Stondonk
      @Stondonk Рік тому

      @@Chadderbox sounding very How you say.... jdh like, if you will

  • @pvini07BR
    @pvini07BR Рік тому +3

    1:51 correction: these are not graphics frameworks, these are graphics API's. graphics frameworks are the high level, abstracted stuff that you use to render stuff on screen, which then a graphics API is used for that job.
    also, did you ever check on the godot engine?

    • @Chadderbox
      @Chadderbox  Рік тому

      I'm not a fan of Godot's workflow :)

    • @pvini07BR
      @pvini07BR Рік тому +1

      @@Chadderbox why?

  • @idk7-c7s
    @idk7-c7s Рік тому +1

    Chadderbox is the perfect example to why you should learn about GLSL and Fragment Shaders!

    • @Chadderbox
      @Chadderbox  Рік тому +1

      This project has a tiny bit of GLSL in l, just to get basic rendering working.

    • @idk7-c7s
      @idk7-c7s Рік тому

      @@Chadderbox it would give it a huge performance boost tho

    • @unendlicherping318
      @unendlicherping318 Рік тому

      @@Chadderbox If you would have read until the matrix multiplication part your engine would probably perform way better.

  • @immortalroasterben7146
    @immortalroasterben7146 Рік тому

    Dude really said programming using pointers in cpp makes life easier. I use pointers on daily basis I still don't understand them fully. What a Chad.

  • @ikerschroeder3336
    @ikerschroeder3336 Рік тому

    "General Kenobi! You are a bold one." Shouldn't I answer this to the intro?

  • @jacobkidd
    @jacobkidd Рік тому

    Trust the boxman to release a banger like this fr.

    • @Chadderbox
      @Chadderbox  Рік тому +1

      It only took the boxman 9 months :despair:

  • @torphedo6286
    @torphedo6286 Рік тому +2

    I think since you're just rendering a texture to the window, you could probably drop OpenGL entirely and do software rendering with something like GLFW. I'm not sure how well that would work with scaling...but that would allow it to run entirely on the CPU

    • @Radgerayden-ist
      @Radgerayden-ist Рік тому +1

      GLFW doesn't allow you to write to the window buffer without going through the GPU. SDL does have something like that, though.

    • @torphedo6286
      @torphedo6286 Рік тому

      @@Radgerayden-ist ooh, interesting.

  • @spacefishaviation276
    @spacefishaviation276 Рік тому +1

    Been SO LONG omg

  • @JasonTubeOffical
    @JasonTubeOffical Рік тому +1

    I'm making a basic 3d game using Modern OpenGL and its making me literally cry but it's rewarding.

    • @noxagonal
      @noxagonal Рік тому +1

      Remember to enjoy and cherish your own accomplishments, it'll help you get through. :)

  • @ziphy_6471
    @ziphy_6471 8 місяців тому +1

    My stupidity outweighs yours

  • @seikothekidd
    @seikothekidd 6 місяців тому

    in 4:10 what music did you use, it's so beautifulll

  • @prestongarvey9324
    @prestongarvey9324 Рік тому +1

    OH MY GOD NEW CHADDERBOX VIDEO!!!!!!!!!!!!!!!!!!!!!!!!!! I cant believe it. HOLY SHIT. NO WAY UOGHSBOUIDBVIPSBDVYUIBS!!!!???

    • @Chadderbox
      @Chadderbox  Рік тому +1

      JDIHDHOEHSHSHHDHSHRHJMMFNNFMMMMM

  • @pagwin5308
    @pagwin5308 Рік тому +1

    7:40 gonna "umm actually" this and say that in the code you gave you're using references, not pointers, also in C++ you can use std::function instead of a reference or pointer to accept a function as an argument just so you know

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

    I don't understand OpenGL but I write my own engine.
    That's exactly the point: people creating custom engines for fun and learning (no, nobody in the comments needs a custom engine because of performance 😅)

  • @nathanrey
    @nathanrey Рік тому

    actually something that has a lot of potential for schools

    • @nathanrey
      @nathanrey Рік тому

      id like to take a look at it when it is finished for my IT classes

  • @CakeQuester
    @CakeQuester 10 місяців тому

    It's not cheating, it's keeping your will to live

  • @samdcruez2286
    @samdcruez2286 Рік тому +1

    are there any good tutorial for making a Game Engine?

    • @Chadderbox
      @Chadderbox  Рік тому

      Don't do what I did. Check out The Cherno.

  • @profsnowleopard5326
    @profsnowleopard5326 Рік тому

    Look at this internet micro-celebrity :0 This is mad stuff, I can barely use Godot for game making stuff, you're light years ahead mate lol

    • @Chadderbox
      @Chadderbox  Рік тому

      Ayy, not heard from you in a while, are you doing good?

    • @profsnowleopard5326
      @profsnowleopard5326 Рік тому

      @@Chadderbox yeah man I'm pretty well, (minus being an adult😮‍💨) how about you?

    • @Chadderbox
      @Chadderbox  Рік тому

      @@profsnowleopard5326 Pretty good, working as a software developer. Adult stuff 😮‍💨. Good luck!

    • @profsnowleopard5326
      @profsnowleopard5326 Рік тому

      @@Chadderbox yo that's pretty cool - you wanna chat sometime? about game dev or otherwise :)

    • @Chadderbox
      @Chadderbox  Рік тому

      Sure, my discord is chadderboxdev

  • @mostrealtutu
    @mostrealtutu Рік тому

    the speed myth is still a myth. opengl is not slower than the other two. and it saddens me that all sorts of people who started making engines believe that : (

  • @Will-Eves
    @Will-Eves Рік тому

    i definitely had to use learn opengl to make my game engine

  • @hilligans1
    @hilligans1 Рік тому +1

    Vulkan time!

  • @moritz2046
    @moritz2046 Рік тому

    3:40 but if ur just using a texutre then why dont just do it in unity?

  • @itsmenotjames
    @itsmenotjames Рік тому +1

    u can make it so it only renders a pixel if it is different from the pixel at that xyz coord one frame ago!

    • @Chadderbox
      @Chadderbox  Рік тому +1

      That is a good idea, it is in the queue for when I get round to updating this stuff

  • @thephoenixsystem6765
    @thephoenixsystem6765 Рік тому +2

    Python.
    I was making a CLI chess implementation in Python yesterday, now you've inspired me to try to make a graphical board in 64*64 pixels. Hardest part might be designing readable sprites to fit within the checkboard lol

    • @Chadderbox
      @Chadderbox  Рік тому

      Yeah it might be hard to read like that. 256x256 would be lots easier.

  • @chrisxdeboy
    @chrisxdeboy Рік тому

    For a programming language, maybe Squirrel or forth or tinyscheme. Something tiny.

  • @bernardev3
    @bernardev3 Рік тому +1

    What if you make a game using the Win32 API and C?

    • @Chadderbox
      @Chadderbox  Рік тому

      I was tempted, but I had already started with this after I realised I could.

    • @bernardev3
      @bernardev3 Рік тому +1

      @@Chadderbox WTF!? THE MAN ITSELF REPLIED ME!? OMG

  • @PossiblyAxolotl
    @PossiblyAxolotl Рік тому +1

    you should make it work with lisp

    • @Chadderbox
      @Chadderbox  Рік тому +1

      Oooh I've never used Lisp, might be cool :)

    • @PossiblyAxolotl
      @PossiblyAxolotl Рік тому

      @@Chadderbox languages like lisp are really interesting, I’ve tried one for a framework called cel7 which was pretty fun but insanely confusing cause of the formatting lol

    • @zeropointzer0
      @zeropointzer0 Рік тому

      (That(would(be an(awesome(idea)))))(!)

  • @tastyl2356
    @tastyl2356 Рік тому

    i think creating bindings for intercal would fit the engine

    • @Chadderbox
      @Chadderbox  Рік тому

      Wow I've certainly never heard of that programing language, will have to look it up.

  • @NickEnchev
    @NickEnchev Рік тому

    OpenGL definitely doesn't perform worse than DirectX, in fact you could even get VK or DX12 like performance out of it if you know what you're doing. These "frameworks" are actually graphics APIs that send commands to the GPU, period. The performance you get is almost entirely dependent on your engine design/subsystems, draw call optimizations, etc.

  • @EnriquePage91
    @EnriquePage91 Рік тому +1

    OPEN GL: the true dog
    Direct X: Microsoft’s “implementation” of OGL, but it is NO LONGER A STATE MACHINE (open gl IS).
    Vukan: literally open GL 2023.
    At the end of the day, they all literally evolved from Open GL.
    🙃

  • @deinemama6303
    @deinemama6303 7 місяців тому

    Technically Direct X, Vulkan and OpenGL are not Graphics Frameworks, but Graphics API's

  • @Zharkan16
    @Zharkan16 Рік тому

    You should take a hourly payment for using your game engine, where the cheapest option is 50$

  • @CodeDibertzStride
    @CodeDibertzStride Рік тому

    Great info. I just want to know how to create a Lumen system like UE5. The day when someone discovers it will be revolution, because is needed for the open source world.

  • @orbyfied
    @orbyfied Рік тому +2

    lit

  • @Ramzessorrs
    @Ramzessorrs Рік тому

    *Good afternoon. I'm from Donetsk. And so, he made a game engine in C ++, given that he fully learned to be a programmer WITHOUT PROBLEMS. I am very jealous and will immediately move to the UK. In order to learn my specialty, start a new life, and forget about this 10-year war in Ukraine.*
    *I am very sad. I was not destined to be in this country, where there has been a war in Ukraine for 9 years.*

    • @Chadderbox
      @Chadderbox  Рік тому

      I'm also very sad for you :(
      I was with some Ukranian kids at my school who had to move, I can't even imagine it. Hopefully things will be better soon.

  • @thecompanioncube990
    @thecompanioncube990 Рік тому +3

    You should make bindings for C#

  • @potarto-man
    @potarto-man 9 місяців тому

    What editor theme are you using, it looks really nice :)

    • @Chadderbox
      @Chadderbox  8 місяців тому

      Thanks! It is Monokai Vibrant Amped for VSCode - you might recognize the creator of the theme ;)

  • @lunchdotbox
    @lunchdotbox 5 місяців тому

    Correction: Real programmers make their games in c99 with vulkan

  • @masaltzero
    @masaltzero Рік тому

    this is awesome

  • @pinkavyek
    @pinkavyek 8 місяців тому

    i mean, still impressive tbh

  • @dasheiligedonerhuhn
    @dasheiligedonerhuhn Рік тому

    Please port this to arnoldc. ArnoldC doesnt support inputs pixel based rendering and libraries, but port it anyway.

    • @Chadderbox
      @Chadderbox  Рік тому +1

      IT'S SHOWTIME
      TALK TO THE HAND "Chadderbox says that doing that sounds difficult"
      YOU HAVE BEEN TERMINATED

  • @OkOkOkIMightKnowYou
    @OkOkOkIMightKnowYou Рік тому +3

    bro called glfw opengl...

    • @Chadderbox
      @Chadderbox  Рік тому +3

      Bro used the most commonly used OpenGL api while trying to keep the video short and accessible 😁

    • @wijiler5834
      @wijiler5834 Рік тому

      Glfw is the library/api to create windows and create OpenGL contexts in those windows ,by default glfw imports OpenGL(or Vulkan if #define GLFW_INCLUDE_VULKAN is written in the file) which means he did indeed have to use OpenGL, just because there isn't any shaders or anything doesn't mean he didn't use OpenGL,He. literally talked about an OpenGL FUNCTION he used. So why do you Mr. Zuckerberg feel the need to chime in on his work even though you most likely have never written a single c library in your life. What has he done to you to make you angry? Do something different than usual?

    • @OkOkOkIMightKnowYou
      @OkOkOkIMightKnowYou Рік тому +2

      @@Chadderbox that comment was just nit-picking, I probably typed it cause I was bored. It was a good video. Is it ok to contribute to the repo?

    • @Chadderbox
      @Chadderbox  Рік тому +2

      I understand, I'd probably recommend forking the repo if you want to do anything since I'd rather do everything myself for this project as a learning experience.

    • @wijiler5834
      @wijiler5834 Рік тому +1

      @@OkOkOkIMightKnowYoumy bad then mr zuck

  • @doce3609
    @doce3609 Рік тому +1

    How about making bindings for Rust?!

    • @Chadderbox
      @Chadderbox  Рік тому +1

      Rust is super cool, it should be easier once I update the library.

    • @unendlicherping318
      @unendlicherping318 Рік тому +1

      Why even bother with c++ if you can just rewrite the whole thing in rust?

    • @shadamethyst1258
      @shadamethyst1258 Рік тому

      Yeah I didn't really understand the decision to make the game engine in C++

    • @unendlicherping318
      @unendlicherping318 Рік тому

      @@shadamethyst1258 My brain can not comprehend how someone who knows rust is able to choose c++ for his projects.

  • @ego-lay_atman-bay
    @ego-lay_atman-bay Рік тому +1

    You should port it to python, even though pygame is a much better library.

  • @0xfadead
    @0xfadead Рік тому +6

    Real programmers program their own OS to make games. :D

    • @Chadderbox
      @Chadderbox  Рік тому

      Is that a challenge? 😉

    • @0xfadead
      @0xfadead Рік тому

      @@Chadderbox I mean JDH already did it, but unless you wanna torture yourself with x86 16bit asm and try to figure out ancient interrupts, I can't really recommend it.

    • @AugustCoder
      @AugustCoder Рік тому +1

      Having done both. This is true.
      NO DON'T DO IT YOU'LL SPEND YEARS WRITING YOUR OS AND END UP WITH A MOUSE CURSOR ON A GREEN SCREEN THAT DOES NOTHING AND ESPECIALLY DOESN'T PLAY YOUR GAME EXCEPT FOR THAT ONE TEXT ADVENTURE GAME YOU WROTE FOR YOUR OS BUT SUBSEQUENTLY BROKE WHEN YOU ADDED IPC SUPPORT!
      I mean, it's fun.

    • @0xfadead
      @0xfadead Рік тому

      @@AugustCoder Yeah, I'm currently trying to make 3d game in an os.
      It would maybe be less painful, if I didn't wanted to do it "the ol' way" and just used UEFI like a normal person.

    • @omiorahman6283
      @omiorahman6283 Рік тому

      Temple os?

  • @shadamethyst1258
    @shadamethyst1258 Рік тому +1

    I'm curious to know why you chose C++ of all the languages to make a game engine in

    • @Chadderbox
      @Chadderbox  Рік тому +2

      I just wanted to tbh. Most people using OpenGL use C++, generally speaking. I have seen bindings for other languages.

    • @unendlicherping318
      @unendlicherping318 Рік тому +2

      C++ is very performant and has some useful abstractions over C or assembly like OOP which becomes very handy for Engine Development later on. But it's a memory unsafe language so you should use rust btw.

    • @matheusmarchetti628
      @matheusmarchetti628 Рік тому +1

      ​@@unendlicherping318 it's only unsafe if you do a bad job. C++ is designed to give the programmer almost full control of low level memory management

    • @nick15684
      @nick15684 Рік тому +3

      Kind of a weird and loaded question to ask, considering most game engines are made in C++, literally every major game engine is written in C++ (Unity, Unreal, Godot, etc). What was he gonna write it in, Python? Sure, if you want very weak performance, by all means. But you're not gonna get hundreds or even thousands of frames per second like you can with C++. It's a compiled language and creates a native binary executable for the system it's on. Really the only logical option.

    • @shadamethyst1258
      @shadamethyst1258 Рік тому +1

      @@nick15684 Rust nowadays is seen as a compelling alternative for C++, it has a lot of the features that C++ has, but without the fear of breaking things with manual memory management

  • @osq8118
    @osq8118 Рік тому

    That pixelndex calculation is wrong and works only because you have square window. It should be:
    ((y * windowWidth) + x) * 3
    also the bounds checking should not allow x or y to be the width or height respectively.

    • @Chadderbox
      @Chadderbox  Рік тому

      Oop, looks like I'm stupid (who would have guessed). Thanks!

  • @nangld
    @nangld 10 місяців тому

    O(N) set_pixel routine wins you an award!

  • @bananacraft69
    @bananacraft69 Рік тому

    Sound?

  • @gamingpcgamer459
    @gamingpcgamer459 Рік тому

    Hey, I don’t know if you still respond to comments on this video but can you tell what app did you use to code. Did you use VS code or something else? And if you did, how’d you set it up?

    • @Chadderbox
      @Chadderbox  Рік тому

      This was in VSCode, I followed a video to set it up but unfortunately that video is no longer available. I'm sure if you look it up on UA-cam then you'll find something. It is basically just setting up MinGW on windows and that is it.

  • @jvdashes322
    @jvdashes322 Рік тому

    i think `Lua` can be a good langauge to use

  • @KJ7JHN
    @KJ7JHN 10 місяців тому

    Less self doubt and bad criticism please.

    • @Chadderbox
      @Chadderbox  10 місяців тому

      After a few months actually programming, the self doubt and criticism was deserved 🙏

  • @rizzisunbreakable
    @rizzisunbreakable Рік тому +1

    He back

  • @boristraore6032
    @boristraore6032 8 місяців тому

    hi, in fact I would like to code projects like you but since I hear here and there that we have to stay at the cutting edge of technology, I tell myself that if I start a project that takes me... let's say 03 months, trends will change and I will no longer be up to date. This means that I abandon all projects that exceed 1 week max. So how do you do it?

    • @Chadderbox
      @Chadderbox  8 місяців тому +1

      There isn't much point in trying to appeal to trends, just do projects that you want to do. :)

    • @Titi-pu2hl
      @Titi-pu2hl 2 місяці тому +1

      Building a game engine up to the latest "trends" with all the newest complex rendering techniques would take you about 50 human lifetimes, it isn't a goal for anyone other that big companies like Unreal with large teams of engineers.
      "hobbyist" games engines are mostly basic and don't try to chase trends as that is completely out of reach. Just reaching 2002 level graphics is a huge achievement for a custom made game engine

  • @ultimatesoup
    @ultimatesoup Рік тому

    The reason why I write game engines is because that's were most of the hard challenges are....compared to the game engine, games are dead simple

  • @pointthink
    @pointthink Рік тому

    If you're going to just manually put every pixel into a texture you should just use software rendering

    • @Chadderbox
      @Chadderbox  Рік тому

      That's basically what it is, since every pixel is basically managed by the CPU. I'm only using OpenGL to display.

  • @InnerEagle
    @InnerEagle Рік тому +1

    Beta people: Making games with just common programming language
    Alpha people: Making games with a game engine
    Sigma people: Making games building their own game engine
    Omega people: Making 3D games using assembly

  • @738simpilot
    @738simpilot Рік тому

    I’m really struggling to find an easy to install game library that works on VS code do you have a good library or a good ide for c++?

    • @Chadderbox
      @Chadderbox  Рік тому +1

      Raylib is a fun library for C++, not too hard to install and use with VSCode, look for a tutorial for it.

    • @738simpilot
      @738simpilot Рік тому

      @@Chadderbox ok thanks

  • @ektorthebigbro
    @ektorthebigbro Рік тому +1

    next time actually learn how to use shaders and how to use them to run stuff on the gpu because now it is like doing all the rendering using the cpu which is not good at all

    • @Chadderbox
      @Chadderbox  Рік тому

      Yep, I did say this method was bad :)

  • @CC1.unposted
    @CC1.unposted Рік тому +1

    I am making a 4D game engine do you Wana colab

  • @BumpDev
    @BumpDev Рік тому

    Bread.

    • @Chadderbox
      @Chadderbox  Рік тому

      Bread is a good food

    • @BumpDev
      @BumpDev Рік тому

      @@Chadderbox if you were to describe bread and how it has impacted the world, the climate, as well as the production of solar pannels in an essay, how would you do it?

  • @TrentSterling
    @TrentSterling Рік тому

    Wait.... what about audio?!

    • @Chadderbox
      @Chadderbox  Рік тому +1

      What did you say? I CAN'T HEAR YOU!
      In all seriousness, I completely forgot about audio.

  • @airbus5717
    @airbus5717 Рік тому

    try odin instead of C++
    it is way simpler and has libs ready

  • @spenceabeen
    @spenceabeen Рік тому +2

    Gonk :]

  • @krakulandia
    @krakulandia Рік тому

    You could have just used SDL2 and you'd be drawing pixels in software in no time.

    • @witha1
      @witha1 Рік тому

      sdl2 always got my back o7

  • @Wojtek_1777
    @Wojtek_1777 11 місяців тому +1

    POV better dani: